// $Id$ // // File: JEventProcessor_multiphoton.cc // Created: Tue Oct 21 16:50:20 EDT 2014 // Creator: staylor (on Linux gluon05.jlab.org 2.6.32-358.18.1.el6.x86_64 x86_64) // #include "JEventProcessor_multiphoton.h" using namespace jana; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../include/mass_cuts.h" // Routine used to create our JEventProcessor #include #include extern "C"{ void InitPlugin(JApplication *app){ InitJANAPlugin(app); app->AddProcessor(new JEventProcessor_multiphoton()); } } // "C" //------------------ // JEventProcessor_multiphoton (Constructor) //------------------ JEventProcessor_multiphoton::JEventProcessor_multiphoton() { } //------------------ // ~JEventProcessor_multiphoton (Destructor) //------------------ JEventProcessor_multiphoton::~JEventProcessor_multiphoton() { } //------------------ // init //------------------ jerror_t JEventProcessor_multiphoton::init(void) { japp->CreateLock("mylock"); BETA_CUT=0.9; OUTPUT_EVENT_NUMBER=false; gPARMS->SetDefaultParameter("MULTIPHOTON:OUTPUT_EVENT_NUMBER",OUTPUT_EVENT_NUMBER); gPARMS->SetDefaultParameter("MULTIPHOTON:NUM_PSEUDO_CUT",NUM_PSEUDO_CUT); TEST_PARTICLES=false; gPARMS->SetDefaultParameter("MULTIPHOTON:TEST_PARTICLES",TEST_PARTICLES); EMULATE_TRIGGER=true; gPARMS->SetDefaultParameter("MULTIPHOTON:EMULATE_TRIGGER",EMULATE_TRIGGER); VETO_GAP_EVENTS=true; gPARMS->SetDefaultParameter("MULTIPHOTON:VETO_GAP_EVENTS",VETO_GAP_EVENTS); MIN_MASS_CUT=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:MIN_MASS_CUT",MIN_MASS_CUT); INSERT_ONLY=false; gPARMS->SetDefaultParameter("MULTIPHOTON:INSERT_ONLY",INSERT_ONLY); FCAL_ONLY=false; gPARMS->SetDefaultParameter("MULTIPHOTON:FCAL_ONLY",FCAL_ONLY); DROP_ONE_CELL_BCAL_SHOWERS=true; gPARMS->SetDefaultParameter("MULTIPHOTON:DROP_ONE_CELL_BCAL_SHOWERS",DROP_ONE_CELL_BCAL_SHOWERS); NUM_IN_INSERT=1; gPARMS->SetDefaultParameter("MULTIPHOTON:NUM_IN_INSERT",NUM_IN_INSERT); BCAL_DTRACK_CUT=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:BCAL_DTRACK_CUT",BCAL_DTRACK_CUT); SPLIT_CUT=0.; gPARMS->SetDefaultParameter("MULTIPHOTON:SPLIT_CUT",SPLIT_CUT); PI0_VETO_CUT=0.035; // 5 sigma? gPARMS->SetDefaultParameter("MULTIPHOTON:PI0_VETO_CUT",PI0_VETO_CUT); NUM_SIGMA_BG=2; gPARMS->SetDefaultParameter("MULTIPHOTON:NUM_SIGMA_BG",NUM_SIGMA_BG); DEBUG_LEVEL=0; gPARMS->SetDefaultParameter("MULTIPHOTON:DEBUG_LEVEL",DEBUG_LEVEL); PIM_CL_CUT=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:PIM_CL_CUT",PIM_CL_CUT); PIP_CL_CUT=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:PIP_CL_CUT",PIM_CL_CUT); PROTON_CL_CUT=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:PROTON_CL_CUT",PROTON_CL_CUT); ANTIPROTON_CL_CUT=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:ANTIPROTON_CL_CUT",ANTIPROTON_CL_CUT); CL_CUT=0.01; gPARMS->SetDefaultParameter("MULTIPHOTON:CL_CUT",CL_CUT); TRACK_CL_CUT=0.; gPARMS->SetDefaultParameter("MULTIPHOTON:TRACK_CL_CUT",TRACK_CL_CUT); DIRC_FCAL_TCUT=10.0; gPARMS->SetDefaultParameter("MULTIPHOTON:DIRC_FCAL_TCUT",DIRC_FCAL_TCUT); FCAL_POS_CUT=10.0; gPARMS->SetDefaultParameter("MULTIPHOTON:FCAL_POS_CUT",FCAL_POS_CUT); FCAL_RADIAL_CUT=104.0; gPARMS->SetDefaultParameter("MULTIPHOTON:FCAL_RADIAL_CUT",FCAL_RADIAL_CUT); BCAL_Z_CUT=384.0; gPARMS->SetDefaultParameter("MULTIPHOTON:BCAL_Z_CUT",BCAL_Z_CUT); BCAL_R_CUT=89.0; gPARMS->SetDefaultParameter("MULTIPHOTON:BCAL_R_CUT",BCAL_R_CUT); FCAL_THRESHOLD=0.1; gPARMS->SetDefaultParameter("MULTIPHOTON:FCAL_THRESHOLD",FCAL_THRESHOLD); BCAL_THRESHOLD=0.05; gPARMS->SetDefaultParameter("MULTIPHOTON:BCAL_THRESHOLD",BCAL_THRESHOLD); MIN_BEAM_E=0.0; gPARMS->SetDefaultParameter("MULTIPHOTON:MIN_BEAM_E",MIN_BEAM_E); MAX_BEAM_E=12.0; gPARMS->SetDefaultParameter("MULTIPHOTON:MAX_BEAM_E",MAX_BEAM_E); MIN_CLUSTERS_IN_INSERT=0; gPARMS->SetDefaultParameter("MULTIPHOTON:MIN_CLUSTERS_IN_INSERT", MIN_CLUSTERS_IN_INSERT); MIN_VERTEX_Z=50.; MAX_VERTEX_Z=80.; MAX_VERTEX_R=1.; gPARMS->SetDefaultParameter("MULTIPHOTON:MIN_VERTEX_Z",MIN_VERTEX_Z); gPARMS->SetDefaultParameter("MULTIPHOTON:MAX_VERTEX_Z",MAX_VERTEX_Z); gPARMS->SetDefaultParameter("MULTIPHOTON:MAX_VERTEX_R",MAX_VERTEX_R); FILL_ROO_DATASET=false; gPARMS->SetDefaultParameter("MULTIPHOTON:FILL_ROO_DATASET", FILL_ROO_DATASET); UNUSED_ENERGY_CUT=0.01; gPARMS->SetDefaultParameter("MULTIPHOTON:UNUSED_ENERGY_CUT",UNUSED_ENERGY_CUT); PROTON_GAMMA_DT_CUT=2.; gPARMS->SetDefaultParameter("MULTIPHOTON:PROTON_GAMMA_DT_CUT", PROTON_GAMMA_DT_CUT); FCAL_SUM_THRESHOLD=0.; gPARMS->SetDefaultParameter("MULTIPHOTON:FCAL_SUM_THRESHOLD",FCAL_SUM_THRESHOLD); PI0_CUT_VALUE=0.025; ETA_CUT_VALUE=0.02; ETAPRIME_CUT_VALUE=0.02; gPARMS->SetDefaultParameter("MULTIPHOTON:PI0_CUT_VALUE",PI0_CUT_VALUE); gPARMS->SetDefaultParameter("MULTIPHOTON:ETA_CUT_VALUE",ETA_CUT_VALUE); gPARMS->SetDefaultParameter("MULTIPHOTON:ETAPRIME_CUT_VALUE",ETAPRIME_CUT_VALUE); GAMMA_THETA_CUT=8.; gPARMS->SetDefaultParameter("MULTIPHOTON:GAMMA_THETA_CUT",GAMMA_THETA_CUT); // japp->RootWriteLock(); /* if (FILL_ROO_DATASET){ RooMass=new RooRealVar("m","",0.,3.,"GeV"); RooT=new RooRealVar("t","",0.,3.,"GeV^{-2}"); RooE=new RooRealVar("E","",3.,12.,"GeV"); RooWeight=new RooRealVar("weight","",-1.,1.,""); RooData=new RooDataSet("MassData","MassData",RooArgSet(*RooMass,*RooT,*RooE,*RooWeight)); } */ // ... fill historgrams or trees ... gDirectory->mkdir("multiphoton")->cd(); TrigMask=new TH1F("TrigMask","Trigger bits",33,-0.5,32.5); gDirectory->mkdir("MC")->cd(); { MCProtonThetaVsP=new TH2F("MCProtonThetaVsP","Thrown #theta vs p for proton",200,0,2,90,0,90); MCProtonThetaVsP->Sumw2(); MCProtonThetaVsP->SetXTitle("p [GeV/c]"); MCProtonThetaVsP->SetYTitle("#theta [degrees]"); MCProtonAcceptedP=new TH1F("MCProtonAcceptedP","Accepted proton",200,0,2); MCProtonAcceptedP->Sumw2(); MCBeam = new TH1F("MCBeam","Photon energy",48,2.8,12.4); MCBeamTagged = new TH1F("MCBeamTagged","Photon energy",48,2.8,12.4); // MCProtonAcceptance=new TH1F("MCProtonAcceptance","proton acceptance", //200,0,2); MCProtonP=new TH1F("MCProtonP","thrown proton distribution", 200,0,2); MCProtonP->Sumw2(); MCt=new TH1F("MCt","t distribution",1000,0,2.); MCE_vs_t=new TH2F("MCE_vs_t","t dist",500,0,5,48,2.8,12.4); MCM_vs_t=new TH2F("MCM_vs_t","t dist", 200,0,2,400,0,4); MCdeltat=new TH2F("MCdeltat","t residual",100,-2,0,100,-1,1); MCMissingMass =new TH1F("MCMissingMass","mX",1600,0,4.); MCMissingMassVsEbeam=new TH2F("MCMissingMassVsEbeam", "MX vs E#gamma", 48,2.8,12.4,1600,0,4.); MCt2d=new TH2F("MCt2d","t dist", 27,6.4,11.8,250,0,5); MCt2d2=new TH2F("MCt2d2","t dist", 27,6.4,11.8,50,0,2); //48,2.8,12.4,300,0,3); EtaCosTheta_phi_mc=new TH1F("EtaCosTheta_phi_mc","cos(#theta)",100,-1,1); Pi0CosThetaH_f2_mc=new TH1F("Pi0CosThetaH_f2_mc","cos(#theta)",100,-1,1); Pi0CosTheta_f2_mc=new TH1F("Pi0CosTheta_f2_mc","cos(#theta)",100,-1,1); EtaCosThetaH_a2_mc=new TH2F("EtaCosThetaH_a2_mc","cos(#theta) vs phi",100,-M_PI,M_PI,100,-1,1); EtaCosTheta_a2_mc=new TH1F("EtaCosTheta_a2_mc","cos(#theta)",100,-1,1); } gDirectory->cd("../"); gDirectory->mkdir("PID")->cd(); { OneCellEnergy=new TH1F("OneCellEnergy","Energy in 1-cell BCAL clusters", 100,0,1.); ProtonGammaTimeDiff=new TH1F("ProtonGammaTimeDiff","#deltat between proton and #gamma at vertex",200,-10,10); BeamPhotonTimeDiff=new TH1F("BeamPhotonTimeDiff","t(tag)-t(rf) at vertex", 1000,-50,50); UnusedEnergy=new TH1F("UnusedEnergy","unused shower energy",100,0,0.5); FCALTOFtDiff=new TH2F("FCALTOFtDiff",";r [cm];#t(FCAL-TOF) [ns]",200,0,100.,500,-50,50.); FCALTOFDiff2D=new TH2F("FCALTOFDiff2D",";#deltax(FCAL-TOF) [cm];#deltay(FCAL-TOF) [cm]",200,-25,25.,200,-25,25); FCALTOFDiff2D_dt2=new TH2F("FCALTOFDiff2D_dt2",";#deltax(FCAL-TOF) [cm];#deltay(FCAL-TOF) [cm]",200,-25,25.,200,-25,25); TOFdE=new TH1F("TOFdE","TOF energy deposition;#deltaE [GeV]",200,0,1e-2); TOFdE2D=new TH2F("TOFdE2D","TOF energy deposition;#deltaE_{1} [GeV];#deltaE_{2} [GeV]",200,0,1e-2,200,0,1e-2); KinFitCL=new TH1F("KinFitCL","fit probability",100,0,1); KinFitChiSq=new TH1F("KinFitChiSq","#chi^2/ndf",1000,0,100); DircFcalCorrelation=new TH2F("DircFcalCorrelation",";t(FCAL) [ns];t(DIRC) [ns]",400,-100,100,400,-100,100); DircFcalDiff=new TH1F("DircFcalDiff",";t(FCAL-DIRC) [ns]",400,-100,100); TwoGammaMassFCAL=new TH1F("TwoGammaMassFCAL",";M(2#gamma) [GeV]",400,0,1.); NumFDCPseudos=new TH1F("NumFDCPseudos","Number of fdc pseudo-hits",100,-0.5,99.5); } gDirectory->cd("../"); gDirectory->mkdir("missingProton")->cd(); { KinFitCLMissingProton=new TH1F("KinFitCLMissingProton","fit probability",100,0,1); KinFitChiSqMissingProton=new TH1F("KinFitChiSqMissingProton","#chi^2/ndf",1000,0,100); TwoGammaMass_missingProton=new TH1F("TwoGammaMass_missingProton",";M(2#gamma) [GeV]",400,0,1.); TwoGammaMass_vs_theta_missingProton=new TH2F("TwoGammaMass_vs_theta_missingProton",";#theta(degrees);M(2#gamma) [GeV]",400,0,10.,400,0,1.); TwoGammaMass_vs_t_missingProton=new TH2F("TwoGammaMass_vs_t_missingProton_V2",";-t [GeV^{2}];M(2#gamma) [GeV]",2000,0,2.,400,0,1.); DeltaPOverP_vs_theta=new TH2F("DeltaPOverP_vs_theta",";#theta [#circ];#deltap/p", 140,0,140,60,-0.3,0.3); DeltaPOverP_vs_P=new TH2F("DeltaPOverP_vs_P",";p [GeV/c];#deltap/p", 50,0,10,60,-0.3,0.3); DeltaTheta_vs_P=new TH2F("DeltaTheta_vs_P",";p [GeV/c];#delta#theta [#circ]", 50,0,10,100,-20.,20.); DeltaPhi_vs_P=new TH2F("DeltaPhi_vs_P",";p [GeV/c];#delta#phi [#circ]", 50,0,10,100,-20.,20.); DeltaPx_vs_Phi=new TH2F("DeltaPx_vs_Phi",";#phi[#circ];#deltap_{x} [GeV/c]", 360,-180,180,200,-0.25,0.25); DeltaPy_vs_Phi=new TH2F("DeltaPy_vs_Phi",";#phi[#circ];#deltap_{y} [GeV/c]", 360,-180,180,200,-0.25,0.25); DeltaPz_vs_Phi=new TH2F("DeltaPz_vs_Phi",";#phi[#circ];#deltap_{z} [GeV/c]", 360,-180,180,100,-0.25,0.25); } gDirectory->cd("../"); gDirectory->mkdir("2gamma")->cd(); { TwoGammaMass_kf =new TH1F("TwoGammaMass_kf","M(2#gamma)",1600,0,4.); TwoGammaMass_kf->SetXTitle("M(2#gamma) [GeV]"); TwoGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_vs_Ebeam=new TH2F("TwoGammaMass_vs_Ebeam", "M(2#gamma) vs E#gamma", 48,2.8,12.4,1600,0,4.); TwoGammaMass_vs_Ebeam_theta_cut=new TH2F("TwoGammaMass_vs_Ebeam_theta_cut", "M(2#gamma) vs E#gamma", 48,2.8,12.4,1600,0,4.); Mandelstam_t_eta_kf=new TH2F("Mandelstam_t_eta_kf","t dist for #eta", 27,6.4,11.8,250,0,5); Mandelstam_t_eta_kf->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_eta_kf->SetXTitle("E#gamma [GeV]"); Mandelstam_t_pi0_kf=new TH2F("Mandelstam_t_pi0_kf","t dist for #pi0", 27,6.4,11.8,250,0,5); Mandelstam_t_pi0_kf->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_pi0_kf->SetXTitle("E#gamma [GeV]"); Mandelstam_t_etaprime_kf=new TH2F("Mandelstam_t_etaprime_kf","t dist for #eta'", 27,6.4,11.8,250,0,5); Mandelstam_t_etaprime_kf->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_etaprime_kf->SetXTitle("E#gamma [GeV]"); TwoGammaMass_kf_NU =new TH1F("TwoGammaMass_kf_NU","; M(2#gamma) [GeV]",1600,0,4.); TwoGammaMass_vs_Ebeam_NU=new TH2F("TwoGammaMass_vs_Ebeam_NU", "M(2#gamma) vs E#gamma", 48,2.8,12.4,1600,0,4.); Mandelstam_t_eta_kf_NU=new TH2F("Mandelstam_t_eta_kf_NU","t dist for #eta", 27,6.4,11.8,250,0,5); Mandelstam_t_eta_kf_NU->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_eta_kf_NU->SetXTitle("E#gamma [GeV]"); Mandelstam_t_pi0_kf_NU=new TH2F("Mandelstam_t_pi0_kf_NU","t dist for #pi0", 27,6.4,11.8,250,0,5); Mandelstam_t_pi0_kf_NU->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_pi0_kf_NU->SetXTitle("E#gamma [GeV]"); Mandelstam_t_etaprime_kf_NU=new TH2F("Mandelstam_t_etaprime_kf_NU","t dist for #eta'", 27,6.4,11.8,250,0,5); Mandelstam_t_etaprime_kf_NU->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_etaprime_kf_NU->SetXTitle("E#gamma [GeV]"); } gDirectory->cd("../"); gDirectory->mkdir("3gamma")->cd(); { ThreeGammaMass_kf =new TH1F("ThreeGammaMass_kf","M(3#gamma)",1600,0,4.); ThreeGammaMass_kf->SetXTitle("M(3#gamma) [GeV]"); ThreeGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); ThreeGammaMass_vs_Ebeam=new TH2F("ThreeGammaMass_vs_Ebeam","M(3#gamma) vs E#gamma", 48,2.8,12.4,1600,0,4.); ThreeGammaMass_vs_Ebeam->SetXTitle("E#gamma [GeV]"); ThreeGammaMass_vs_Ebeam->SetYTitle("M(3#gamma) [GeV]"); TwoGammaMass_3g_kf=new TH1F("TwoGammaMass_3g_kf","M(2#gamma)",1600,0,4.); TwoGammaMass_3g_kf->SetXTitle("M(2#gamma) [GeV]"); TwoGammaMass_3g_kf->SetYTitle("combinations / 0.0025 GeV"); TwoGammaMass_3g_kf->SetTitle("2#gamma invariant mass for 3#gamma events"); Pi0GammaMass_kf =new TH1F("Pi0GammaMass_kf","M(#pi0#gamma)",1600,0,4.); Pi0GammaMass_kf->SetXTitle("M(3#gamma) [GeV]"); Pi0GammaMass_kf->SetYTitle("combinations / 0.0025 GeV"); Pi0GammaMass_kf->SetTitle("Three #gamma mass with #pi^{0} cut"); Pi0GammaMass_kf->SetTitle("M(#pi^{0}#gamma): 3#gamma mass with #pi^{0} cut"); EtaGammaMass_kf =new TH1F("EtaGammaMass_kf","M(#eta#gamma)",1600,0,4.); EtaGammaMass_kf->SetXTitle("M(3#gamma) [GeV]"); EtaGammaMass_kf->SetYTitle("combinations / 0.0025 GeV"); EtaCosTheta_phi=new TH1F("EtaCosTheta_phi","cos(#theta)",100,-1,1); Mandelstam_t_omega_kf=new TH2F("Mandelstam_t_omega_kf","t dist for #omega", 27,6.4,11.8,250,0,5); Mandelstam_t_omega_kf->SetYTitle("-t [GeV^{2}]"); Mandelstam_t_omega_kf->SetXTitle("E#gamma [GeV]"); } gDirectory->cd("../"); gDirectory->mkdir("4gamma")->cd(); { FourGammaVertex=new TH2F("FourGammaVertex",";z[cm];r[cm]",100,0,200,10,0,10); NumPseudos4gamma=new TH1F("NumPseudos4gamma","Number of fdc pseudo-hits",100,-0.5,99.5); FourGammaMass_kf =new TH1F("FourGammaMass_kf","M(4#gamma)",1600,0,4.); FourGammaMass_kf->SetXTitle("M(4#gamma) [GeV]"); FourGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); FourGammaMass_NoVeto =new TH1F("FourGammaMass_NoVeto","M(4#gamma)",1600,0,4.); FourGammaMass_NoBCAL =new TH1F("FourGammaMass_NoBCAL","M(4#gamma)",1600,0,4.); FourGammaMass_InsertCut_NoBCAL =new TH1F("FourGammaMass_InsertCut_NoBCAL","M(4#gamma)",1600,0,4.); FourGammaMass_InsertCut =new TH1F("FourGammaMass_InsertCut","M(4#gamma)",1600,0,4.); FourGamma_NoMesonPairs =new TH1F("FourGamma_NoMesonPairsV2",";M(4#gamma) [GeV]",1600,0,4.); FourGamma_NoMesonPairs_InsertCut =new TH1F("FourGamma_NoMesonPairsV2_InsertCut",";M(4#gamma) [GeV]",1600,0,4.); Pi0XMass_FCALEcut =new TH1F("Pi0XMass_FCALEcut",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_FCALEcut =new TH1F("Pi0XMass_NoBCAL_FCALEcut",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut =new TH1F("Pi0XMass_InsertCut",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_PseudoVeto =new TH1F("Pi0XMass_InsertCut_PseudoVeto",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_NoBCAL =new TH1F("Pi0XMass_InsertCut_NoBCAL",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_NoBCAL_PseudoVeto =new TH1F("Pi0XMass_InsertCut_NoBCAL_PseudoVeto",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL =new TH1F("Pi0XMass_NoBCAL",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass =new TH1F("Pi0XMass",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoCloseShowers =new TH1F("Pi0XMass_NoCloseShowers",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_PseudoVeto =new TH1F("Pi0XMass_PseudoVeto",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_NoCloseShowers =new TH1F("Pi0XMass_NoBCAL_NoCloseShowers",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_NoTOF =new TH1F("Pi0XMass_NoBCAL_NoTOF",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_NoITOF =new TH1F("Pi0XMass_NoBCAL_NoITOF",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_PseudoVeto =new TH1F("Pi0XMass_NoBCAL_PseudoVeto",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoTOF =new TH1F("Pi0XMass_NoTOF",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoITOF =new TH1F("Pi0XMass_NoITOF",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_NoSegments =new TH1F("Pi0XMass_NoBCAL_NoSegments",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoSegments =new TH1F("Pi0XMass_NoSegments",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_NU =new TH1F("Pi0XMass_InsertCut_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_NoBCAL_NU =new TH1F("Pi0XMass_InsertCut_NoBCAL_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_NU =new TH1F("Pi0XMass_NoBCAL_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NU =new TH1F("Pi0XMass_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_NoDIRC_NU =new TH1F("Pi0XMass_InsertCut_NoDIRC_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_InsertCut_NoBCAL_NoDIRC_NU =new TH1F("Pi0XMass_InsertCut_NoBCAL_NoDIRC_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoBCAL_NoDIRC_NU =new TH1F("Pi0XMass_NoBCAL_NoDIRC_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_NoDIRC_NU =new TH1F("Pi0XMass_NoDIRC_NU",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_HarderVeto =new TH1F("Pi0XMass_HarderVeto",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_HarderVeto_NoBCAL =new TH1F("Pi0XMass_HarderVeto_NoBCAL",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); Pi0XMass_bg =new TH1F("Pi0XMass_bg",";M(#pi^{0}2#gamma) [GeV]",1600,0,4.); EtaXMass =new TH1F("EtaXMass",";M(#eta2#gamma) [GeV]",1600,0,4.); EtaXMass_bg =new TH1F("EtaXMass_bg",";M(#eta2#gamma) [GeV]",1600,0,4.); TwoPi0_1combo =new TH1F("TwoPi0_1combo",";M(2#pi0) [GeV]",1600,0,4.); TwoEta_1combo =new TH1F("TwoEta_1combo",";M(2#eta) [GeV]",1600,0,4.); Pi0Eta_1combo =new TH1F("Pi0Eta_1combo",";M(#pi0#eta) [GeV]",1600,0,4.); ProtonThetaVsP_4g=new TH2F("ProtonThetaVsP_4g","#theta vs p for proton",200,0,2,90,0,90); ProtonThetaVsP_4g->SetXTitle("p [GeV/c]"); ProtonThetaVsP_4g->SetYTitle("#theta [degrees]"); FourGamma2d_kf=new TH2F("FourGamma2d_kf","m(2#gamma,pair2) vs m(2#gamma,pair1)",500,0,1,500,0,1); FourGamma2d_kf->SetXTitle("M(2#gamma,pair 1) [GeV]"); FourGamma2d_kf->SetYTitle("M(2#gamma,pair 2) [GeV]"); FourGamma2d_bg=new TH2F("FourGamma2d_bg","m(2#gamma,pair2) vs m(2#gamma,pair1)",500,0,1,500,0,1); TwoPi0Mass_kf =new TH1F("TwoPi0Mass_kf","m(#pi0#pi0)",1600,0,4.); TwoPi0Mass_kf->SetTitle("#pi^{0}#pi^{0} invariant mass"); TwoPi0Mass_kf->SetYTitle("combinations / 0.0025 GeV"); TwoPi0Mass_kf->SetXTitle("M(4#gamma) [GeV]"); TwoPi0Mass_bg =new TH1F("TwoPi0Mass_bg","m(#pi0#pi0)",1600,0,4.); TwoPi0Mass_kf_NU =new TH1F("TwoPi0Mass_kf_NU","m(#pi0#pi0)",1600,0,4.); TwoPi0Mass_PseudoVeto =new TH1F("TwoPi0Mass_PseudoVeto","m(#pi0#pi0)",1600,0,4.); EtaPi0Mass_kf =new TH1F("EtaPi0Mass_kf","m(#eta#pi0)",1600,0,4.); EtaPi0Mass_kf->SetXTitle("M(4#gamma) [GeV]"); EtaPi0Mass_kf->SetYTitle("combinations / 0.0025 GeV"); EtaPi0Mass_kf->SetTitle("#eta#pi^{0} invariant mass"); EtaPi0Mass_bg =new TH1F("EtaPi0Mass_bg","m(#eta#pi0)",1600,0,4.); EtaPi0Mass_kf_NU =new TH1F("EtaPi0Mass_kf_NU","m(#eta#pi0)",1600,0,4.); TwoPi0Mass_t=new TH2F("TwoPi0Mass_t",";-t [GeV^{2}];M(2#pi^{0}) [GeV]", 200,0,2,400,0,4); TwoPi0Mass_t_NU=new TH2F("TwoPi0Mass_t_NU",";-t [GeV^{2}];M(2#pi^{0}) [GeV]", 200,0,2,400,0,4); TwoEtaMass_t=new TH2F("TwoEtaMass_t",";-t [GeV^{2}];M(2#eta) [GeV]", 200,0,2,400,0,4); TwoEtaMass_t_NU=new TH2F("TwoEtaMass_t_NU",";-t [GeV^{2}];M(2#eta) [GeV]", 200,0,2,400,0,4); EtaPi0Mass_t=new TH2F("EtaPi0Mass_t",";-t [GeV^{2}];M(#pi^{0}#eta) [GeV]", 200,0,2,400,0,4); EtaPi0Mass_t_NU=new TH2F("EtaPi0Mass_t_NU",";-t [GeV^{2}];M(#pi^{0}#eta) [GeV]", 200,0,2,400,0,4); EtaPrimePi0Mass_t=new TH2F("EtaPrimePi0Mass_t",";-t [GeV^{2}];M(#pi^{0}#eta#prime) [GeV]", 200,0,2,400,0,4); EtaPrimePi0Mass_t_NU=new TH2F("EtaPrimePi0Mass_t_NU",";-t [GeV^{2}];M(#pi^{0}#eta#prime) [GeV]", 200,0,2,400,0,4); MesonPairMultiplicity=new TH2F("MesonPairMultiplicity","meson pair multiplicity",6,-0.5,5.5,10,0.5,10.5); TwoGamma_Pi02g =new TH2F("TwoGamma_Pi02g",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoGamma_Pi02g_NoBCAL =new TH2F("TwoGamma_Pi02g_NoBCAL",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoGamma_Pi02g_NoCloseShowers =new TH2F("TwoGamma_Pi02g_NoCloseShowers",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoGamma_Pi02g_NoBCAL_NoCloseShowers =new TH2F("TwoGamma_Pi02g_NoBCAL_NoCloseShowers",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoGamma_Pi02g_NoBCAL_best=new TH2F("TwoGamma_Pi02g_NoBCAL_best",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoGamma_Pi02g_NoBCAL_best_NoCloseShowers=new TH2F("TwoGamma_Pi02g_NoBCAL_best_NoCloseShowers",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoGamma_Eta2g =new TH2F("TwoGamma_Eta2g",";M(2#gamma) [GeV]",1600,0,4.,1600,0.,4.); TwoEtaMass_kf =new TH1F("TwoEtaMass_kf","m(2#eta)",1600,0,4.); TwoEtaMass_kf->SetXTitle("M(4#gamma) [GeV]"); TwoEtaMass_kf->SetYTitle("combinations / 0.0025 GeV"); TwoEtaMass_kf->SetTitle("#eta#eta invariant mass"); TwoEtaMass_bg =new TH1F("TwoEtaMass_bg","m(2#eta)",1600,0,4.); TwoEtaMass_kf_NU =new TH1F("TwoEtaMass_kf_NU","m(2#eta)",1600,0,4.); EtaPrimePi0_4g =new TH1F("EtaPrimePi0_4g","m(#eta'#pi0)",1600,0,4.); EtaPrimePi0_4g->SetXTitle("M(4#gamma) [GeV]"); EtaPrimePi0_4g->SetYTitle("combinations / 0.0025 GeV"); EtaPrimePi0_4g->SetTitle("#eta'#pi^{0} invariant mass"); EtaPrimeEta_4g =new TH1F("EtaPrimeEta_4g",";M(#eta'#eta)",1600,0,4.); EtaPrimePi0_4g_NU =new TH1F("EtaPrimePi0_4g_NU","m(#eta'#pi0)",1600,0,4.); PPi0Dalitz=new TH2F("PPi0Dalitz","Dalitz plot for p#pi^{0}#pi^{0}", 400,0.,20.,400,0.,20.); PPi0Dalitz->SetXTitle("M^{2}(p#pi^{0}_1) [GeV^{2}]"); PPi0Dalitz->SetYTitle("M^{2}(p#pi^{0}_2) [GeV^{2}]"); PPi0EtaDalitz=new TH2F("PPi0EtaDalitz","Dalitz plot for p#pi^{0}#eta", 400,0.,20.,400,0.,20.); PPi0EtaDalitz->SetXTitle("M^{2}(p#pi^{0}) [GeV^{2}]"); PPi0EtaDalitz->SetYTitle("M^{2}(p#eta) [GeV^{2}]"); Pi0g_Pi02g=new TH2F("Pi0g_Pi02g", ";M(#pi^{0}#gamma) [GeV];M(#pi^{0}2#gamma) [GeV]", 200,0,2.,200,0,2); Pi0g_Pi02g_NoBCAL=new TH2F("Pi0g_Pi02g_NoBCAL", ";M(#pi^{0}#gamma) [GeV];M(#pi^{0}2#gamma) [GeV]", 200,0,2.,200,0,2); Pi0g_Pi02g_NoCloseShowers=new TH2F("Pi0g_Pi02g_NoCloseShowers", ";M(#pi^{0}#gamma) [GeV];M(#pi^{0}2#gamma) [GeV]", 200,0,2.,200,0,2); Pi0g_Pi02g_NoBCAL_NoCloseShowers=new TH2F("Pi0g_Pi02g_NoBCAL_NoCloseShowers", ";M(#pi^{0}#gamma) [GeV];M(#pi^{0}2#gamma) [GeV]", 200,0,2.,200,0,2); FourGammaMass_vs_Ebeam =new TH2F("FourGammaMass_vs_Ebeam","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); TwoPi0Mass_vs_Ebeam =new TH2F("TwoPi0Mass_vs_Ebeam","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); TwoPi0Mass_vs_Ebeam->SetYTitle("M(4#gamma) [GeV]"); TwoPi0Mass_vs_Ebeam->SetXTitle("E(beam) [GeV]"); TwoPi0Mass_vs_Ebeam_NU =new TH2F("TwoPi0Mass_vs_Ebeam_NU","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); EtaPi0Mass_vs_Ebeam =new TH2F("EtaPi0Mass_vs_Ebeam","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); EtaPi0Mass_vs_Ebeam->SetYTitle("M(4#gamma) [GeV]"); EtaPi0Mass_vs_Ebeam->SetXTitle("E(beam) [GeV]"); EtaPi0Mass_vs_Ebeam_NU =new TH2F("EtaPi0Mass_vs_Ebeam_NU","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); TwoEtaMass_vs_Ebeam =new TH2F("TwoEtaMass_vs_Ebeam","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); TwoEtaMass_vs_Ebeam->SetYTitle("M(4#gamma) [GeV]"); TwoEtaMass_vs_Ebeam->SetXTitle("E(beam) [GeV]"); TwoEtaMass_vs_Ebeam_NU =new TH2F("TwoEtaMass_vs_Ebeam_NU","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); Pi02GammaMass_vs_Ebeam =new TH2F("Pi02GammaMass_vs_Ebeam","M(4#gamma) vs Ebeam", 48,2.8,12.4,1600,0,4.); Pi02GammaMass_vs_Ebeam->SetYTitle("M(4#gamma) [GeV]"); Pi02GammaMass_vs_Ebeam->SetXTitle("E(beam) [GeV]"); ThetaGamma_4g=new TH2F("ThetaGamma_4g","#theta(#gamma) vs p(#gamma)", 120,0,12,180,0,45); Egamma_vs_t_a0=new TH2F("Egamma_vs_t_a0","E#gamma vs -t, a0(980)", 500,0,5.,48,2.8,12.4); Egamma_vs_t_f0=new TH2F("Egamma_vs_t_f0","E#gamma vs -t, f0(980)", 500,0,5,48,2.8,12.4); Egamma_vs_t_a2=new TH2F("Egamma_vs_t_a2","E#gamma vs -t, a2(1320)", 500,0,5.,48,2.8,12.4); Egamma_vs_t_f2=new TH2F("Egamma_vs_t_f2","E#gamma vs -t, f2(1270)", 500,0,5,48,2.8,12.4); Egamma_vs_t_s0=new TH2F("Egamma_vs_t_s0","E#gamma vs -t, f0(600)", 500,0,5,48,2.8,12.4); EtaCosThetaGF=new TH2F("EtaCosThetaGF","cos(#theta_{GF});M(#eta#pi^{0}) [GeV]",1600,0,4,100,-1,1); EtaCosThetaGF_NU=new TH2F("EtaCosThetaGF_NU","cos(#theta_{GF});M(#eta#pi^{0}) [GeV]",1600,0,4,100,-1,1); Pi0CosThetaGF=new TH2F("Pi0CosThetaGF","cos(#theta_{GF});M(#pi^{0}#pi^{0}) [GeV]",1600,0,4,100,-1,1); Pi0CosThetaGF_NU=new TH2F("Pi0CosThetaGF_NU","cos(#theta_{GF});M(#pi^{0}#pi^{0}) [GeV]",1600,0,4,100,-1,1); Egamma_vs_t_a0_bg=new TH2F("Egamma_vs_t_a0_bg","E#gamma vs -t, a0(980)", 500,0,5.,48,2.8,12.4); Egamma_vs_t_f0_bg=new TH2F("Egamma_vs_t_f0_bg","E#gamma vs -t, f0(980)", 500,0,5,48,2.8,12.4); Egamma_vs_t_a2_bg=new TH2F("Egamma_vs_t_a2_bg","E#gamma vs -t, a2(1320)", 500,0,5.,48,2.8,12.4); Egamma_vs_t_f2_bg=new TH2F("Egamma_vs_t_f2_bg","E#gamma vs -t, f2(1270)", 500,0,5,48,2.8,12.4); Egamma_vs_t_s0_bg=new TH2F("Egamma_vs_t_s0_bg","E#gamma vs -t, f0(600)", 500,0,5,48,2.8,12.4); EtaCosThetaGF_bg=new TH2F("EtaCosThetaGF_bg","cos(#theta_{GF});M(#eta#pi^{0}) [GeV]",1600,0,4,100,-1,1); Pi0CosThetaGF_bg=new TH2F("Pi0CosThetaGF_bg","cos(#theta_{GF});M(#pi^{0}#pi^{0}) [GeV]",1600,0,4,100,-1,1); PPi0Dalitz_bg=new TH2F("PPi0Dalitz_bg","Dalitz plot for p#pi^{0}#pi^{0}", 400,0.,20.,400,0.,20.); PPi0Dalitz_bg->SetXTitle("M^{2}(p#pi^{0}_1) [GeV^{2}]"); PPi0Dalitz_bg->SetYTitle("M^{2}(p#pi^{0}_2) [GeV^{2}]"); PPi0EtaDalitz_bg=new TH2F("PPi0EtaDalitz_bg","Dalitz plot for p#pi^{0}#eta", 400,0.,20.,400,0.,20.); PPi0EtaDalitz_bg->SetXTitle("M^{2}(p#pi^{0}) [GeV^{2}]"); PPi0EtaDalitz_bg->SetYTitle("M^{2}(p#eta) [GeV^{2}]"); EtaPrimePi0_4g_bg =new TH1F("EtaPrimePi0_4g_bg","m(#eta'#pi0)",1600,0,4.); EtaPrimePi0_4g_bg->SetXTitle("M(4#gamma) [GeV]"); EtaPrimePi0_4g_bg->SetYTitle("combinations / 0.0025 GeV"); EtaPrimePi0_4g_bg->SetTitle("#eta'#pi^{0} invariant mass"); EtaPrimeEta_4g_bg =new TH1F("EtaPrimeEta_4g_bg",";M(#eta'#eta)",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("5gamma")->cd(); { FiveGammaMass_kf =new TH1F("FiveGammaMass_kf","M(5#gamma)",1600,0,4.); FiveGammaMass_kf->SetXTitle("M(5#gamma) [GeV]"); FiveGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); FiveGammaMass_vs_Ebeam=new TH2F("FiveGammaMass_vs_Ebeam","M(5#gamma) vs E#gamma", 48,2.8,12.4,1600,0,4.); FiveGammaMass_vs_Ebeam->SetXTitle("E#gamma [GeV]"); FiveGammaMass_vs_Ebeam->SetYTitle("M(5#gamma) [GeV]"); FourGamma2d_5g_kf=new TH2F("FourGamma2d_5g_kf","m(2#gamma,pair2) vs m(2#gamma,pair1)",100,0,1,100,0,1); FourGamma2d_5g_kf->SetXTitle("M(2#gamma, pair 1) [GeV]"); FourGamma2d_5g_kf->SetYTitle("M(2#gamma, pair 2) [GeV]"); Pi0Pi0GammaMass_vs_Pi0GammaMass_kf=new TH2F("Pi0Pi0GammaMass_vs_Pi0GammaMass_kf","M(#pi0#pi0#gamma) vs M(#pi0#gamma)",1600,0,4.,1600,0,4.); Pi0Pi0GammaMass_vs_Pi0GammaMass_kf->SetXTitle("M(#pi^{0}#gamma) [GeV]"); Pi0Pi0GammaMass_vs_Pi0GammaMass_kf->SetYTitle("M(#pi^{0}#pi^{0}#gamma) [GeV]"); TwoGammaMass_vs_ThreeGammaMass=new TH2F("TwoGammaMass_vs_ThreeGammaMass", "M(2#gamma) vs M(3#gamma)", 150,0,1.5,150,0,1.5); OmegaEta=new TH1F("OmegaEta","#omega#eta invariant mass",1600,0,4.); OmegaEta->SetXTitle("M(5#gamma) [GeV]"); OmegaEta->SetYTitle("counts / 0.0025 GeV"); OmegaEtaSB=new TH1F("OmegaEtaSB","#omega#eta side band invariant mass",1600,0,4.); OmegaEtaSB->SetXTitle("M(5#gamma) [GeV]"); OmegaEtaSB->SetYTitle("counts / 0.0025 GeV"); OmegaEtaSBv2=new TH1F("OmegaEtaSBv2","#omega#eta side band invariant mass",1600,0,4.); OmegaEtaSBv2->SetXTitle("M(5#gamma) [GeV]"); OmegaEtaSBv2->SetYTitle("counts / 0.0025 GeV"); EtaCosTheta_EtaOmega_5g=new TH2F("EtaCosTheta_EtaOmega_5g",";cos(#theta_{#eta,GJ});M(#eta#omega) [GeV]",100,1.,3.,100,-1,1); EtaCosTheta_EtaOmega_pi0g_bg=new TH2F("EtaCosTheta_EtaOmega_pi0g_bg",";cos(#theta_{#eta,GJ});M(#eta#omega) [GeV]",100,1.,3.,100,-1,1); EtaCosTheta_EtaOmega_pi0g=new TH2F("EtaCosTheta_EtaOmega_pi0g",";cos(#theta_{#eta,GJ});M(#eta#omega) [GeV]",100,1.,3.,100,-1,1); Pi0g_with_eta=new TH1F("Pi0g_with_eta",";M(#pi^{0}#gamma) [GeV]",1600,0,4); Pi0g_with_eta_bg=new TH1F("Pi0g_with_eta_bg",";M(#pi^{0}#gamma) [GeV]",1600,0,4); OmegaEta_pi0g=new TH1F("OmegaEta_pi0g",";M(#omega#eta) [GeV]",1600,0,4.); OmegaEta_pi0g_bg=new TH1F("OmegaEta_pi0g_bg",";M(#omega#eta) [GeV]",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("6gamma")->cd(); { SixGammaMass_kf =new TH1F("SixGammaMass_kf","M(6#gamma)",1600,0,4.); SixGammaMass_kf->SetXTitle("M(6#gamma) [GeV]"); SixGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); SixGammaMass_vs_Ebeam=new TH2F("SixGammaMass_vs_Ebeam","M(6#gamma) vs E#gamma", 48,2.8,12.4,1600,0,4.); SixGammaMass_vs_Ebeam->SetXTitle("E#gamma [GeV]"); SixGammaMass_vs_Ebeam->SetYTitle("M(6#gamma) [GeV]"); TwoEtaPi0Dalitz=new TH2F("TwoEtaPi0Dalitz","Dalitz plot for #eta2#pi^{0}", 400,0.,4.,400,0.,4.); TwoEtaPi0Dalitz->SetXTitle("M^{2}(#eta_1#pi^{0}) [GeV^{2}]"); TwoEtaPi0Dalitz->SetYTitle("M^{2}(#eta_1#pi^{0}) [GeV^{2}]"); ThreeEtaMass_kf =new TH1F("ThreeEtaMass_kf","M(6#gamma)",1600,0,4.); TwoEtaPi0Mass_kf =new TH1F("TwoEtaPi0Mass_kf","M(6#gamma)",1600,0,4.); ThreePi0Mass_kf =new TH1F("ThreePi0Mass_kf","M(6#gamma)",1600,0,4.); ThreePi0Mass_kf->SetXTitle("M(6#gamma) [GeV]"); ThreePi0Mass_kf->SetYTitle("combinations / 0.0025 GeV"); ThreePi0Mass_kf->SetTitle("3#pi^{0} mass"); TwoPi0EtaMass_kf =new TH1F("TwoPi0EtaMass_kf","M(6#gamma)",1600,0,4.); TwoPi0EtaMass_kf->SetTitle("#eta#pi^{0}#pi^{0} mass"); TwoPi0EtaMass_kf->SetXTitle("M(6#gamma) [GeV]"); TwoPi0EtaMass_kf->SetYTitle("combinations / 0.0025 GeV"); TwoOmega_6g =new TH1F("TwoOmega_6g",";M(2#omega) [GeV]",1600,0,4.); FourGamma2D_6g=new TH2F("FourGamma2D_6g",";M(2#gamma pair 1) vs M(2#gamma pair 2)",1000,0.,1.,1000,0,1); Pi0gVsPi0g=new TH2F("Pi0gVsPi0g","M#(#pi^{0}#gamma, pair 1) vs M(#pi^{0}#gamma, pair 2)",1000,0,2,1000,0,2); TwoGammaMass_6g_kf= new TH1F("TwoGammaMass_6g_kf","M(2#gamma)",1600,0,4.); EtaDalitzZ=new TH1F("EtaDalitzZ","Dalitz Z for #eta",120,0,1.2); } gDirectory->cd("../"); gDirectory->mkdir("7gamma")->cd(); { SevenGammaMass_kf =new TH1F("SevenGammaMass_kf","M(7#gamma)",1600,0,4.); SevenGammaMass_kf->SetXTitle("M(7#gamma) [GeV]"); SevenGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_7g= new TH1F("TwoGammaMass_7g","M(2#gamma)",1600,0,4.); TwoGammaMass_7g->SetYTitle("combinations / 0.0025 GeV"); TwoGammaMass_7g->Draw(); ThreePi0Mass_7g =new TH1F("ThreePi0Mass_7g","M(6#gamma)",1600,0,4.); ThreePi0Mass_7g->SetXTitle("M(6#gamma) [GeV]"); ThreePi0Mass_7g->SetYTitle("counts / 0.0025 GeV"); EtaGammaMass_7g =new TH1F("EtaGammaMass_7g","M(7#gamma)",1600,0,4.); EtaGammaMass_7g->SetXTitle("M(7#gamma) [GeV]"); EtaGammaMass_7g->SetYTitle("counts / 0.0025 GeV"); EtaGamma_with_2pi0=new TH1F("EtaGamma_with_2pi0","M(#eta#gamma)",1600,0,4.); Pi0GammaMass_7g =new TH1F("Pi0GammaMass_7g","M(#pi0#gamma)",1600,0,4.); Pi0GammaMass_7g->SetXTitle("M(3#gamma) [GeV]"); Pi0GammaMass_7g->SetYTitle("combinations / 0.0025 GeV"); Pi0GammaMass_7g->SetTitle("Three #gamma mass with #pi^{0} cut"); Pi0Pi0Gamma_7g =new TH1F("Pi0Pi0Gamma_7g","M(#pi0#pi0#gamma)",1600,0,4.); Pi0Pi0Gamma_7g->SetXTitle("M(5#gamma) [GeV]"); Pi0Pi0Gamma_7g->SetYTitle("combinations / 0.0025 GeV"); Pi0Pi0Gamma_7g->SetTitle("#pi0#pi0#gamma mass, 7#gamma events"); Pi0Pi0_against_omega =new TH1F("Pi0Pi0_against_omega","M(#pi0#pi0)",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("8gamma")->cd(); { EightGammaMass_kf =new TH1F("EightGammaMass_kf","M(8#gamma)",1600,0,4.); EightGammaMass_kf->SetXTitle("M(8#gamma) [GeV]"); EightGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_8g= new TH1F("TwoGammaMass_8g","M(2#gamma)",1600,0,4.); TwoGammaMass_8g->SetYTitle("combinations / 0.0025 GeV"); TwoGammaMass_8g->SetXTitle("M(2#gamma) [GeV]"); FourPi0Mass =new TH1F("FourPi0Mass","M(8#gamma)",1600,0,4.); FourPi0Mass->SetXTitle("M(8#gamma) [GeV]"); FourPi0Mass->SetYTitle("counts / 0.0025 GeV"); EtaPrimePi0_8g =new TH1F("EtaPrimePi0_8g","M(8#gamma)",1600,0,4.); EtaPrimePi0_8g->SetXTitle("M(8#gamma) [GeV]"); EtaPrimePi0_8g->SetYTitle("counts / 0.0025 GeV"); F1Pi0Mass_8g =new TH1F("F1Pi0Mass_8g","M(8#gamma)",1600,0,4.); F1Pi0Mass_8g->SetXTitle("M(8#gamma) [GeV]"); F1Pi0Mass_8g->SetYTitle("counts / 0.0025 GeV"); EtaPrimePi0_8g_cut =new TH1F("EtaPrimePi0_8g_cut","M(8#gamma)",1600,0,4.); EtaPrimePi0_8g_cut->SetXTitle("M(8#gamma) [GeV]"); EtaPrimePi0_8g_cut->SetYTitle("counts / 0.0025 GeV"); F1Pi0Mass_8g_cut =new TH1F("F1Pi0Mass_8g_cut","M(8#gamma)",1600,0,4.); F1Pi0Mass_8g_cut->SetXTitle("M(8#gamma) [GeV]"); F1Pi0Mass_8g_cut->SetYTitle("counts / 0.0025 GeV"); EtaEta_3pi0 =new TH1F("EtaEta_3pi0","M(8#gamma)",1600,0,4.); EtaEta_3pi0->SetXTitle("M(8#gamma) [GeV]"); EtaEta_3pi0->SetYTitle("counts / 0.0025 GeV"); Pi0Eta_eta_3pi0 =new TH1F("Pi0Eta_eta_3pi0","M(8#gamma)",1600,0,4.); Pi0Eta_eta_3pi0->SetXTitle("M(8#gamma) [GeV]"); Pi0Eta_eta_3pi0->SetYTitle("counts / 0.0025 GeV"); ThreePi0_4pi0 =new TH1F("ThreePi0_4pi0","M(8#gamma)",1600,0,4.); ThreePi0_4pi0->SetXTitle("M(3#pi^{0}) [GeV]"); ThreePi0_4pi0->SetYTitle("counts / 0.0025 GeV"); EtaPi0_2d=new TH2F("EtaPi0_2d","M(#eta#pi^{0}, pair 1) vs M(#eta#pi^{0}, pair2", 400,0.5,2.5,400,0.5,2.5); EtaPi0_2d->SetXTitle("M(#eta#pi^{0}, pair 2) [GeV]"); EtaPi0_2d->SetYTitle("M(#eta#pi^{0}, pair 1) [GeV]"); EtaPi0_vs_Pi0Pi0=new TH2F("EtaPi0_vs_Pi0Pi0","M(#eta#pi^{0}, pair 1) vs M(#pi^{0}#pi^{0}, pair2", 500,0.0,2.5,400,0.5,2.5); EtaPi0_vs_Pi0Pi0->SetXTitle("M(#pi^{0}#pi^{0}, pair 2) [GeV]"); EtaPi0_vs_Pi0Pi0->SetYTitle("M(#eta#pi^{0}, pair 1) [GeV]"); TwoPi0VsTwoPi0=new TH2F("TwoPi0VsTwoPi0","M(#pi^{0}#pi^{0}, pair 1) vs M(#pi^{0}#pi^{0}, pair2", 2500,0.0,2.5,2500,0.,2.5); KShortKShort_4pi0 =new TH1F("KShortKShort_4pi0","M(4#pi^{0})",1600,0,4.); ThreePi0_against_eta =new TH1F("ThreePi0_against_eta","M(3#pi^{0})",1600,0,4.); ThreePi0_against_eta->SetXTitle("M(3#pi^{0}) [GeV]"); ThreePi0_against_eta->SetYTitle("counts / 0.0025 GeV"); Eta2Pi0_against_eta =new TH1F("Eta2Pi0_against_eta","M(#eta2#pi^{0})",1600,0,4.); Eta2Pi0_against_eta->SetXTitle("M(#eta2#pi^{0}) [GeV]"); Eta2Pi0_against_eta->SetYTitle("combinations / 0.0025 GeV"); Eta2Pi0_against_pi0 =new TH1F("Eta2Pi0_against_pi0","M(#eta2#pi^{0})",1600,0,4.); Eta2Pi0_against_pi0->SetXTitle("M(#eta2#pi^{0}) [GeV]"); Eta2Pi0_against_pi0->SetYTitle("combinations / 0.0025 GeV"); Eta2Pi0_against_pi0_cut =new TH1F("Eta2Pi0_against_pi0_cut","M(#eta2#pi^{0})",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("10gamma")->cd(); { TenGammaMass_kf =new TH1F("TenGammaMass_kf","M(10#gamma)",1600,0,4.); TenGammaMass_kf->SetXTitle("M(10#gamma) [GeV]"); TenGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_10g= new TH1F("TwoGammaMass_10g","M(2#gamma)",1600,0,4.); TwoGammaMass_10g->SetYTitle("combinations / 0.0025 GeV"); TwoGammaMass_10g->SetXTitle("M(2#gamma) [GeV]"); FivePi0Mass =new TH1F("FivePi0Mass","M(10#gamma)",1600,0,4.); FivePi0Mass->SetXTitle("M(10#gamma) [GeV]"); FivePi0Mass->SetYTitle("counts / 0.0025 GeV"); Eta4Pi0Mass =new TH1F("Eta4Pi0Mass","; M(#eta4#pi^{0}) [GeV]",1600,0,4.); EtaPrime2Pi0_10g =new TH1F("EtaPrime2Pi0_10g","; M(#eta'2#pi^{0}) [GeV]",1600,0,4.); ThreePi0_10g =new TH1F("ThreePi0_10g","M(6#gamma)",1600,0,4.); ThreePi0_10g->SetXTitle("M(6#gamma) [GeV]"); ThreePi0_10g->SetYTitle("combinations / 0.0025 GeV"); ThreePi0_10g->SetTitle("3#pi^{0} mass for 10#gamma events"); Eta2Pi0_10g =new TH1F("Eta2Pi0_10g",";M(#eta2#pi^{0}) [GeV]",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("12gamma")->cd(); { TwelveGammaMass_kf =new TH1F("TwelveGammaMass_kf","M(12#gamma)",1600,0,4.); TwelveGammaMass_kf->SetXTitle("M(12#gamma) [GeV]"); TwelveGammaMass_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_12g= new TH1F("TwoGammaMass_12g","M(2#gamma)",1600,0,4.); TwoGammaMass_12g->SetYTitle("combinations / 0.0025 GeV"); TwoGammaMass_12g->SetXTitle("M(2#gamma) [GeV]"); SixPi0Mass =new TH1F("SixPi0Mass","M(12#gamma)",1600,0,4.); SixPi0Mass->SetXTitle("M(12#gamma) [GeV]"); SixPi0Mass->SetYTitle("counts / 0.0025 GeV"); } gDirectory->cd("../"); gDirectory->mkdir("PipPim")->cd(); { PipPim_CL=new TH1F("PipPim_CL","CL",1000,0,1.); PipPim_chisq=new TH1F("PipPim_chsq","#chi^{2}/ndf",1000,0,100); PipPimMass_kf= new TH1F("PipPimMass_kf","#pi+#pi- mass",1600,0,4.); PipPimMass_kf->SetXTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPimMass_kf->SetTitle("#pi^{+}#pi^{-} mass"); PipPimMass_vs_Ebeam=new TH2F("PipPimMass_vs_Ebeam","M(#pi+#pi-) vs E#gamma", 48,2.8,12.4,1600,0,4.); PipPimMass_vs_Ebeam->SetXTitle("E#gamma [GeV]"); PipPimMass_vs_Ebeam->SetYTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimMass_vs_Ebeam_tcut=new TH2F("PipPimMass_vs_Ebeam_tcut","M(#pi+#pi-) vs E#gamma", 48,2.8,12.4,1600,0,4.); PipPimMass_vs_Ebeam_tcut->SetXTitle("E#gamma [GeV]"); PipPimMass_vs_Ebeam_tcut->SetYTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPim_t=new TH2F("PipPim_t","t dist for #pi+#pi-", 27,6.4,11.8,250,0,5); PipPim_t->SetYTitle("-t [GeV^{2}]"); PipPim_t->SetXTitle("E#gamma [GeV]"); RhoPimPVsTheta=new TH2F("RhoPimPVsTheta","#pi- p vs #theta",90,0,90,100,0,10); RhoPipPVsTheta=new TH2F("RhoPipPVsTheta","#pi+ p vs #theta",90,0,90,100,0,10); RhoPipThetaVsPimTheta=new TH2F("RhoPipThetaVsPimTheta","#theta(#pi+) vs #theta(#pi-)",160,0,40,160,0,40); } gDirectory->cd("../"); gDirectory->mkdir("PipPim1Gamma")->cd(); { PipPim1GammaMass_kf=new TH1F("PipPim1GammaMass_kf","#pi+#pi-#gamma invariant mass",1600,0,4.); PipPim1GammaMass_kf->SetXTitle("M(#pi^{+}#pi^{-}#gamma) [GeV]"); PipPim1GammaMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPim1GammaMass_cut=new TH1F("PipPim1GammaMass_cut","#pi+#pi-#gamma invariant mass",1600,0,4.); RhoGammaMass=new TH1F("RhoGammaMass","#pi+#pi-#gamma invariant mass",1600,0,4.); PipPimMass_1g=new TH1F("PipPimMass_1g","#pi+#pi- invariant mass",1600,0,4.); PipPimMass_etaprime=new TH1F("PipPimMass_etaprime","#pi+#pi- invariant mass",1600,0,4.); PipPimMass_etaprime->SetXTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimMass_etaprime->SetYTitle("counts / 0.0025 GeV"); PipPimMass_etaprime_sb=new TH1F("PipPimMass_etaprime_sb","#pi+#pi- invariant mass",1600,0,4.); PipPimMass_etaprime_sb->SetXTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimMass_etaprime_sb->SetYTitle("counts / 0.0025 GeV"); } gDirectory->cd("../"); gDirectory->mkdir("PipPim2Gamma")->cd(); { PipPim2g_vs_2g=new TH2F("PipPim2g_vs_2g",";M(2#gamma)[GeV];M(#pi^{+}#pi^{-}2#gamma)[GeV]",480,0,1.2,160,0,4); TwoGammaMass_p2pi_kf =new TH1F("TwoGammaMass_p2pi_kf","M(2#gamma), #pi+#pi- required",1600,0,4.); TwoGammaMass_p2pi_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_p2pi_kf->SetXTitle("M(2#gamma) [GeV]"); PipPim2GammaMass_kf=new TH1F("PipPim2GammaMass_kf","M(#pi+#pi-2#gamma)",1600,0,4.); PipPim2GammaMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPim2GammaMass_kf->SetXTitle("M(#pi^{+}#pi^{-}2#gamma) [GeV]"); PipPimPi0Mass_kf=new TH1F("PipPimPi0Mass_kf","#pi+#pi-#pi0 mass",1600,0,4.); PipPimPi0Mass_kf->SetYTitle("counts / 0.0025 GeV"); PipPimPi0Mass_kf->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}) [GeV]"); PipPimMass_2g=new TH1F("PipPimMass_2g","#pi+#pi- mass",1600,0,4.); PipPimMass_2g->SetYTitle("counts / 0.0025 GeV"); PipPimMass_2g->SetXTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimMass_with_pi0=new TH1F("PipPimMass_with_pi0","#pi+#pi- mass",1600,0,4.); PipPimMass_with_pi0->SetYTitle("counts / 0.0025 GeV"); PipPimMass_with_pi0->SetXTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimMass_with_eta=new TH1F("PipPimMass_with_eta","#pi+#pi- mass",1600,0,4.); PipPimMass_with_eta->SetYTitle("counts / 0.0025 GeV"); PipPimMass_with_eta->SetXTitle("M(#pi^{+}#pi^{-}) [GeV]"); PipPimPi0Mass_vs_Ebeam=new TH2F("PipPimPi0Mass_vs_Ebeam","M(#pi+#pi-#pi0) vs E#gamma", 48,2.8,12.4,1600,0,4.); PipPimPi0Mass_vs_Ebeam->SetXTitle("E#gamma [GeV]"); PipPimPi0Mass_vs_Ebeam->SetYTitle("M(#pi^{+}#pi^{-}#pi^{0}) [GeV]"); PipPimEtaMass_vs_Ebeam=new TH2F("PipPimEtaMass_vs_Ebeam",";M(#pi+#pi-#eta); vs E#gamma", 48,2.8,12.4,1600,0,4.); PipPimEtaMass_kf=new TH1F("PipPimEtaMass_kf","#pi+#pi-#eta mass",1600,0,4.); PipPimEtaMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPimEtaMass_kf->SetXTitle("M(#pi^{+}#pi^{-}#eta) [GeV]"); PipPimEtaPrimeMass_kf=new TH1F("PipPimEtaPrimeMass_kf","#pi+#pi-#eta' mass",1600,0,4.); PipPimEtaPrimeMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPimEtaPrimeMass_kf->SetXTitle("M(#pi^{+}#pi^{-}#eta') [GeV]"); Omega_t_mandelstam=new TH2F("Omega_t_mandelstam","t dist for #omega", 27,6.4,11.8,250,0,5); Omega_t_mandelstam->SetYTitle("-t [GeV^{2}]"); Omega_t_mandelstam->SetXTitle("E#gamma [GeV]"); PPimMass_2g=new TH1F("PPimMass_2g","ppi- mass",1600,0,4.); PPimMass_2g->SetYTitle("counts / 0.0025 GeV"); PPimMass_2g->SetXTitle("M(p#pi^{-}) [GeV]"); Pip2GammaMass=new TH1F("Pip2GammaMass","pi+2#gamma mass",1600,0,4.); Pip2GammaMass->SetYTitle("counts / 0.0025 GeV"); Pip2GammaMass->SetXTitle("M(#pi^{+}2#gamma) [GeV]"); PipEtaMassSq_vs_PimEtaMassSq=new TH2F("PipEtaMassSq_vs_PimEtaMassSq", "M^2(#pi+#eta) vs M^2(#pi-#eta)", 200,0,10,200,0,10); PipEtaMassSq_vs_PimEtaMassSq_f1cut=new TH2F("PipEtaMassSq_vs_PimEtaMassSq_f1cut_v2", "M^2(#pi+#eta) vs M^2(#pi-#eta)", 260,0.3,1.6,260,0.3,1.6); PipEtaMassSq_vs_PimEtaMassSq_f1_low_sb=new TH2F("PipEtaMassSq_vs_PimEtaMassSq_f1_low_sb_v2", "M^2(#pi+#eta) vs M^2(#pi-#eta)", 260,0.3,1.6,260,0.3,1.6); PipEtaMassSq_vs_PimEtaMassSq_f1_high_sb=new TH2F("PipEtaMassSq_vs_PimEtaMassSq_f1_high_sb_v2", "M^2(#pi+#eta) vs M^2(#pi-#eta)", 260,0.3,1.6,260,0.3,1.6); PipEtaPrimeMassSq_vs_PimEtaPrimeMassSq=new TH2F("PipEtaPrimeMassSq_vs_PimEtaPrimeMassSq", "M^{2}(#pi+#eta') vs M^{2}(#pi-#eta')", 200,0,10,200,0,10); gDirectory->mkdir("t-dependence")->cd(); for (unsigned int i=0;i<48;i++){ char myname[80]; sprintf(myname,"PipPimPi0_vs_t_%3.1fGeV",2.9+0.2*i); PipPimPi0_vs_t[i]=new TH2F(myname,myname,50,0,2,400,0.,2.); } gDirectory->cd("../"); PPi0Mass=new TH1F("PPi0Mass","p#pi0 mass",3000,0.9,4.9); Phi3PiCosThetaVsPhiH=new TH2F("Phi3PiCosThetaVsPhiH","cos(#theta) vs #phi for #phi",100,-M_PI,M_PI,100,-1,1); Omega3PiCosThetaVsPhiH=new TH2F("Omega3PiCosThetaVsPhiH","cos(#theta) vs #phi for #omega",100,-M_PI,M_PI,100,-1,1); EtaDalitzXY=new TH2F("EtaDalitzXY","Dalitz plot for #eta",120,-1.1,1.1,120,-1.1,1.1); OmegaDalitz1=new TH2F("OmegaDalitz1","Dalitz plot for #eta",100,0,0.5,100,0,0.5); OmegaDalitz2=new TH2F("OmegaDalitz2","Dalitz plot for #eta",100,0,0.5,100,0,0.5); } gDirectory->cd("../"); gDirectory->mkdir("PipPim3Gamma")->cd(); { PipPim3GammaMass_kf=new TH1F("PipPim3GammaMass_kf","#pi+#pi-3#gamma invariant mass",1600,0,4.); PipPim3GammaMass_kf->SetXTitle("M(#pi^{+}#pi^{-}3#gamma) [GeV]"); PipPim3GammaMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPim3GammaMass_cut_kf=new TH1F("PipPim3GammaMass_cut_kf","#pi+#pi-3#gamma invariant mass, cut on M(3#gamma)",1600,0,4.); PipPim3GammaMass_cut_kf->SetXTitle("M(#pi^{+}#pi^{-}3#gamma) [GeV]"); PipPim3GammaMass_cut_kf->SetYTitle("counts / 0.0025 GeV"); TwoGammaMass_pippim3g_kf =new TH1F("TwoGammaMass_pippim3g_kf","M(2#gamma)",1600,0,4.); TwoGammaMass_pippim3g_kf->SetYTitle("combinations / 0.0025 GeV"); TwoGammaMass_pippim3g_kf->SetXTitle("M(2#gamma) [GeV]"); ThreeGammaMass_ppippim_kf=new TH1F("ThreeGammaMass_ppippim_kf","3#gamma mass, p#pi+#pi- events",1600,0,4.); ThreeGammaMass_ppippim_kf->SetXTitle("M(3#gamma) [GeV]"); ThreeGammaMass_ppippim_kf->SetYTitle("counts / 0.0025 GeV"); OmegaPiPiMass=new TH1F("OmegaPiPiMass","#pi+#pi-3#gamma invariant mass, cut on M(3#gamma)",1600,0,4.); OmegaPiPiMass->SetXTitle("M(#pi^{+}#pi^{-}3#gamma) [GeV]"); OmegaPiPiMass->SetYTitle("counts / 0.0025 GeV"); OmegaPiDalitz_kf=new TH2F("OmegaPiDalitz_kf","M^{2}(#pi^{-}#omega) vs M^{2}(#pi^{+}#omega)",280,0.5,7.5,280,0.5,7.5); OmegaPiDalitz_kf->SetXTitle("M^{2}(#pi^{+}3#gamma) [GeV^{2}]"); OmegaPiDalitz_kf->SetYTitle("M^{2}(#pi^{-}3#gamma) [GeV^{2}]"); Pi0GammaMass_ppippim_kf=new TH1F("Pi0GammaMass_ppippim_kf","#pi0#gamma mass, p#pi+#pi- events",1600,0,4.); PipPimGammaMass_3g_kf=new TH1F("PipPimGammaMass_3g_kf","#pi+#pi-#gamma mass, p#pi+#pi-3g events",1600,0,4.); PipPimGammaMass_3g_kf->SetXTitle("M(#pi^{+}#pi^{-}#gamma) [GeV]"); PipPimGammaMass_3g_kf->SetYTitle("combinations / 0.0025 GeV"); PipPimPi0Mass_3g_kf=new TH1F("PipPimPi0Mass_3g_kf","#pi+#pi-#pi0 mass, p#pi+#pi-3g events",1600,0,4.); PipPimPi0Mass_3g_kf->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}) [GeV]"); PipPimPi0Mass_3g_kf->SetYTitle("combinations / 0.0025 GeV"); PipPimEtaMass_3g_kf=new TH1F("PipPimEtaMass_3g_kf","#pi+#pi-#eta mass, p#pi+#pi-3g events",1600,0,4.); PipPimEtaMass_3g_kf->SetXTitle("M(#pi^{+}#pi^{-}#eta) [GeV]"); PipPimEtaMass_3g_kf->SetYTitle("combinations / 0.0025 GeV"); OmegaGammaMass_pippim3g =new TH1F("OmegaGammaMass_pippim3g","m(#omega#gamma)",1600,0,4.); OmegaGammaMass_pippim3g->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}#gamma) [GeV]"); OmegaGammaMass_pippim3g->SetYTitle("combinations / 0.0025 GeV"); OmegaGammaMass_pippim3g->SetTitle("#pi^{+}#pi^{-}3#gamma invariant mass with #omega cut"); EtaGammaMass_pippim3g =new TH1F("EtaGammaMass_pippim3g","m(#eta#gamma)",1600,0,4.); EtaGammaMass_pippim3g->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}#gamma) [GeV]"); EtaGammaMass_pippim3g->SetYTitle("combinations / 0.0025 GeV"); EtaGammaMass_pippim3g->SetTitle("#pi^{+}#pi^{-}3#gamma invariant mass with #eta cut"); PhiGammaMass_pippim3g =new TH1F("PhiGammaMass_pippim3g","m(#phi#gamma)",1600,0,4.); PhiGammaMass_pippim3g->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}#gamma) [GeV]"); PhiGammaMass_pippim3g->SetYTitle("combinations / 0.0025 GeV"); PhiGammaMass_pippim3g->SetTitle("#pi^{+}#pi^{-}3#gamma invariant mass with #phi cut"); EtaGammaMass_ppippim_kf=new TH1F("EtaGammaMass_ppippim_kf","#eta#gamma mass, p#pi+#pi- events",1600,0,4.); PipPimGammaMass_against_eta=new TH1F("PipPimGammaMass_against_eta","#pi+#pi-#gamma mass, p#pi+#pi-3g events",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("PipPim4Gamma")->cd(); { PipPim4GammaMass_kf=new TH1F("PipPim4GammaMass_kf", ";M(#pi^{+}#pi^{-}4#gamma) [GeV]",1600,0,4.); PipPim2Pi0Mass=new TH1F("PipPim2Pi0Mass", ";M(#pi^{+}#pi^{-}2#pi^{0}) [GeV]",1600,0,4.); RhoPlusRhoMinus=new TH1F("RhoPlusRhoMinus", ";M(#rho^{+}#rho^{-}) [GeV]",1600,0,4.); RhoPlusRhoMinus_bg=new TH1F("RhoPlusRhoMinus_bg", ";M(#rho^{+}#rho^{-}) [GeV]",1600,0,4.); PipPim2EtaMass=new TH1F("PipPim2EtaMass", ";M(#pi^{+}#pi^{-}2#eta) [GeV]",1600,0,4.); PipPimEtaPi0Mass=new TH1F("PipPimEtaPi0Mass", ";M(#pi^{+}#pi^{-}#eta#pi^{0}) [GeV]",1600,0,4.); OmegaEta_PipPim=new TH1F("OmegaEta_PipPim", ";M(#omega#eta) [GeV]",1600,0,4.); OmegaEta_PipPim->SetYTitle("counts / 0.0025 GeV"); EtaCosTheta_EtaOmega=new TH2F("EtaCosTheta_EtaOmega",";cos(#theta_{eta,GJ}); vs #eta#omega mass",100,1.,3.,100,-1,1); Pi0CosTheta_EtaPrimePi0=new TH2F("Pi0CosTheta_EtaPrimePi0","cos(#theta_{pi0,GJ}) vs #eta'#pi0 mass",100,1.,3.,100,-1,1); FourGamma2d_ppippim_kf=new TH2F("FourGamma2d_ppippim_kf","m(2#gamma,pair2) vs m(2#gamma,pair1)",500,0,1,500,0,1); FourGamma2d_ppippim_kf->SetYTitle("M(2#gamma,pair 2) [GeV]"); FourGamma2d_ppippim_kf->SetXTitle("M(2#gamma,pair 1) [GeV]"); FourGamma2d_ppippim_bg=new TH2F("FourGamma2d_ppippim_bg","m(2#gamma,pair2) vs m(2#gamma,pair1)",500,0,1,500,0,1); FourGammaMass_ppippim_kf=new TH1F("FourGammaMass_ppippim_kf", ";M(4#gamma) [GeV]",1600,0,4.); PipPi0Mass_vs_PimPi0Mass_kf=new TH2F("PipPi0Mass_vs_PimPi0Mass_kf", "M(#pi+#pi0) vs M(#pi-#pi0)", 200,0,2,200,0,2); PipPi0Mass_vs_PimPi0Mass_kf->SetYTitle("M(#pi^{+}#pi^{0}_{2}) [GeV]"); PipPi0Mass_vs_PimPi0Mass_kf->SetXTitle("M(#pi^{-}#pi^{0}_{1}) [GeV]"); PipPimPi0_vs_PPi0=new TH2F("PipPimPi0_vs_PPi0",";M(p#pi^{0}) [GeV];M(#pi^{+}#pi^{-}#pi^{0}) [GeV]",300,0.9,3.9,300,0,3.); OmegaPi0Mass_kf =new TH1F("OmegaPi0Mass_kf", ";M(#omega#pi^{0}) [GeV]",1600,0,4.); OmegaPi0Mass_kf->SetYTitle("combinations / 0.0025 GeV"); EtaPi0Mass_p2pi_kf =new TH1F("EtaPi0Mass_p2pi_kf", ";M(#pi^{0}#eta(#to#pi^{+}#pi^{-}#pi^{0})) [GeV]", 1600,0,4.); OmegaPi0Mass_kf->SetYTitle("combinations / 0.0025 GeV"); PipPim_vs_2Pi0=new TH2F("PipPim_vs_2Pi0","M(#pi+#pi-) vs M(#pi0#pi0)", 200,0,2,200,0,2); PipPim_vs_2Eta=new TH2F("PipPim_vs_2Eta","M(#pi+#pi-) vs M(#eta#eta)", 200,1,3,200,0,2); PipPim_vs_EtaPi0=new TH2F("PipPim_vs_EtaPi0","M(#pi+#pi-) vs M(#eta#pi^{0})", 200,0.5,2.5,200,0.,2.); EtaPipPim_with_Eta =new TH1F("EtaPipPim_with_Eta", ";M(#pi^{+}#pi^{-}#eta) [GeV]",1600,0,4.); EtaEtaPrimeMass =new TH1F("EtaEtaPrimeMass", ";M(#eta'#eta) [GeV]",1600,0,4.); EtaPipPim_with_Pi0 =new TH1F("EtaPipPim_with_Pi0", ";M(#pi^{+}#pi^{-}#eta) [GeV]",1600,0,4.); TwoEta_PipPim =new TH1F("TwoEta_PipPim", ";M(#eta(#pi^{+}#pi^{-}#pi^{0})#eta)",1600,0,4.); TwoEta_PipPim->SetYTitle("combinations / 0.0025 GeV"); EtaPrimePi0_PipPim =new TH1F("EtaPrimePi0_PipPim", ";M(#pi0#eta'(#to#pi^{+}#pi^{-}#eta)) [GeV]", 1600,0,4.); EtaPrimePi0_PipPim->SetYTitle("combinations / 0.0025 GeV"); F1Pi0Mass =new TH1F("F1Pi0Mass", ";M(#pi^{0}f_{1}(#to#pi^{+}#pi^{-}#eta))",1600,1,5.); TwoGamma_vs_PipPimTwoGamma=new TH2F("TwoGamma_vs_PipPimTwoGamma", "M(2#gamma) vs M(#pi+#pi-2#gamma)", 150,0,1.5,150,0,1.5); Pi0PipPim_with_Eta =new TH1F("Pi0PipPim_with_Eta", ";M(#pi^{+}#pi^{-}#pi^{0}) [GeV]",1600,0,4.); Pi0PipPim_with_Pi0 =new TH1F("Pi0PipPim_with_Pi0", ";M(#pi^{+}#pi^{-}#pi^{0}) [GeV]",1600,0,4.); // ---- background PipPi0Mass_vs_PimPi0Mass_bg=new TH2F("PipPi0Mass_vs_PimPi0Mass_bg", "M(#pi+#pi0) vs M(#pi-#pi0)", 200,0,2,200,0,2); PipPim_vs_2Eta_bg=new TH2F("PipPim_vs_2Eta_bg","M(#pi+#pi-) vs M(#eta#eta)", 200,1,3,200,0,2); PipPim2Pi0Mass_bg=new TH1F("PipPim2Pi0Mass_bg", ";M(#pi^{+}#pi^{-}2#pi^{0}) [GeV]",1600,0,4.); PipPim2EtaMass_bg=new TH1F("PipPim2EtaMass_bg", ";M(#pi^{+}#pi^{-}2#eta) [GeV]",1600,0,4.); Pi0PipPim_with_Pi0_bg =new TH1F("Pi0PipPim_with_Pi0_bg", ";M(#pi^{+}#pi^{-}#pi^{0}) [GeV]",1600,0,4.); PipPim_vs_2Pi0_bg=new TH2F("PipPim_vs_2Pi0_bg","M(#pi+#pi-) vs M(#pi0#pi0)", 200,0,2,200,0,2); OmegaPi0Mass_bg =new TH1F("OmegaPi0Mass_bg", ";M(#omega#pi^{0}) [GeV]",1600,0,4.); EtaPi0Mass_p2pi_bg =new TH1F("EtaPi0Mass_p2pi_bg", ";M(#pi^{0}#eta(#to#pi^{+}#pi^{-}#pi^{0})) [GeV]", 1600,0,4.); EtaPipPim_with_Eta_bg =new TH1F("EtaPipPim_with_Eta_bg", ";M(#pi^{+}#pi^{-}#eta) [GeV]",1600,0,4.); EtaEtaPrimeMass_bg =new TH1F("EtaEtaPrimeMass_bg", ";M(#eta'#eta) [GeV]",1600,0,4.); PipPimEtaPi0Mass_bg=new TH1F("PipPimEtaPi0Mass_bg", ";M(#pi^{+}#pi^{-}#eta#pi^{0}) [GeV]",1600,0,4.); OmegaEta_PipPim_bg=new TH1F("OmegaEta_PipPim_bg", ";M(#omega#eta) [GeV]",1600,0,4.); OmegaEta_PipPim_bg->SetYTitle("counts / 0.0025 GeV"); EtaCosTheta_EtaOmega_bg=new TH2F("EtaCosTheta_EtaOmega_bg",";cos(#theta_{eta,GJ}); vs #eta#omega mass",100,1.,3.,100,-1,1); Pi0CosTheta_EtaPrimePi0_bg=new TH2F("Pi0CosTheta_EtaPrimePi0_bg","cos(#theta_{pi0,GJ}) vs #eta'#pi0 mass",100,1.,3.,100,-1,1); Pi0PipPim_with_Eta_bg =new TH1F("Pi0PipPim_with_Eta_bg", ";M(#pi^{+}#pi^{-}#pi^{0}) [GeV]",1600,0,4.); EtaPipPim_with_Pi0_bg =new TH1F("EtaPipPim_with_Pi0_bg", ";M(#pi^{+}#pi^{-}#eta) [GeV]",1600,0,4.); EtaPrimePi0_PipPim_bg =new TH1F("EtaPrimePi0_PipPim_bg", ";M(#pi0#eta'(#to#pi^{+}#pi^{-}#eta)) [GeV]", 1600,0,4.); EtaPrimePi0_PipPim_bg->SetYTitle("combinations / 0.0025 GeV"); F1Pi0Mass_bg =new TH1F("F1Pi0Mass_bg", ";M(#pi^{0}f_{1}(#to#pi^{+}#pi^{-}#eta))",1600,1,5.); PipPim_vs_EtaPi0_bg=new TH2F("PipPim_vs_EtaPi0_bg", "M(#pi+#pi-) vs M(#eta#pi^{0})", 200,0.5,2.5,200,0.,2.); TwoEta_PipPim_bg =new TH1F("TwoEta_PipPim_bg", ";M(#eta(#pi^{+}#pi^{-}#pi^{0})#eta)",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("PipPim5Gamma")->cd(); { FiveGammaMass_ppippim_kf=new TH1F("FiveGammaMass_ppippim_kf","M(5#gamma), p#pi#pi events",1600,0,4.); FiveGammaMass_ppippim_kf->SetXTitle("M(5#gamma) [GeV]"); FiveGammaMass_ppippim_kf->SetYTitle("counts / 0.0025 GeV"); PipPim5GammaMass_kf=new TH1F("PipPim5GammaMass_kf","M(#pi+#pi-5#gamma)",1600,0,4.); PipPim5GammaMass_kf->SetXTitle("M(#pi^{+}#pi^{-}5#gamma) [GeV]"); PipPim5GammaMass_kf->SetYTitle("counts / 0.0025 GeV"); FourGamma2d_5g_pippim=new TH2F("FourGamma2d_5g_pippim","m(2#gamma,pair2) vs m(2#gamma,pair1)",100,0,1,100,0,1); FourGamma2d_5g_pippim->SetXTitle("M(2#gamma, pair 1) [GeV]"); FourGamma2d_5g_pippim->SetYTitle("M(2#gamma, pair 2) [GeV]"); Pi0Pi0GammaMass_vs_Pi0GammaMass_pippim=new TH2F("Pi0Pi0GammaMass_vs_Pi0GammaMass_pippim","M(#pi0#pi0#gamma) vs M(#pi0#gamma)",1600,0,4.,1600,0,4.); Pi0Pi0GammaMass_vs_Pi0GammaMass_pippim->SetXTitle("M(#pi^{0}#gamma) [GeV]"); Pi0Pi0GammaMass_vs_Pi0GammaMass_pippim->SetYTitle("M(#pi^{0}#pi^{0}#gamma) [GeV]"); Pi0Gamma_vs_PipPimPi0=new TH2F("Pi0Gamma_vs_PipPimPi0","M(#pi0#gamma) vs M(#pi0#pi+#pi-)",1600,0,4.,1600,0,4.); Pi0Gamma_vs_PipPimPi0->SetYTitle("M(#pi^{0}#gamma) [GeV]"); Pi0Gamma_vs_PipPimPi0->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}) [GeV]"); OmegaOmega_2pi5g= new TH1F("OmegaOmega_2pi5g","#pi+#pi-5#gamma mass",1600,0,4.); OmegaEta_2pi5g= new TH1F("OmegaEta_2pi5g",";M(#omega#eta) [GeV]",1600,0,4.); EtaCosTheta_EtaOmega_2pi5g=new TH2F("EtaCosTheta_EtaOmega_2pi5g",";cos(#theta_{#eta,GJ});M(#eta#omega) [GeV]",100,1.,3.,100,-1,1); } gDirectory->cd("../"); gDirectory->mkdir("PipPim6Gamma")->cd(); { SixGammaMass_ppippim_kf=new TH1F("SixGammaMass_ppippim_kf","M(6#gamma), p#pi#pi events",1600,0,4.); PipPim6GammaMass_kf=new TH1F("PipPim6GammaMass_kf","M(#pi+#pi-6#gamma)",1600,0,4.); PipPim6GammaMass_kf->SetXTitle("M(#pi^{+}#pi^{-}6#gamma) [GeV]"); PipPim6GammaMass_kf->SetYTitle("counts / 0.0025 GeV"); PipPimPi0_6g=new TH1F("PipPimPi0_6g","#pi+#pi-#pi0 mass",1600,0,4.); PipPimEta_with_2pi0=new TH1F("PipPimEta_with_2pi0","#pi+#pi-#eta mass",1600,0,4.); PipPimPi0_with_2eta=new TH1F("PipPimPi0_with_2eta","#pi+#pi-#pi0 mass",1600,0,4.); PipPimEta_with_etapi0=new TH1F("PipPimEta_with_etapi0","#pi+#pi-#eta mass",1600,0,4.); PipPimEtaMass_6g_kf=new TH1F("PipPimEtaMass_kf","#pi+#pi-#eta mass, #eta->6#gamma",1600,0,4.); PipPimEtaMass_6g_kf->SetYTitle("counts / 0.0025 GeV"); PipPimEtaMass_6g_kf->SetXTitle("M(#pi^{+}#pi^{-}#eta) [GeV]"); PipPimEtaPrime_6g=new TH1F("PipPimEtaPrime","#pi+#pi-#eta', #eta'->6#gamma",1600,0,4.); PipPimEtaPrime_6g->SetYTitle("counts / 0.0025 GeV"); PipPimEtaPrime_6g->SetXTitle("M(#pi^{+}#pi^{-}#eta') [GeV]"); EtaPrime2Pi0=new TH1F("EtaPrime2Pi0",";#eta'2#pi^{0} [GeV]",1600,0,4.); TwoGammaMass_PipPim6g_kf= new TH1F("TwoGammaMass_PipPim6g_kf","M(2#gamma)",1600,0,4.); ThreePi0Mass_PipPim6g_kf= new TH1F("ThreePi0Mass_PipPim6g_kf","M(6#gamma)",1600,0,4.); TwoPi0EtaMass_PipPim6g_kf= new TH1F("TwoPi0EtaMass_PipPim6g_kf","M(6#gamma)",1600,0,4.); TwoEtaPi0Mass_PipPim6g_kf= new TH1F("TwoEtaPi0Mass_PipPim6g_kf","M(6#gamma)",1600,0,4.); ThreeEtaMass_PipPim6g_kf= new TH1F("ThreeEtaMass_PipPim6g_kf","M(6#gamma)",1600,0,4.); Eta2Pi0_pippim6g= new TH1F("Eta2Pi0_pippim6g","#eta#pi0#pi0)",1600,0,4.); Omega2Pi0_pippim6g= new TH1F("Omega2Pi0_pippim6g","#omega#pi0#pi0)",1600,0,4.); OmegaPi0Pi0Dalitz=new TH2F("OmegaPi0Pi0Dalitz","M^(#omega#pi0_1) vs M^2(#omega#pi^0_2",400,0.5,4.5,400,0.5,4.5); } gDirectory->cd("../"); gDirectory->mkdir("2Pip2Pim")->cd(); { TwoPipTwoPimMass= new TH1F("TwoPipTwoPimMass","2#pi+2#pi- mass",1600,0,4.); PipPimMass_vs_PipPimMass=new TH2F("PipPimMass_vs_PipPimMass","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",1000,0,2,1000,0,2); PipPimMass_2pip2pim=new TH1F("PipPimMass_2pip2pim","M(#pi+#pi-)",2000,0.2,2.2); KShortKShort= new TH1F("KShortKShort","2#pi+2#pi- mass",1600,0,4.); RhoRho= new TH1F("RhoRho","; M(#rho^{0}#rho^{0}) [GeV]",1600,0,4.); KShortKShort_baryon_cut= new TH1F("KShortKShort_baryon_cut","2#pi+2#pi- mass",1600,0,4.); KShortKShort_vs_E=new TH2F("KShortKShort_vs_E","2#pi+2#pi- mass vs E#gamma",48,2.8,12.4,1600,0,4.); KShortKShort_vs_t=new TH2F("KShortKShort_vss_t","2#pi+2#pi- mass vs -t",200,0,2,1600,0,4.); TwoPipTwoPimDalitz=new TH2F("TwoPipTwoPimDalitz", "p{#pi+#pi-}_{1} mass sq. vs p{#pi+#pi-}_{2} mass sq.",200,1.,21.,200,1.,21.); } gDirectory->cd("../"); gDirectory->mkdir("2Pip2Pim1gamma")->cd(); { TwoPipTwoPim1GammaMass= new TH1F("TwoPipTwoPim1GammaMass","2#pi+2#pi-#gamma mass",1600,0,4.); PipPimMass_vs_PipPimMass_1g=new TH2F("PipPimMass_vs_PipPimMass_1g","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",200,0,2,200,0,2); PipPim1GammaMass_4pi=new TH1F("PipPim1GammaMass_4pi","#pi+#pi-#gamma invariant mass",1600,0,4.); PipPimEtaMass_4pig= new TH1F("PipPimEtaMass_4pig","2#pi+2#pi-#gamma mass",1600,0,4.); PipPimEtaPrimeMass_4pig= new TH1F("PipPimEtaPrimeMass_4pig","2#pi+2#pi-#gamma mass",1600,0,4.); EShower_2pip2pim=new TH1F("EShower_2pip2pim","E(shower)",1000,0,10.); KShortKShort_1g= new TH1F("KShortKShort_1g","2#pi+2#pi- mass",1600,0,4.); RhoGammaMass_4pi=new TH1F("RhoGammaMass_4pi","#pi+#pi-#gamma invariant mass",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("2Pip2Pim2Gamma")->cd(); { TwoPipTwoPim2GammaMass= new TH1F("TwoPipTwoPim2GammaMass","2#pi+2#pi-2#gamma mass",1600,0,4.); KShortKShortPi0= new TH1F("KShortKShortPi0","2#pi+2#pi-2#gamma mass",1600,0,4.); TwoPipTwoPimEta= new TH1F("TwoPipTwoPimEta","2#pi+2#pi-2#gamma mass",1600,0,4.); PipPimMass_vs_PipPimMass_2g=new TH2F("PipPimMass_vs_PipPimMass_2g","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",200,0,2,200,0,2); PipPimMass_vs_PipPimMass_pi0=new TH2F("PipPimMass_vs_PipPimMass_pi0","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",200,0,2,200,0,2); PipPimMass_vs_PipPimMass_eta=new TH2F("PipPimMass_vs_PipPimMass_eta","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",200,0,2,200,0,2); PipPim2GammaMass_4pi=new TH1F("PipPim2GammaMass_4pi","#pi+#pi-2#gamma invariant mass",1600,0,4.); PipPimPi0Mass_4pi=new TH1F("PipPimPi0Mass_4pi","#pi+#pi-2#gamma invariant mass",1600,0,4.); PipPimEtaMass_4pi=new TH1F("PipPimEtaMass_4pi","#pi+#pi-2#gamma invariant mass",1600,0,4.); PipPimEtaMass_Eta_to_3pi=new TH1F("PipPimEtaMass_Eta_to_3pi","#pi+#pi-#eta invariant mass",1600,0,4.); TwoGammaMass_4pi =new TH1F("TwoGammaMass_4pi","M(2#gamma)",1600,0,4.); PipPimEtaPrimeDalitz=new TH2F("PipPimEtaPrimeDalitz","M^{2}(#pi^{+}#eta') vs M^2(#pi^{-}#eta')",160,0,16,160,0,16); PipPimEtaPrimeDalitz->SetYTitle("M(#pi^{+}#eta') [GeV]"); PipPimEtaPrimeDalitz->SetXTitle("M(#pi^{-}#eta') [GeV]"); PipPimEtaPrimeMass_2pip2pim=new TH1F("PipPimEtaPrimeMass_2pip2pim","#pi+#pi-#eta' invariant mass",1600,0,4.); KShortKShortWithPi0= new TH1F("KShortKShortWithPi0","2#pi+2#pi- mass",1600,0,4.); OmegaPiDalitz_2pip2pim=new TH2F("OmegaPiDalitz_2pip2pim","M^{2}(#pi^{-}#omega) vs M^{2}(#pi^{+}#omega)",280,0.5,7.5,280,0.5,7.5); OmegaPiDalitz_2pip2pim->SetXTitle("M^{2}(#pi^{+}#omega) [GeV^{2}]"); OmegaPiDalitz_2pip2pim->SetYTitle("M^{2}(#pi^{-}#omega) [GeV^{2}]"); B1Pip= new TH1F("B1Pip","b1(1235)#pi^{+} mass",1600,0,4.); B1Pim= new TH1F("B1Pim","b1(1235)#pi^{-} mass",1600,0,4.); } gDirectory->cd("../"); gDirectory->mkdir("2Pip2Pim3Gamma")->cd(); { TwoPipTwoPim3GammaMass= new TH1F("TwoPipTwoPim3GammaMass","2#pi+2#pi-3#gamma mass",1600,0,4.); ThreeGamma_2pip2pim= new TH1F("ThreeGamma_2pip2pim","3#gamma mass",1600,0,4.); TwoGamma_2pip2pim3g= new TH1F("TwoGamma_2pip2pim3g","2#gamma mass",1600,0,4.); Pi0Gamma_2pip2pim= new TH1F("Pi0Gamma_2pip2pim","#pi^{0}#gamma mass",1600,0,4.); EtaGamma_2pip2pim= new TH1F("EtaGamma_2pip2pim","#eta#gamma mass",1600,0,4.); PipPimPi0Mass_4pi3g=new TH1F("PipPimPi0Mass_4pi3g","#pi+#pi-2#gamma invariant mass",1600,0,4.); PipPimEtaMass_4pi3g=new TH1F("PipPimEtaMass_4pi3g","#pi+#pi-2#gamma invariant mass",1600,0,4.); PipPimPi0_vs_PipPim1Gamma=new TH2F("PipPimPi0_vs_PipPim1Gamma","M(#pi+#pi-#pi0 group 2) vs M(#pi+#pi-#gamma group 1)",800,0.25,2.25,800,0.45,2.45); PipPimPi0_vs_PipPim1Gamma->SetYTitle("M(#pi^{+}#pi^{-}#pi^{0} group 2) [GeV]"); PipPimPi0_vs_PipPim1Gamma->SetXTitle("M(#pi^{+}#pi^{-}#gamma group 1) [GeV]"); OmegaEta_2pip2pim3g= new TH1F("OmegaEta_2pip2pim3g","2#pi+2#pi-3#gamma mass",1600,0,4.); PipPimMass_vs_PipPimMass_with_omega=new TH2F("PipPimMass_vs_PipPimMass_with_omega","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",200,0,2,200,0,2); } gDirectory->cd("../"); gDirectory->mkdir("2Pip2Pim4Gamma")->cd(); { TwoPipTwoPim4GammaMass= new TH1F("TwoPipTwoPim4GammaMass","2#pi+2#pi-4#gamma mass",1600,0,4.); TwoPipTwoPim2Pi0= new TH1F("TwoPipTwoPim2Pi0", ";M(2(#pi^{+}#pi^{-}#pi^{0})) [GeV]",1600,0,4.); TwoPipTwoPim4GammaMass_with_2Ks= new TH1F("TwoPipTwoPim4GammaMass_with_2Ks","2#pi+2#pi-4#gamma mass",1600,0,4.); FourGamma2d_2pip2pim=new TH2F("FourGamma2d_2pip2pim","m(2#gamma,pair2) vs m(2#gamma,pair1)",500,0,1,500,0,1); PipPimMass_vs_PipPimMass_4g=new TH2F("PipPimMass_vs_PipPimMass_4g","M(#pi+#pi- pair 1) vs M(#pi+#pi- pair 2)",200,0,2,200,0,2); KsPi0_vs_KsPi0=new TH2F("KsPi0_vs_KsPi0","M(#pi+#pi- pair 1 #pi0) vs M(#pi+#pi- pair 2 #pi0)",200,0,2,200,0,2); TwoPi0_2pip2pim =new TH1F("TwoPi0_2pip2pim","M(4#gamma)",1600,0,4.); EtaPi0_2pip2pim =new TH1F("EtaPi0_2pip2pim","M(4#gamma)",1600,0,4.); TwoEta_2pip2pim =new TH1F("TwoEta_2pip2pim","M(4#gamma)",1600,0,4.); PipPimPi0_vs_PipPimPi0=new TH2F("PipPimPi0_vs_PipPimPi0","M(#pi+#pi-#pi0 group 2) vs M(#pi+#pi-#pi0 group 1)",800,0.4,2.4,800,0.4,2.4); PipPimPi0_vs_PipPimPi0->SetYTitle("M(#pi^{+}#pi^{-}#pi^{0} group 2) [GeV]"); PipPimPi0_vs_PipPimPi0->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0} group 1) [GeV]"); PipPimEta_vs_PipPimPi0=new TH2F("PipPimEta_vs_PipPimPi0","M(#pi+#pi- pair 1 #eta) vs M(#pi+#pi- pair 2 #pi0)",800,0.4,2.4,800,0.8,2.8); PipPimEta_vs_PipPimPi0->SetYTitle("M(#pi^{+}#pi^{-}#eta, group 2) [GeV]"); PipPimEta_vs_PipPimPi0->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}, group 1) [GeV]"); PipPimEta_vs_PipPimEta=new TH2F("PipPimEta_vs_PipPimEta","M(#pi+#pi- pair 1 #eta) vs M(#pi+#pi- pair 2 #eta)",200,0.5,2.5,200,0.5,2.5); OmegaOmega= new TH1F("OmegaOmega","2#pi+2#pi-4#gamma mass",1600,0,4.); EtaOmega= new TH1F("EtaOmega","2#pi+2#pi-4#gamma mass",1600,0,4.); EtaPrimeOmegaMass= new TH1F("EtaPrimeOmegaMass","2#pi+2#pi-4#gamma mass",1600,0,4.); EtaCosTheta_EtaOmega_2pip2pim4g=new TH2F("EtaCosTheta_EtaOmega_2pip2pim4g",";cos(#theta_{#eta,GJ});M(#eta#omega) [GeV]",100,1.,3.,100,-1,1); // background KsPi0_vs_KsPi0_bg=new TH2F("KsPi0_vs_KsPi0_bg","M(#pi+#pi- pair 1 #pi0) vs M(#pi+#pi- pair 2 #pi0)",200,0,2,200,0,2); TwoPi0_2pip2pim_bg =new TH1F("TwoPi0_2pip2pim_bg","M(4#gamma)",1600,0,4.); EtaPi0_2pip2pim_bg =new TH1F("EtaPi0_2pip2pim_bg","M(4#gamma)",1600,0,4.); TwoEta_2pip2pim_bg =new TH1F("TwoEta_2pip2pim_bg","M(4#gamma)",1600,0,4.); PipPimPi0_vs_PipPimPi0_bg=new TH2F("PipPimPi0_vs_PipPimPi0_bg","M(#pi+#pi-#pi0 group 2) vs M(#pi+#pi-#pi0 group 1)",800,0.4,2.4,800,0.4,2.4); PipPimPi0_vs_PipPimPi0_bg->SetYTitle("M(#pi^{+}#pi^{-}#pi^{0} group 2) [GeV]"); PipPimPi0_vs_PipPimPi0_bg->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0} group 1) [GeV]"); PipPimEta_vs_PipPimPi0_bg=new TH2F("PipPimEta_vs_PipPimPi0_bg","M(#pi+#pi- pair 1 #eta) vs M(#pi+#pi- pair 2 #pi0)",800,0.4,2.4,800,0.8,2.8); PipPimEta_vs_PipPimPi0_bg->SetYTitle("M(#pi^{+}#pi^{-}#eta, group 2) [GeV]"); PipPimEta_vs_PipPimPi0_bg->SetXTitle("M(#pi^{+}#pi^{-}#pi^{0}, group 1) [GeV]"); PipPimEta_vs_PipPimEta_bg=new TH2F("PipPimEta_vs_PipPimEta_bg","M(#pi+#pi- pair 1 #eta) vs M(#pi+#pi- pair 2 #eta)",200,0.5,2.5,200,0.5,2.5); OmegaOmega_bg= new TH1F("OmegaOmega_bg","2#pi+2#pi-4#gamma mass",1600,0,4.); EtaOmega_bg= new TH1F("EtaOmega_bg","2#pi+2#pi-4#gamma mass",1600,0,4.); EtaPrimeOmegaMass_bg= new TH1F("EtaPrimeOmegaMass_bg","2#pi+2#pi-4#gamma mass",1600,0,4.); EtaCosTheta_EtaOmega_2pip2pim4g_bg=new TH2F("EtaCosTheta_EtaOmega_2pip2pim4_bg",";cos(#theta_{#eta,GJ});M(#eta#omega) [GeV]",100,1.,3.,100,-1,1); } gDirectory->cd("../"); gDirectory->mkdir("3Pip3Pim")->cd(); { } gDirectory->cd("../"); gDirectory->mkdir("3Pip3Pim1g")->cd(); { } gDirectory->cd("../"); gDirectory->mkdir("3Pip3Pim2g")->cd(); { } gDirectory->cd("../"); BeamEnergy=new TH1F("BeamEnergy","E(beam)",48,2.8,12.4); gDirectory->cd("../"); japp->RootUnLock(); // Make a container to keep track of doublets of photons vector>pairs; pairs.push_back(make_pair(0,1)); pairs.push_back(make_pair(2,3)); doublets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,2)); pairs.push_back(make_pair(1,3)); doublets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,3)); pairs.push_back(make_pair(2,1)); doublets.push_back(pairs); // Make a container to keep track of triplets of photons MakeTriplets(); // set up maps for keeping track of pairs of mesons vector>my_pair_vector; particle_pairs.emplace(Pi0Pi0_,my_pair_vector); particle_pairs.emplace(Pi0Eta_,my_pair_vector); particle_pairs.emplace(Pi0EtaPrime_,my_pair_vector); particle_pairs.emplace(EtaEta_,my_pair_vector); particle_pairs.emplace(EtaX_,my_pair_vector); particle_pairs.emplace(Pi0X_,my_pair_vector); bachelor_gammas.emplace(EtaX_,my_pair_vector); bachelor_gammas.emplace(Pi0X_,my_pair_vector); bg_particle_pairs.emplace(Pi0Pi0_,my_pair_vector); bg_particle_pairs.emplace(Pi0Eta_,my_pair_vector); bg_particle_pairs.emplace(Pi0EtaPrime_,my_pair_vector); bg_particle_pairs.emplace(EtaEta_,my_pair_vector); vectormy_weight_vector; bg_weights.emplace(Pi0Pi0_,my_weight_vector); bg_weights.emplace(Pi0Eta_,my_weight_vector); bg_weights.emplace(Pi0EtaPrime_,my_weight_vector); bg_weights.emplace(EtaEta_,my_weight_vector); return NOERROR; } //------------------ // brun //------------------ jerror_t JEventProcessor_multiphoton::brun(JEventLoop *eventLoop, int32_t runnumber) { DApplication *dapp=dynamic_cast(eventLoop->GetJApplication()); const DGeometry *geom=dapp->GetDGeometry(runnumber); double x0,y0,z0; geom->GetFCALPosition(x0,y0,z0); mFCALCenter.SetXYZ(x0,y0,z0); return NOERROR; } //------------------ // evnt //------------------ jerror_t JEventProcessor_multiphoton::evnt(JEventLoop *loop, uint64_t eventnumber) { vectorthrowns; loop->Get(throwns); if (throwns.size()>0){ const DTAGMGeometry *tagm_geom=NULL; loop->GetSingle(tagm_geom); if (tagm_geom==NULL) return RESOURCE_UNAVAILABLE; const DTAGHGeometry *tagh_geom=NULL; loop->GetSingle(tagh_geom); if (tagh_geom==NULL) return RESOURCE_UNAVAILABLE; const DMCReaction* reaction=NULL; loop->GetSingle(reaction); if (reaction==NULL) return RESOURCE_UNAVAILABLE; japp->RootWriteLock(); double mc_beam_E=reaction->beam.energy(),tagged_mc_beam_E=0.; MCBeam->Fill(mc_beam_E); unsigned int counter=0,column=0; if (tagm_geom->E_to_column(mc_beam_E,column)){ tagged_mc_beam_E=0.5*(tagm_geom->getEhigh(column) +tagm_geom->getElow(column)); } else if (tagh_geom->E_to_counter(mc_beam_E,counter)){ tagged_mc_beam_E=0.5*(tagh_geom->getEhigh(counter) +tagh_geom->getElow(counter)); } if (tagged_mc_beam_E>0.){ DLorentzVector target(0,0,0,ParticleMass(Proton)); DLorentzVector beam(0,0,tagged_mc_beam_E,tagged_mc_beam_E); vectormcprotons,mcneutrons,mcetas,mcgammas,mcpi0s; for (unsigned int i=0;imech==0){ switch(throwns[i]->type){ case Proton: mcprotons.push_back(throwns[i]->lorentzMomentum()); break; case Neutron: mcneutrons.push_back(throwns[i]->lorentzMomentum()); break; case Eta: mcetas.push_back(throwns[i]->lorentzMomentum()); break; case Gamma: mcgammas.push_back(throwns[i]->lorentzMomentum()); break; case Pi0: mcpi0s.push_back(throwns[i]->lorentzMomentum()); break; default: break; } } } MCBeamTagged->Fill(tagged_mc_beam_E); if (mcprotons.size()==1){ double t=(target-mcprotons[0]).M2(); DLorentzVector missing=beam+target-mcprotons[0]; double mass=missing.M(); MCMissingMass->Fill(mass); MCMissingMassVsEbeam->Fill(tagged_mc_beam_E,mass); MCt->Fill(-t); MCt2d->Fill(tagged_mc_beam_E,-t); MCt2d2->Fill(tagged_mc_beam_E,-t); MCE_vs_t->Fill(-t,tagged_mc_beam_E); MCM_vs_t->Fill(-t,mass); } if (mcneutrons.size()==1){ } } japp->RootUnLock(); } vector triggers; //loop->Get(triggers); if (EMULATE_TRIGGER && triggers.size()>0){ int trig_mask=triggers[0]->Get_L1TriggerBits(); japp->RootWriteLock(); TrigMask->Fill(trig_mask); japp->RootUnLock(); if (!((trig_mask&0x1)||(trig_mask&0x4))){ return RESOURCE_UNAVAILABLE; } //cout << " got trigger " << endl; } vectortracks; loop->Get(tracks); if (tracks.size()==0) return RESOURCE_UNAVAILABLE; vectorbeamphotons; loop->Get(beamphotons); if (beamphotons.size()==0) return RESOURCE_UNAVAILABLE; vectorneutrals; loop->Get(neutrals); vectortofs; loop->Get(tofs); vectoritofs; loop->Get(itofs); bool got_itof=false; if (itofs.size()>0) got_itof=true; vectordirchits; loop->Get(dirchits); unsigned int numPseudos=0; vectorstats; loop->Get(stats); if (stats.size()>0){ numPseudos=stats[0]->fdc_pseudos; } else { vectorfdcpseudos; loop->Get(fdcpseudos); numPseudos=fdcpseudos.size(); } vectorsegments; loop->Get(segments); // Assign charge track by PID map>chargedParticles; FillChargedParticleVectors(tracks,chargedParticles); if (chargedParticles[Proton].size()==0) return RESOURCE_UNAVAILABLE; japp->WriteLock("mylock"); // Find t0 (at "vertex") for event and assign list of neutral particles double t0_rf=tracks[0]->Get_BestTrackingFOM()->t0(); DVector3 vertex=tracks[0]->Get_BestTrackingFOM()->position(); // Get final state photon candidates unsigned int num_in_insert=0; bool tof_veto=false,got_bcal=false,got_dirc=false,close_shower_veto=false; bool got_segments=segments.size()>0?true:false; double unused_energy=0.,fcal_total_E=0.; vectorgammaParticles; FillGammaParticleVector(t0_rf,vertex,dirchits,tofs,neutrals,gammaParticles, num_in_insert,tof_veto,got_bcal,got_dirc, unused_energy,fcal_total_E,close_shower_veto); UnusedEnergy->Fill(unused_energy); NumFDCPseudos->Fill(numPseudos); // Fill vector of beam photons to pass on the analysis along with weights // for in-time/ out-of-time vector>beamPhotons; for (unsigned int i=0;ilorentzMomentum().E()lorentzMomentum().E()>MAX_BEAM_E) continue; double dt_st=beamphotons[i]->time()-t0_rf; BeamPhotonTimeDiff->Fill(dt_st); double weight=1.; bool got_beam_photon=false; if (fabs(dt_st)>6.012&&fabs(dt_st)<18.036){ weight=-1./6.; got_beam_photon=true; } if (fabs(dt_st)<2.004){ got_beam_photon=true; } if (got_beam_photon){ BeamEnergy->Fill(beamphotons[i]->lorentzMomentum().E(),weight); beamPhotons.push_back(make_pair(beamphotons[i],weight)); } } // Setup for performing kinematic fits //DAnalysisUtilities *dAnalysisUtilities=new DAnalysisUtilities(loop); DKinFitUtils_GlueX *dKinFitUtils = new DKinFitUtils_GlueX(loop); DKinFitter *dKinFitter = new DKinFitter(dKinFitUtils); dKinFitUtils->Reset_NewEvent(); dKinFitter->Reset_NewEvent(); for (unsigned int i=0;iGet_Hypothesis(Proton); if (tracks.size()==1 && gammaParticles.size()==2 && protonHyp!=NULL){ if (DoKinematicFit(t0_rf,vertex,beamPhotons[i].first,chargedParticles, gammaParticles,dKinFitUtils,dKinFitter,true)){ double chisq=dKinFitter->Get_ChiSq(); double ndf=dKinFitter->Get_NDF(); double CL=dKinFitter->Get_ConfidenceLevel(); KinFitChiSqMissingProton->Fill(chisq/ndf,weight); KinFitCLMissingProton->Fill(CL,weight); if (CL>0.1){ DLorentzVector beam_kf,missing_kf; map>final_kf; GetKF4vectors(dKinFitter,beam_kf,missing_kf,final_kf); const DTrackTimeBased *proton_track=protonHyp->Get_TrackTimeBased(); MissingProtonAnalysis(beam_kf,proton_track,missing_kf,final_kf,weight); } } } //-------------------------------- // Kinematic fit w/ nothing missing //-------------------------------- if (DoKinematicFit(t0_rf,vertex,beamPhotons[i].first,chargedParticles, gammaParticles,dKinFitUtils,dKinFitter,false)){ double CL = dKinFitter->Get_ConfidenceLevel(); KinFitCL->Fill(CL); if (CL>CL_CUT){ DLorentzVector beam_kf,missing_kf; map>final_kf; GetKF4vectors(dKinFitter,beam_kf,missing_kf,final_kf); // Particle counts unsigned int numPiPlus=final_kf[PiPlus].size(); unsigned int numPiMinus=final_kf[PiMinus].size(); unsigned int numGamma=final_kf[Gamma].size(); unsigned int numProton=final_kf[Proton].size(); unsigned int numAntiProton=final_kf[AntiProton].size(); if (numProton==1&&numAntiProton==0){ if (numPiPlus==0&&numPiMinus==0){ double zvertex=vertex.z(); double rvertex=vertex.Perp(); if (numGamma==4) FourGammaVertex->Fill(zvertex,rvertex,weight); if (zvertex>MIN_VERTEX_Z && zvertexUnlock("mylock"); return NOERROR; } //------------------ // erun //------------------ jerror_t JEventProcessor_multiphoton::erun(void) { // This is called whenever the run number changes, before it is // changed to give you a chance to clean up before processing // events from the next run number. return NOERROR; } //------------------ // fini //------------------ jerror_t JEventProcessor_multiphoton::fini(void) { /* if (FILL_ROO_DATASET){ RooData->Write(); } */ // Called before program exit after event processing is finished. return NOERROR; } // Use the PIDFOM scheme to sort tracks according to particle type void JEventProcessor_multiphoton::FillChargedParticleVectors(vector&tracks,map>&chargedParticles) const { Particle_t particle_list[4]={PiPlus,PiMinus,Proton,AntiProton}; for (unsigned int j=0;j >probabilities; for (unsigned int i=0;i<4;i++){ if ((hyp=tracks[j]->Get_Hypothesis(particle_list[i]))!=NULL){ probabilities.push_back(make_pair(hyp->Get_FOM(),particle_list[i])); } } if (probabilities.size()>0){ sort(probabilities.begin(),probabilities.end(),SortParticleProbability); Particle_t myParticle=probabilities[0].second; hyp=tracks[j]->Get_Hypothesis(myParticle); chargedParticles[myParticle].push_back(hyp->Get_TrackTimeBased()); } } } // Get list of final state photons // Create lists of photon candidates after applying some cuts on the showers. void JEventProcessor_multiphoton::FillGammaParticleVector(double t0_rf, const DVector3 &vertex, vector&dirchits, vector&tofpoints, vector&neutrals, vector&gammaParticles, unsigned int &num_in_insert, bool &tof_veto, bool &got_bcal, bool &got_dirc, double &unused_energy, double &fcal_total_E, bool &close_shower_veto ) const{ //vectortempBCALGammas; vectortempFCALGammas; for (unsigned int i=0;iGet_Hypothesis(Gamma); double tdiff=gamHyp->time()-t0_rf; DLorentzVector gamma_v4=gamHyp->lorentzMomentum(); ProtonGammaTimeDiff->Fill(tdiff); // Get shower info correspnding to this hypothesis const DNeutralShower *shower=gamHyp->Get_NeutralShower(); // Look for good photons bool got_photon=(fabs(tdiff)dDetectorSystem==SYS_FCAL){ //if (gamma_v4.E()dQuality(shower->dBCALFCALShower))->getPosition(); DVector3 pos_rel=pos-mFCALCenter; if (pos_rel.Perp()>FCAL_RADIAL_CUT) got_photon=false; if (fabs(pos_rel.X())(shower->dBCALFCALShower))->getTime(); for (unsigned int k=0;kFill(shower_time,dirchits[k]->t); double dt=shower_time-dirchits[k]->t; DircFcalDiff->Fill(dt); if (fabs(dt)Fill(dt); double diff=(pos-tofpoints[k]->pos).Mag(); double dt=shower_time-tofpoints[k]->t-diff/29.98; if (diff-1){ FCALTOFtDiff->Fill(pos.Perp(),dt_min); double dx=pos.x()-tofpoints[closest_tof]->pos.x(); double dy=pos.y()-tofpoints[closest_tof]->pos.y(); if (dt_min<-1 && dt_min>-6){ FCALTOFDiff2D_dt2->Fill(dx,dy); } if (fabs(dt_min)<1.){ FCALTOFDiff2D->Fill(dx,dy); if (dx*dx+dy*dy<64.){ TOFdE->Fill(tofpoints[closest_tof]->dE); TOFdE2D->Fill(tofpoints[closest_tof]->dE1,tofpoints[closest_tof]->dE2); //if (tofpoints[closest_tof]->dE>0.0024){ tof_veto=true; //} } } } if (gamHyp->lorentzMomentum().E()>FCAL_THRESHOLD){ tempFCALGammas.push_back(gamHyp); } } } else if (shower->dDetectorSystem==SYS_BCAL){ const DBCALShower *bcalshower=dynamic_cast(shower->dBCALFCALShower); DVector3 bcal_pos(bcalshower->x,bcalshower->y,bcalshower->z); if (bcalshower->N_cell==1 && bcal_pos.Perp()>BCAL_R_CUT){ got_photon=false; } else{ got_bcal=true; } if (gamma_v4.E()z>BCAL_Z_CUT) got_photon=false; if (got_photon){ //got_bcal=true; gammaParticles.push_back(*gamHyp); } } else if (got_photon==false && fabs(tdiff)lorentzMomentum() +tempFCALGammas[j]->lorentzMomentum(); TwoGammaMassFCAL->Fill(twogam.M()); if (twogam.M()momentum() +tempFCALGammas[min_j]->momentum(); if (momentum.Mag()>FCAL_THRESHOLD){ TMatrixFSym tempMatrix(7); for (unsigned i=0;i<7;i++){ for (unsigned int j=0;j<7;j++){ tempMatrix(i,j)=(*tempFCALGammas[min_i]->errorMatrix())(i,j) +(*tempFCALGammas[min_j]->errorMatrix())(i,j); } } //cout << " Got here" << endl; extraGamma.setMomentum(momentum); extraGamma.setErrorMatrix(const_pointer_cast(make_shared(tempMatrix))); gammaParticles.push_back(extraGamma); } } */ } void JEventProcessor_multiphoton::GetKF4vectors(DKinFitter *dKinFitter, DLorentzVector &beam_kf, DLorentzVector &missing_kf, map>&final_kf) const{ set>myParticles=dKinFitter->Get_KinFitParticles(); set>::iterator locParticleIterator=myParticles.begin(); for(; locParticleIterator != myParticles.end(); ++locParticleIterator){ if ((*locParticleIterator)->Get_KinFitParticleType()==d_BeamParticle){ beam_kf=(*locParticleIterator)->Get_P4(); } else if ((*locParticleIterator)->Get_KinFitParticleType()==d_MissingParticle){ missing_kf=(*locParticleIterator)->Get_P4(); } else if ((*locParticleIterator)->Get_KinFitParticleType()==d_DetectedParticle){ Particle_t myPID=PDGtoPType((*locParticleIterator)->Get_PID()); final_kf[myPID].push_back((*locParticleIterator)->Get_P4()); } } } // Run the kinematic fitter requiring energy and momentum conservation bool JEventProcessor_multiphoton::DoKinematicFit(double t0_rf,const DVector3 &vertex, const DBeamPhoton *beamphoton, map >&chargedParticles, vector&gammaParticles, DKinFitUtils_GlueX *dKinFitUtils, DKinFitter *dKinFitter, bool isMissing) const { set> InitialParticles, FinalParticles; dKinFitter->Reset_NewFit(); shared_ptrmyBeam=dKinFitUtils->Make_BeamParticle(beamphoton); shared_ptrmyTarget=dKinFitUtils->Make_TargetParticle(Proton); InitialParticles.insert(myBeam); InitialParticles.insert(myTarget); // Vertex info DLorentzVector vert4; vert4.SetVect(vertex); vert4.SetT(t0_rf); // Missing proton if (isMissing){ shared_ptrmyRecoil=dKinFitUtils->Make_MissingParticle(Proton); FinalParticles.insert(myRecoil); } else { // Charged particles Particle_t particle_list[4]={PiPlus,PiMinus,Proton,AntiProton}; for (unsigned int k=0;k<4;k++){ vectormyParticles=chargedParticles[particle_list[k]]; for (unsigned int m=0;mmyParticle=dKinFitUtils->Make_DetectedParticle(myParticles[m]); FinalParticles.insert(myParticle); } } } // Final state photons for (unsigned int k=0;kmyGamma=dKinFitUtils->Make_DetectedParticle(22,0,0.,vert4,gammaHyp.momentum(),0.,gammaHyp.errorMatrix()); FinalParticles.insert(myGamma); } // make constraint shared_ptrlocP4Constraint = dKinFitUtils->Make_P4Constraint(InitialParticles, FinalParticles); // set constraint dKinFitter->Add_Constraint(locP4Constraint); // PERFORM THE KINEMATIC FIT return dKinFitter->Fit_Reaction(); } bool JEventProcessor_multiphoton::MakeMesonPairs(vector&gammas_kf, double weight,TH2F *histo){ // Clear the current set of vectors particle_pairs[Pi0Pi0_].clear(); particle_pairs[Pi0Eta_].clear(); particle_pairs[Pi0EtaPrime_].clear(); particle_pairs[EtaEta_].clear(); particle_pairs[Pi0X_].clear(); particle_pairs[EtaX_].clear(); bachelor_gammas[Pi0X_].clear(); bachelor_gammas[EtaX_].clear(); // Find pairs of mesons for (unsigned int i=0;iFill(pair1_mass,pair2_mass,weight); bool eta_1_cut=ETA_CUT(pair1_mass,ETA_CUT_VALUE); bool eta_2_cut=ETA_CUT(pair2_mass,ETA_CUT_VALUE); bool pi0_1_cut=PI0_CUT(pair1_mass,PI0_CUT_VALUE); bool pi0_2_cut=PI0_CUT(pair2_mass,PI0_CUT_VALUE); if (pi0_1_cut && pi0_2_cut){ particle_pairs[Pi0Pi0_].push_back(make_pair(pair1,pair2)); } else if (eta_1_cut && eta_2_cut){ particle_pairs[EtaEta_].push_back(make_pair(pair1,pair2)); } else if (eta_1_cut && pi0_2_cut){ particle_pairs[Pi0Eta_].push_back(make_pair(pair2,pair1)); } else if (eta_2_cut && pi0_1_cut){ particle_pairs[Pi0Eta_].push_back(make_pair(pair1,pair2)); } else if (pi0_1_cut && ETAPRIME_CUT(pair2_mass,ETAPRIME_CUT_VALUE)){ particle_pairs[Pi0EtaPrime_].push_back(make_pair(pair1,pair2)); } else if (pi0_2_cut && ETAPRIME_CUT(pair1_mass,ETAPRIME_CUT_VALUE)){ particle_pairs[Pi0EtaPrime_].push_back(make_pair(pair2,pair1)); } else if (pi0_1_cut && PI0_ANTI_CUT(pair2_mass,PI0_VETO_CUT) ){ particle_pairs[Pi0X_].push_back(make_pair(pair1,pair2)); bachelor_gammas[Pi0X_].push_back(make_pair(gammas_kf[doublets[i][1].first], gammas_kf[doublets[i][1].second])); } else if (pi0_2_cut && PI0_ANTI_CUT(pair1_mass,PI0_VETO_CUT) ){ particle_pairs[Pi0X_].push_back(make_pair(pair2,pair1)); bachelor_gammas[Pi0X_].push_back(make_pair(gammas_kf[doublets[i][0].first], gammas_kf[doublets[i][0].second])); } else if (eta_1_cut){ particle_pairs[EtaX_].push_back(make_pair(pair1,pair2)); bachelor_gammas[EtaX_].push_back(make_pair(gammas_kf[doublets[i][1].first], gammas_kf[doublets[i][1].second])); } else if (eta_2_cut){ particle_pairs[EtaX_].push_back(make_pair(pair2,pair1)); bachelor_gammas[EtaX_].push_back(make_pair(gammas_kf[doublets[i][0].first], gammas_kf[doublets[i][0].second])); } } return (particle_pairs[Pi0Pi0_].size()>0 || particle_pairs[Pi0Eta_].size()>0 || particle_pairs[EtaEta_].size()>0 || particle_pairs[Pi0EtaPrime_].size()>0 ); } void JEventProcessor_multiphoton::Fill3GammaHistos(double unused_energy,const DLorentzVector &pair1, const DLorentzVector &gam3, const DLorentzVector &gam4, double weight){ DLorentzVector pair2=gam3+gam4; DLorentzVector fourgam=pair1+pair2; DLorentzVector pi0gamma1=pair1+gam3; double pi0gamma1_mass=pi0gamma1.M(); double fourgam_mass=fourgam.M(); Pi0GammaMass_4g_kf->Fill(pi0gamma1_mass,weight); if (OMEGA_CUT(pi0gamma1_mass)){ OmegaGammaMass_4g_kf->Fill(fourgam_mass,weight); } Pi02GammaMass_vs_Pi0GammaMass_kf->Fill(pi0gamma1_mass,fourgam_mass,weight); DLorentzVector pi0gamma2=pair1+gam4; double pi0gamma2_mass=pi0gamma2.M(); Pi0GammaMass_4g_kf->Fill(pi0gamma2_mass,weight); if (OMEGA_CUT(pi0gamma2_mass)){ OmegaGammaMass_4g_kf->Fill(fourgam_mass,weight); } Pi0GammaDalitz_kf->Fill(pi0gamma1.M2(),pi0gamma2.M2(),weight); Pi02GammaMass_vs_Pi0GammaMass_kf->Fill(pi0gamma2_mass,fourgam_mass,weight); } void JEventProcessor_multiphoton::FillGJHisto(double weight, const DLorentzVector &beam, const DLorentzVector &meson, const DLorentzVector &analyzer, TH2F *histo) const { DVector3 beta=(1./meson.E())*meson.Vect(); DLorentzVector mybeam=beam; mybeam.Boost(-beta); DLorentzVector myanalyzer=analyzer; myanalyzer.Boost(-beta); DVector3 beamdir=mybeam.Vect(); beamdir.SetMag(1.); DVector3 adir=myanalyzer.Vect(); adir.SetMag(1.); histo->Fill(meson.M(),adir.Dot(beamdir),weight); } //------------------------------------------------------------------------------ // Proton Ngamma //------------------------------------------------------------------------------ void JEventProcessor_multiphoton::TwoGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector twogam_kf=final_kf[Gamma][0]+final_kf[Gamma][1]; double twogam_mass_kf=twogam_kf.M(); TwoGammaMass_kf->Fill(twogam_mass_kf,weight); TwoGammaMass_vs_Ebeam->Fill(beam_kf.E(),twogam_mass_kf,weight); if (final_kf[Gamma][0].Theta()>GAMMA_THETA_CUT*M_PI/180. && final_kf[Gamma][1].Theta()>GAMMA_THETA_CUT*M_PI/180.){ TwoGammaMass_vs_Ebeam_theta_cut->Fill(beam_kf.E(),twogam_mass_kf,weight); } double t_mandelstam=(beam_kf-twogam_kf).M2(); if (PI0_CUT(twogam_mass_kf,PI0_CUT_VALUE)){ Mandelstam_t_pi0_kf->Fill(beam_kf.E(),-t_mandelstam,weight); } if (ETA_CUT(twogam_mass_kf,ETA_CUT_VALUE)){ Mandelstam_t_eta_kf->Fill(beam_kf.E(),-t_mandelstam,weight); } if (ETAPRIME_CUT(twogam_mass_kf,ETAPRIME_CUT_VALUE)){ Mandelstam_t_etaprime_kf->Fill(beam_kf.E(),-t_mandelstam,weight); } if (unused_energy<0.01){ TwoGammaMass_kf_NU->Fill(twogam_mass_kf,weight); TwoGammaMass_vs_Ebeam_NU->Fill(beam_kf.E(),twogam_mass_kf,weight); double t_mandelstam=(beam_kf-twogam_kf).M2(); if (PI0_CUT(twogam_mass_kf,PI0_CUT_VALUE)){ Mandelstam_t_pi0_kf_NU->Fill(beam_kf.E(),-t_mandelstam,weight); } if (ETA_CUT(twogam_mass_kf,ETA_CUT_VALUE)){ Mandelstam_t_eta_kf_NU->Fill(beam_kf.E(),-t_mandelstam,weight); } if (ETAPRIME_CUT(twogam_mass_kf,ETAPRIME_CUT_VALUE)){ Mandelstam_t_etaprime_kf_NU->Fill(beam_kf.E(),-t_mandelstam,weight); } } } void JEventProcessor_multiphoton::ThreeGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const { DLorentzVector pair1=final_kf[Gamma][0]+final_kf[Gamma][1]; DLorentzVector pair2=final_kf[Gamma][0]+final_kf[Gamma][2]; DLorentzVector pair3=final_kf[Gamma][2]+final_kf[Gamma][1]; DLorentzVector threegam_kf=pair1+final_kf[Gamma][2]; double threegam_mass_kf=threegam_kf.M(); double t_mandelstam=(beam_kf-threegam_kf).M2(); ThreeGammaMass_kf->Fill(threegam_mass_kf,weight); ThreeGammaMass_vs_Ebeam->Fill(beam_kf.E(),threegam_mass_kf,weight); TwoGammaMass_3g_kf->Fill(pair1.M(),weight); TwoGammaMass_3g_kf->Fill(pair2.M(),weight); TwoGammaMass_3g_kf->Fill(pair3.M(),weight); if (PI0_CUT(pair1.M(),PI0_CUT_VALUE) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ Pi0GammaMass_kf->Fill(threegam_mass_kf,weight); if (OMEGA_CUT(threegam_mass_kf)){ Mandelstam_t_omega_kf->Fill(beam_kf.E(),-t_mandelstam,weight); } } if (PI0_CUT(pair2.M(),PI0_CUT_VALUE) && PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ Pi0GammaMass_kf->Fill(threegam_mass_kf,weight); if (OMEGA_CUT(threegam_mass_kf)){ Mandelstam_t_omega_kf->Fill(t_mandelstam,weight); } } if (PI0_CUT(pair3.M(),PI0_CUT_VALUE) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ Pi0GammaMass_kf->Fill(threegam_mass_kf,weight); if (OMEGA_CUT(threegam_mass_kf)){ Mandelstam_t_omega_kf->Fill(t_mandelstam,weight); } } if (PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_CUT(pair1.M(),ETA_CUT_VALUE) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ EtaGammaMass_kf->Fill(threegam_mass_kf,weight); if (PHI_CUT(threegam_mass_kf)){ DVector3 beta_lab=(1./(threegam_kf.E()))*threegam_kf.Vect(); DLorentzVector recoil=final_kf[Proton][0]; DLorentzVector eta=pair1; DLorentzVector gamma=final_kf[Gamma][2]; recoil.Boost(beta_lab); DVector3 zhat=recoil.Vect(); zhat.SetMag(1.); eta.Boost(-beta_lab); gamma.Boost(-beta_lab); DVector3 etadir=eta.Vect(); etadir.SetMag(1.); EtaCosTheta_phi->Fill(etadir.Dot(zhat),weight); } } if (PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_CUT(pair2.M(),ETA_CUT_VALUE) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair3.M())){ EtaGammaMass_kf->Fill(threegam_mass_kf,weight); if (PHI_CUT(threegam_mass_kf)){ DVector3 beta_lab=(1./(threegam_kf.E()))*threegam_kf.Vect(); DLorentzVector recoil=final_kf[Proton][0]; DLorentzVector eta=pair2; DLorentzVector gamma=final_kf[Gamma][1]; recoil.Boost(beta_lab); DVector3 zhat=recoil.Vect(); zhat.SetMag(1.); eta.Boost(-beta_lab); gamma.Boost(-beta_lab); DVector3 etadir=eta.Vect(); etadir.SetMag(1.); EtaCosTheta_phi->Fill(etadir.Dot(zhat),weight); } } if (PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_CUT(pair3.M(),ETA_CUT_VALUE) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair1.M())){ EtaGammaMass_kf->Fill(threegam_mass_kf,weight); if (PHI_CUT(threegam_mass_kf)){ DVector3 beta_lab=(1./(threegam_kf.E()))*threegam_kf.Vect(); DLorentzVector recoil=final_kf[Proton][0]; DLorentzVector eta=pair3; DLorentzVector gamma=final_kf[Gamma][0]; recoil.Boost(beta_lab); DVector3 zhat=recoil.Vect(); zhat.SetMag(1.); eta.Boost(-beta_lab); gamma.Boost(-beta_lab); DVector3 etadir=eta.Vect(); etadir.SetMag(1.); EtaCosTheta_phi->Fill(etadir.Dot(zhat),weight); } } } void JEventProcessor_multiphoton::FourGammaAnalysis(double fcal_total_E, double unused_energy, bool got_segments, bool got_dirc, bool got_bcal,bool tof_veto, bool got_itof, int num_in_insert, int numPseudos, bool close_shower_veto, const DLorentzVector &beam_kf, map>&final_kf, double weight) { double Ebeam=beam_kf.E(); DLorentzVector fourgam_kf=final_kf[Gamma][0]+final_kf[Gamma][1]+final_kf[Gamma][2]+final_kf[Gamma][3]; double mass=fourgam_kf.M(); double t_mandelstam=(beam_kf-fourgam_kf).M2(); NumPseudos4gamma->Fill(numPseudos); FourGammaMass_kf->Fill(mass,weight); if (tof_veto==false){ FourGammaMass_NoVeto->Fill(mass,weight); } if (got_bcal==false){ FourGammaMass_NoBCAL->Fill(mass,weight); } if (num_in_insert>=NUM_IN_INSERT){ FourGammaMass_InsertCut->Fill(mass,weight); if (got_bcal==false){ FourGammaMass_InsertCut_NoBCAL->Fill(mass,weight); } } FourGammaMass_vs_Ebeam->Fill(Ebeam,mass,weight); bool got_meson_pairs=MakeMesonPairs(final_kf[Gamma],weight,FourGamma2d_kf); MesonPairMultiplicity->Fill(Pi0Pi0_,particle_pairs[Pi0Pi0_].size(),weight); MesonPairMultiplicity->Fill(Pi0Eta_,particle_pairs[Pi0Eta_].size(),weight); MesonPairMultiplicity->Fill(Pi0EtaPrime_,particle_pairs[Pi0EtaPrime_].size(),weight); MesonPairMultiplicity->Fill(Pi0X_,particle_pairs[Pi0X_].size(),weight); MesonPairMultiplicity->Fill(EtaX_,particle_pairs[EtaX_].size(),weight); MesonPairMultiplicity->Fill(EtaEta_,particle_pairs[EtaEta_].size(),weight); if (got_meson_pairs){ if (particle_pairs[Pi0Pi0_].size()==1){ TwoPi0Mass_kf->Fill(mass,weight); if (numPseudos<=NUM_PSEUDO_CUT){ TwoPi0Mass_PseudoVeto->Fill(mass,weight); } TwoPi0Mass_t->Fill(-t_mandelstam,mass,weight); if (mass>0.95 && mass<1.0){ Egamma_vs_t_f0->Fill(-t_mandelstam,Ebeam,weight); } if (mass>1.2 && mass<1.3){ Egamma_vs_t_f2->Fill(-t_mandelstam,Ebeam,weight); } if (mass>0.6 && mass<0.7){ Egamma_vs_t_s0->Fill(-t_mandelstam,Ebeam,weight); } TwoPi0Mass_vs_Ebeam->Fill(Ebeam,mass,weight); FillGJHisto(weight,beam_kf,fourgam_kf,particle_pairs[Pi0Pi0_][0].second, Pi0CosThetaGF); if (unused_energy<0.01){ TwoPi0Mass_kf_NU->Fill(mass,weight); TwoPi0Mass_t_NU->Fill(-t_mandelstam,mass,weight); TwoPi0Mass_vs_Ebeam_NU->Fill(Ebeam,mass,weight); FillGJHisto(weight,beam_kf,fourgam_kf,particle_pairs[Pi0Pi0_][0].second, Pi0CosThetaGF_NU); } } if (particle_pairs[Pi0Eta_].size()==1){ EtaPi0Mass_kf->Fill(mass,weight); EtaPi0Mass_vs_Ebeam->Fill(Ebeam,mass,weight); FillGJHisto(weight,beam_kf,fourgam_kf,particle_pairs[Pi0Eta_][0].second, EtaCosThetaGF); EtaPi0Mass_t->Fill(-t_mandelstam,mass,weight); if (unused_energy<0.01){ EtaPi0Mass_kf_NU->Fill(mass,weight); EtaPi0Mass_vs_Ebeam_NU->Fill(Ebeam,mass,weight); FillGJHisto(weight,beam_kf,fourgam_kf,particle_pairs[Pi0Eta_][0].second, EtaCosThetaGF_NU); EtaPi0Mass_t_NU->Fill(-t_mandelstam,mass,weight); } if (mass>0.95 && mass<1.0){ Egamma_vs_t_a0->Fill(-t_mandelstam,Ebeam,weight); } if (mass>1.2 && mass<1.3){ Egamma_vs_t_a2->Fill(-t_mandelstam,Ebeam,weight); } } if (particle_pairs[EtaEta_].size()==1){ TwoEtaMass_kf->Fill(mass,weight); TwoEtaMass_vs_Ebeam->Fill(Ebeam,mass,weight); TwoEtaMass_t->Fill(-t_mandelstam,mass,weight); if (unused_energy<0.01){ TwoEtaMass_kf_NU->Fill(mass,weight); TwoEtaMass_vs_Ebeam_NU->Fill(Ebeam,mass,weight); TwoEtaMass_t_NU->Fill(-t_mandelstam,mass,weight); } } if (particle_pairs[Pi0EtaPrime_].size()==1){ EtaPrimePi0_4g->Fill(mass,weight); EtaPrimePi0Mass_t->Fill(-t_mandelstam,mass,weight); if (unused_energy<0.01){ EtaPrimePi0_4g_NU->Fill(mass,weight); EtaPrimePi0Mass_t_NU->Fill(-t_mandelstam,mass,weight); } } } else { FourGamma_NoMesonPairs->Fill(mass,weight); if (num_in_insert>=NUM_IN_INSERT){ FourGamma_NoMesonPairs_InsertCut->Fill(mass,weight); } if (particle_pairs[Pi0X_].size()>0){ Pi0XMass->Fill(mass,weight); if (fcal_total_E>FCAL_SUM_THRESHOLD){ Pi0XMass_FCALEcut->Fill(mass,weight); } if (got_segments==false){ Pi0XMass_NoSegments->Fill(mass,weight); } if (numPseudos<=NUM_PSEUDO_CUT){ Pi0XMass_PseudoVeto->Fill(mass,weight); } if (tof_veto==false){ Pi0XMass_NoTOF->Fill(mass,weight); } if (got_itof==false){ Pi0XMass_NoITOF->Fill(mass,weight); } if (close_shower_veto==false){ Pi0XMass_NoCloseShowers->Fill(mass,weight); } if (num_in_insert>=NUM_IN_INSERT){ Pi0XMass_InsertCut->Fill(mass,weight); if (numPseudos<=NUM_PSEUDO_CUT){ Pi0XMass_InsertCut_PseudoVeto->Fill(mass,weight); } if (got_bcal==false){ Pi0XMass_InsertCut_NoBCAL->Fill(mass,weight); if (numPseudos<=NUM_PSEUDO_CUT){ Pi0XMass_InsertCut_NoBCAL_PseudoVeto->Fill(mass,weight); } } } if (got_bcal==false){ Pi0XMass_NoBCAL->Fill(mass,weight); if (fcal_total_E>FCAL_SUM_THRESHOLD){ Pi0XMass_NoBCAL_FCALEcut->Fill(mass,weight); } if (tof_veto==false){ Pi0XMass_NoBCAL_NoTOF->Fill(mass,weight); } if (got_itof==false){ Pi0XMass_NoBCAL_NoITOF->Fill(mass,weight); } if (got_segments==false){ Pi0XMass_NoBCAL_NoSegments->Fill(mass,weight); } if (numPseudos<=NUM_PSEUDO_CUT){ Pi0XMass_NoBCAL_PseudoVeto->Fill(mass,weight); } if (close_shower_veto==false){ Pi0XMass_NoBCAL_NoCloseShowers->Fill(mass,weight); } } if (unused_energy<0.01){ Pi0XMass_NU->Fill(mass,weight); if (num_in_insert>=NUM_IN_INSERT){ Pi0XMass_InsertCut_NU->Fill(mass,weight); if (got_bcal==false){ Pi0XMass_InsertCut_NoBCAL_NU->Fill(mass,weight); } } if (got_bcal==false){ Pi0XMass_NoBCAL_NU->Fill(mass,weight); } if (got_dirc==false){ Pi0XMass_NoDIRC_NU->Fill(mass,weight); if (num_in_insert>=3){ Pi0XMass_InsertCut_NoDIRC_NU->Fill(mass,weight); if (got_bcal==false){ Pi0XMass_InsertCut_NoBCAL_NoDIRC_NU->Fill(mass,weight); } } if (got_bcal==false){ Pi0XMass_NoBCAL_NoDIRC_NU->Fill(mass,weight); } } } bool second_pi0=false; double mindiff=1e6; unsigned int best_j=0; for (unsigned int j=0;jFill(other_pair.M(),mass,weight); if (close_shower_veto==false){ TwoGamma_Pi02g_NoCloseShowers->Fill(other_pair.M(),mass,weight); } DLorentzVector bachelor1=bachelor_gammas[Pi0X_][j].first; DLorentzVector bachelor2=bachelor_gammas[Pi0X_][j].second; DLorentzVector pi0=particle_pairs[Pi0X_][j].first; DLorentzVector pi0g1=pi0+bachelor1; DLorentzVector pi0g2=pi0+bachelor2; Pi0g_Pi02g->Fill(pi0g1.M(),mass,weight); Pi0g_Pi02g->Fill(pi0g2.M(),mass,weight); if (close_shower_veto==false){ Pi0g_Pi02g_NoCloseShowers->Fill(pi0g1.M(),mass,weight); Pi0g_Pi02g_NoCloseShowers->Fill(pi0g2.M(),mass,weight); } if (got_bcal==false){ Pi0g_Pi02g_NoBCAL->Fill(pi0g1.M(),mass,weight); Pi0g_Pi02g_NoBCAL->Fill(pi0g2.M(),mass,weight); TwoGamma_Pi02g_NoBCAL->Fill(other_pair.M(),mass,weight); if (close_shower_veto==false){ TwoGamma_Pi02g_NoBCAL_NoCloseShowers->Fill(other_pair.M(),mass,weight); Pi0g_Pi02g_NoBCAL_NoCloseShowers->Fill(pi0g1.M(),mass,weight); Pi0g_Pi02g_NoBCAL_NoCloseShowers->Fill(pi0g2.M(),mass,weight); } } } if (second_pi0==false){ Pi0XMass_HarderVeto->Fill(mass,weight); Pi02GammaMass_vs_Ebeam->Fill(Ebeam,mass,weight); if (got_bcal==false){ Pi0XMass_HarderVeto_NoBCAL->Fill(mass,weight); } } if (got_bcal==false){ DLorentzVector other_pair=particle_pairs[Pi0X_][best_j].second; TwoGamma_Pi02g_NoBCAL_best->Fill(other_pair.M(),mass,weight); if (close_shower_veto==true){ TwoGamma_Pi02g_NoBCAL_best_NoCloseShowers->Fill(other_pair.M(),mass,weight); } } } if (particle_pairs[EtaX_].size()>0){ EtaXMass->Fill(mass,weight); for (unsigned int j=0;j>&final_kf, double weight) const{ DLorentzVector pair1_kf=final_kf[Gamma][0]+final_kf[Gamma][1]; DLorentzVector pair2_kf=final_kf[Gamma][3]+final_kf[Gamma][2]; DLorentzVector fivegam_kf=pair1_kf+pair2_kf+final_kf[Gamma][4]; double fivegam_mass_kf=fivegam_kf.M(); FiveGammaMass_kf->Fill(fivegam_mass_kf,weight); FiveGammaMass_vs_Ebeam->Fill(beam_kf.E(),fivegam_mass_kf,weight); } void JEventProcessor_multiphoton::SixGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector sixgam_kf; for (unsigned int i=0;i<6;i++){ sixgam_kf+=final_kf[Gamma][i]; } double sixgammamass=sixgam_kf.M(); SixGammaMass_kf->Fill(sixgammamass,weight); for (unsigned int i=0;iFill(pair1.M(),pair2.M(),weight); FourGamma2D_6g->Fill(pair1.M(),pair3.M(),weight); FourGamma2D_6g->Fill(pair2.M(),pair3.M(),weight); vectorpi0s; vectoretas; vectorunused_pair; for (unsigned int j=0;jFill(sixgammamass,weight); if (ETA_CUT(sixgammamass,ETA_CUT_VALUE)){ /* DVector3 beta_lab=(1./(sixgam_kf.E()))*sixgam_kf.Vect(); pi0s[0].Boost(-beta_lab); pi0s[1].Boost(-beta_lab); pi0s[2].Boost(-beta_lab); double Qeta=ParticleMass(Eta)-3.*ParticleMass(Pi0); EtaDalitzZ->Fill(Z,weight); */ } } if (pi0s.size()==2){ if (etas.size()==1){ TwoPi0EtaMass_kf->Fill(sixgammamass,weight); } else{ DLorentzVector gamma1=final_kf[Gamma][triplets[i][unused_pair[0]].first]; DLorentzVector gamma2=final_kf[Gamma][triplets[i][unused_pair[0]].second]; DLorentzVector pi0_1_g_1=pi0s[0]+gamma1; DLorentzVector pi0_2_g_2=pi0s[1]+gamma2; Pi0gVsPi0g->Fill(pi0_1_g_1.M(),pi0_2_g_2.M(),weight); if (OMEGA_CUT(pi0_1_g_1.M()) && OMEGA_CUT(pi0_2_g_2.M())){ TwoOmega_6g->Fill(sixgammamass,weight); } DLorentzVector pi0_1_g_2=pi0s[0]+gamma2; DLorentzVector pi0_2_g_1=pi0s[1]+gamma1; Pi0gVsPi0g->Fill(pi0_1_g_2.M(),pi0_2_g_1.M(),weight); if (OMEGA_CUT(pi0_1_g_2.M()) && OMEGA_CUT(pi0_2_g_1.M())){ TwoOmega_6g->Fill(sixgammamass,weight); } } } if (pi0s.size()==1 && etas.size()==2){ DLorentzVector eta1pi0=etas[0]+pi0s[0]; DLorentzVector eta2pi0=etas[1]+pi0s[0]; TwoEtaPi0Dalitz->Fill(eta1pi0.M2(),eta2pi0.M2(),weight); TwoEtaPi0Mass_kf->Fill(sixgammamass,weight); } if (etas.size()==3){ ThreeEtaMass_kf->Fill(sixgammamass,weight); } } } void JEventProcessor_multiphoton::SevenGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ vector >pairs; for (unsigned int i=0;i<6;i++){ for (unsigned int j=i+1;j<7;j++){ pair mypair(i,j); pairs.push_back(mypair); DLorentzVector twogam=final_kf[Gamma][i]+final_kf[Gamma][j]; TwoGammaMass_7g->Fill(twogam.M(),weight); } } //printf("---------\n"); vector >groups; for (unsigned int i=0;imygroup; mygroup.push_back(final_kf[Gamma][pairs[i].first]+final_kf[Gamma][pairs[i].second]); mygroup.push_back(final_kf[Gamma][pairs[j].first]+final_kf[Gamma][pairs[j].second]); mygroup.push_back(final_kf[Gamma][pairs[k].first]+final_kf[Gamma][pairs[k].second]); groups.push_back(mygroup); } } } } } // if (groups[0].size()<3) printf("huh???? %d\n",groups[0].size()); DLorentzVector sevengam=groups[0][0]+groups[0][1]+groups[0][2]+final_kf[Gamma][6]; SevenGammaMass_kf->Fill(sevengam.M(),weight); for (unsigned int n=0;npi0_indexes; vectoreta_indexes; for (unsigned int m=0;mFill(etagam.M(),weight); } if (num_pi0==3){ for (unsigned int k=0;k<3;k++){ DLorentzVector pi0gam=groups[n][k]+gam; Pi0GammaMass_7g->Fill(pi0gam.M(),weight); if (OMEGA_CUT(pi0gam.M())){ if (k==0){ DLorentzVector pi0pi0gam=pi0gam+groups[n][1]; Pi0Pi0Gamma_7g->Fill(pi0pi0gam.M(),weight); pi0pi0gam=pi0gam+groups[n][2]; Pi0Pi0Gamma_7g->Fill(pi0pi0gam.M(),weight); DLorentzVector pi0pi0=groups[n][1]+groups[n][2]; Pi0Pi0_against_omega->Fill(pi0pi0.M(),weight); } else if (k==1){ DLorentzVector pi0pi0gam=pi0gam+groups[n][0]; Pi0Pi0Gamma_7g->Fill(pi0pi0gam.M(),weight); pi0pi0gam=pi0gam+groups[n][2]; Pi0Pi0Gamma_7g->Fill(pi0pi0gam.M(),weight); DLorentzVector pi0pi0=groups[n][0]+groups[n][2]; Pi0Pi0_against_omega->Fill(pi0pi0.M(),weight); } else{ DLorentzVector pi0pi0gam=pi0gam+groups[n][0]; Pi0Pi0Gamma_7g->Fill(pi0pi0gam.M(),weight); pi0pi0gam=pi0gam+groups[n][1]; Pi0Pi0Gamma_7g->Fill(pi0pi0gam.M(),weight); DLorentzVector pi0pi0=groups[n][1]+groups[n][0]; Pi0Pi0_against_omega->Fill(pi0pi0.M(),weight); } } } ThreePi0Mass_7g->Fill(sixgam.M(),weight); if (sixgam.M()>0.51 && sixgam.M()<0.59){ EtaGammaMass_7g->Fill(sevengam.M(),weight); } } } } void JEventProcessor_multiphoton::EightGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ vector >pairs; for (unsigned int i=0;i<7;i++){ for (unsigned int j=i+1;j<8;j++){ pair mypair(i,j); pairs.push_back(mypair); DLorentzVector twogam=final_kf[Gamma][i]+final_kf[Gamma][j]; TwoGammaMass_8g->Fill(twogam.M(),weight); } } //printf("---------\n"); vector >groups; for (unsigned int i=0;imygroup; mygroup.push_back(final_kf[Gamma][pairs[i].first]+final_kf[Gamma][pairs[i].second]); mygroup.push_back(final_kf[Gamma][pairs[j].first]+final_kf[Gamma][pairs[j].second]); mygroup.push_back(final_kf[Gamma][pairs[k].first]+final_kf[Gamma][pairs[k].second]); mygroup.push_back(final_kf[Gamma][pairs[m].first]+final_kf[Gamma][pairs[m].second]); groups.push_back(mygroup); } } } } } } } //printf("Groups %d\n",groups.size()); DLorentzVector eightgam=groups[0][0]+groups[0][1]+groups[0][2]+groups[0][3]; EightGammaMass_kf->Fill(eightgam.M(),weight); for (unsigned int n=0;neta_list; vectorpi0_list; for (unsigned int m=0;mFill(eightgam.M(),weight); DLorentzVector pair1=pi0_list[0]+pi0_list[1]; DLorentzVector pair2=pi0_list[2]+pi0_list[3]; TwoPi0VsTwoPi0->Fill(pair1.M(),pair2.M(),weight); if (KSHORT_CUT(pair1.M())&&KSHORT_CUT(pair2.M())){ KShortKShort_4pi0->Fill(eightgam.M(),weight); } DLorentzVector pair3=pi0_list[0]+pi0_list[2]; DLorentzVector pair4=pi0_list[1]+pi0_list[3]; TwoPi0VsTwoPi0->Fill(pair4.M(),pair3.M(),weight); if (KSHORT_CUT(pair3.M())&&KSHORT_CUT(pair4.M())){ KShortKShort_4pi0->Fill(eightgam.M(),weight); } DLorentzVector pair5=pi0_list[0]+pi0_list[3]; DLorentzVector pair6=pi0_list[2]+pi0_list[1]; TwoPi0VsTwoPi0->Fill(pair5.M(),pair6.M(),weight); if (KSHORT_CUT(pair5.M())&&KSHORT_CUT(pair6.M())){ KShortKShort_4pi0->Fill(eightgam.M(),weight); } //printf("here\n"); DLorentzVector threepi0=pi0_list[0]+pi0_list[1]+pi0_list[2]; ThreePi0_4pi0->Fill(threepi0.M(),weight); if (ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Pi0Eta_eta_3pi0->Fill(eightgam.M(),weight); } threepi0=pi0_list[0]+pi0_list[1]+pi0_list[3]; ThreePi0_4pi0->Fill(threepi0.M(),weight); if (ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Pi0Eta_eta_3pi0->Fill(eightgam.M(),weight); } threepi0=pi0_list[0]+pi0_list[2]+pi0_list[3]; ThreePi0_4pi0->Fill(threepi0.M(),weight); if (ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Pi0Eta_eta_3pi0->Fill(eightgam.M(),weight); } threepi0=pi0_list[2]+pi0_list[1]+pi0_list[3]; ThreePi0_4pi0->Fill(threepi0.M(),weight); if (ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Pi0Eta_eta_3pi0->Fill(eightgam.M(),weight); } } if (num_pi0==2 && num_eta==2){ DLorentzVector eta_pi_1=eta_list[0]+pi0_list[0]; DLorentzVector eta_pi_2=eta_list[1]+pi0_list[1]; EtaPi0_2d->Fill(eta_pi_1.M(),eta_pi_2.M(),weight); DLorentzVector eta_pi_3=eta_list[0]+pi0_list[1]; DLorentzVector eta_pi_4=eta_list[1]+pi0_list[0]; EtaPi0_2d->Fill(eta_pi_3.M(),eta_pi_4.M(),weight); DLorentzVector twopi0=pi0_list[0]+pi0_list[1]; Eta2Pi0_against_eta->Fill((eta_list[1]+twopi0).M(),weight); Eta2Pi0_against_eta->Fill((eta_list[0]+twopi0).M(),weight); } if (num_pi0==3 && num_eta==1){ DLorentzVector threepi0=pi0_list[0]+pi0_list[1]+pi0_list[2]; ThreePi0_against_eta->Fill(threepi0.M(),weight); if (ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ EtaEta_3pi0->Fill(eightgam.M(),weight); } DLorentzVector twopi0=pi0_list[0]+pi0_list[1]; DLorentzVector etapi0=eta_list[0]+pi0_list[2]; EtaPi0_vs_Pi0Pi0->Fill(twopi0.M(),etapi0.M(),weight); DLorentzVector etapipi=eta_list[0]+twopi0; Eta2Pi0_against_pi0->Fill(etapipi.M(),weight); if (ETAPRIME_CUT(etapipi.M(),ETAPRIME_CUT_VALUE)){ EtaPrimePi0_8g->Fill(eightgam.M(),weight); } if (F1_1285_CUT(etapipi.M())){ F1Pi0Mass_8g->Fill(eightgam.M(),weight); } if (!ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Eta2Pi0_against_pi0_cut->Fill(etapipi.M(),weight); if (ETAPRIME_CUT(etapipi.M(),ETAPRIME_CUT_VALUE)){ EtaPrimePi0_8g_cut->Fill(eightgam.M(),weight); } if (F1_1285_CUT(etapipi.M())){ F1Pi0Mass_8g_cut->Fill(eightgam.M(),weight); } } twopi0=pi0_list[0]+pi0_list[2]; etapi0=eta_list[0]+pi0_list[1]; EtaPi0_vs_Pi0Pi0->Fill(twopi0.M(),etapi0.M()); etapipi=eta_list[0]+twopi0; Eta2Pi0_against_pi0->Fill(etapipi.M(),weight); if (ETAPRIME_CUT(etapipi.M(),ETAPRIME_CUT_VALUE)){ EtaPrimePi0_8g->Fill(eightgam.M(),weight); } if (F1_1285_CUT(etapipi.M())){ F1Pi0Mass_8g->Fill(eightgam.M(),weight); } if (!ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Eta2Pi0_against_pi0_cut->Fill(etapipi.M(),weight); if (ETAPRIME_CUT(etapipi.M(),ETAPRIME_CUT_VALUE)){ EtaPrimePi0_8g_cut->Fill(eightgam.M(),weight); } if (F1_1285_CUT(etapipi.M())){ F1Pi0Mass_8g_cut->Fill(eightgam.M(),weight); } } twopi0=pi0_list[1]+pi0_list[2]; etapi0=eta_list[0]+pi0_list[0]; EtaPi0_vs_Pi0Pi0->Fill(twopi0.M(),etapi0.M()); etapipi=eta_list[0]+twopi0; Eta2Pi0_against_pi0->Fill(etapipi.M(),weight); if (ETAPRIME_CUT(etapipi.M(),ETAPRIME_CUT_VALUE)){ EtaPrimePi0_8g->Fill(eightgam.M(),weight); } if (F1_1285_CUT(etapipi.M())){ F1Pi0Mass_8g->Fill(eightgam.M(),weight); } if (!ETA_CUT(threepi0.M(),ETA_CUT_VALUE)){ Eta2Pi0_against_pi0_cut->Fill(etapipi.M(),weight); if (ETAPRIME_CUT(etapipi.M(),ETAPRIME_CUT_VALUE)){ EtaPrimePi0_8g_cut->Fill(eightgam.M(),weight); } if (F1_1285_CUT(etapipi.M())){ F1Pi0Mass_8g_cut->Fill(eightgam.M(),weight); } } } } } void JEventProcessor_multiphoton::TenGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ vector >pairs; for (unsigned int i=0;i<9;i++){ for (unsigned int j=i+1;j<10;j++){ pair mypair(i,j); pairs.push_back(mypair); DLorentzVector twogam=final_kf[Gamma][i]+final_kf[Gamma][j]; TwoGammaMass_10g->Fill(twogam.M(),weight); } } //printf("---------\n"); vector >groups; for (unsigned int i=0;imygroup; mygroup.push_back(final_kf[Gamma][pairs[i].first]+final_kf[Gamma][pairs[i].second]); mygroup.push_back(final_kf[Gamma][pairs[j].first]+final_kf[Gamma][pairs[j].second]); mygroup.push_back(final_kf[Gamma][pairs[k].first]+final_kf[Gamma][pairs[k].second]); mygroup.push_back(final_kf[Gamma][pairs[m].first]+final_kf[Gamma][pairs[m].second]); mygroup.push_back(final_kf[Gamma][pairs[n].first]+final_kf[Gamma][pairs[n].second]); groups.push_back(mygroup); } } } } } } } } } //printf("Groups %d\n",groups.size()); DLorentzVector tengam=groups[0][0]+groups[0][1]+groups[0][2]+groups[0][3] +groups[0][4]; TenGammaMass_kf->Fill(tengam.M(),weight); for (unsigned int n=0;neta_list; vectorpi0_list; for (unsigned int m=0;mFill(tengam.M(),weight); DLorentzVector eta=eta_list[0]; DLorentzVector pi1_pi2=pi0_list[0]+pi0_list[1]; DLorentzVector pi3_pi4=pi0_list[2]+pi0_list[3]; DLorentzVector eta_pi1_pi2=eta+pi1_pi2; Eta2Pi0_10g->Fill(eta_pi1_pi2.M(),weight); if (ETAPRIME_CUT(eta_pi1_pi2.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0_10g->Fill(tengam.M(),weight); } DLorentzVector eta_pi3_pi4=eta+pi3_pi4; Eta2Pi0_10g->Fill(eta_pi3_pi4.M(),weight); if (ETAPRIME_CUT(eta_pi3_pi4.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0_10g->Fill(tengam.M(),weight); } DLorentzVector pi1_pi3=pi0_list[0]+pi0_list[2]; DLorentzVector pi2_pi4=pi0_list[1]+pi0_list[3]; DLorentzVector eta_pi1_pi3=eta+pi1_pi3; Eta2Pi0_10g->Fill(eta_pi1_pi3.M(),weight); if (ETAPRIME_CUT(eta_pi1_pi3.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0_10g->Fill(tengam.M(),weight); } DLorentzVector eta_pi2_pi4=eta+pi2_pi4; Eta2Pi0_10g->Fill(eta_pi2_pi4.M(),weight); if (ETAPRIME_CUT(eta_pi2_pi4.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0_10g->Fill(tengam.M(),weight); } DLorentzVector pi1_pi4=pi0_list[0]+pi0_list[3]; DLorentzVector pi2_pi3=pi0_list[1]+pi0_list[2]; DLorentzVector eta_pi1_pi4=eta+pi1_pi4; Eta2Pi0_10g->Fill(eta_pi1_pi4.M(),weight); if (ETAPRIME_CUT(eta_pi1_pi4.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0_10g->Fill(tengam.M(),weight); } DLorentzVector eta_pi2_pi3=eta+pi2_pi3; Eta2Pi0_10g->Fill(eta_pi2_pi3.M(),weight); if (ETAPRIME_CUT(eta_pi2_pi3.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0_10g->Fill(tengam.M(),weight); } } if (num_pi0==5){ FivePi0Mass->Fill(tengam.M(),weight); DLorentzVector triplet=groups[n][0]+groups[n][1]+groups[n][2]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][0]+groups[n][1]+groups[n][3]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][0]+groups[n][1]+groups[n][4]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][0]+groups[n][2]+groups[n][3]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][0]+groups[n][2]+groups[n][4]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][0]+groups[n][3]+groups[n][4]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][1]+groups[n][2]+groups[n][4]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][1]+groups[n][2]+groups[n][3]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][1]+groups[n][3]+groups[n][4]; ThreePi0_10g->Fill(triplet.M(),weight); triplet=groups[n][2]+groups[n][3]+groups[n][4]; ThreePi0_10g->Fill(triplet.M(),weight); } } } void JEventProcessor_multiphoton::TwelveGammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ vector >pairs; for (unsigned int i=0;i<11;i++){ for (unsigned int j=i+1;j<12;j++){ pair mypair(i,j); pairs.push_back(mypair); DLorentzVector twogam=final_kf[Gamma][i]+final_kf[Gamma][j]; TwoGammaMass_12g->Fill(twogam.M(),weight); } } //printf("---------\n"); vector >groups; for (unsigned int i=0;imygroup; mygroup.push_back(final_kf[Gamma][pairs[i].first]+final_kf[Gamma][pairs[i].second]); mygroup.push_back(final_kf[Gamma][pairs[j].first]+final_kf[Gamma][pairs[j].second]); mygroup.push_back(final_kf[Gamma][pairs[k].first]+final_kf[Gamma][pairs[k].second]); mygroup.push_back(final_kf[Gamma][pairs[m].first]+final_kf[Gamma][pairs[m].second]); mygroup.push_back(final_kf[Gamma][pairs[n].first]+final_kf[Gamma][pairs[n].second]); mygroup.push_back(final_kf[Gamma][pairs[p].first]+final_kf[Gamma][pairs[p].second]); groups.push_back(mygroup); } } } } } } } } } } } //printf("Groups %d\n",groups.size()); DLorentzVector twelvegam=groups[0][0]+groups[0][1]+groups[0][2]+groups[0][3] +groups[0][4]+groups[0][5]; TwelveGammaMass_kf->Fill(twelvegam.M(),weight); for (unsigned int n=0;neta_list; vectorpi0_list; for (unsigned int m=0;mFill(twelvegam.M(),weight); } } } void JEventProcessor_multiphoton::PipPimAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim_kf=final_kf[PiMinus][0]+final_kf[PiPlus][0]; double t=(beam_kf-pippim_kf).M2(); PipPimMass_kf->Fill(pippim_kf.M(),weight); PipPimMass_vs_Ebeam->Fill(beam_kf.E(),pippim_kf.M(),weight); } void JEventProcessor_multiphoton::PipPim1GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim_kf=final_kf[PiMinus][0]+final_kf[PiPlus][0]; DLorentzVector pippim1g_kf=pippim_kf+final_kf[Gamma][0]; double pippim1g_mass_kf=pippim1g_kf.M(); PipPim1GammaMass_kf->Fill(pippim1g_mass_kf,weight); PipPimMass_1g->Fill(pippim_kf.M(),weight); if (pippim_kf.M()>0.6 && pippim_kf.M()<0.85){ RhoGammaMass->Fill(pippim1g_mass_kf,weight); } if (pippim_kf.M()<0.85){ PipPim1GammaMass_cut->Fill(pippim1g_mass_kf,weight); } if (ETAPRIME_CUT(pippim1g_mass_kf,ETAPRIME_CUT_VALUE)){ PipPimMass_etaprime->Fill(pippim_kf.M(),weight); } if (ETAPRIME_BG_CUT(pippim1g_mass_kf,NUM_SIGMA_BG,ETAPRIME_CUT_VALUE)){ PipPimMass_etaprime_sb->Fill(pippim_kf.M(),0.5*weight); } } void JEventProcessor_multiphoton::PipPim2GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim_kf=final_kf[PiMinus][0]+final_kf[PiPlus][0]; DLorentzVector twogam_kf=final_kf[Gamma][0]+final_kf[Gamma][1]; DLorentzVector pippim2g_kf=pippim_kf+twogam_kf; double pippim2g_mass_kf=pippim2g_kf.M(); DLorentzVector ppim_kf=final_kf[Proton][0]+final_kf[PiMinus][0]; DLorentzVector pip_2gam_kf=final_kf[PiPlus][0]+twogam_kf; DLorentzVector pim_2gam_kf=final_kf[PiMinus][0]+twogam_kf; PPimMass_2g->Fill(ppim_kf.M(),weight); Pip2GammaMass->Fill(pip_2gam_kf.M(),weight); PipPim2GammaMass_kf->Fill(pippim2g_mass_kf,weight); TwoGammaMass_p2pi_kf->Fill(twogam_kf.M(),weight); PipPim2g_vs_2g->Fill(twogam_kf.M(),pippim2g_mass_kf,weight); PipPimMass_2g->Fill(pippim_kf.M(),weight); DLorentzVector target(0.,0.,0.,ParticleMass(Proton)); double t_mandelstam=(final_kf[Proton][0]-target).M2(); if (PI0_CUT(twogam_kf.M(),PI0_CUT_VALUE)){ DLorentzVector ppi0=final_kf[Proton][0]+twogam_kf; PPi0Mass->Fill(ppi0.M(),weight); PipPimMass_with_pi0->Fill(pippim_kf.M(),weight); PipPimPi0Mass_kf->Fill(pippim2g_mass_kf,weight); if (pippim2g_mass_kf>0.77 && pippim2g_mass_kf<0.8){ Omega_t_mandelstam->Fill(beam_kf.E(),-t_mandelstam,weight); } PipPimPi0Mass_vs_Ebeam->Fill(beam_kf.E(),pippim2g_mass_kf,weight); DLorentzVector target(0,0,0,ParticleMass(Proton)); double t_mandelstam=(final_kf[Proton][0]-target).M2(); if (beam_kf.E()>2.8){ int index=(int)(floor(((beam_kf.E()-2.8)/0.2))); PipPimPi0_vs_t[index]->Fill(-t_mandelstam,pippim2g_mass_kf,weight); } // Angular distribution in helicity frame DVector3 beta_lab=(1./(pippim2g_kf.E()))*pippim2g_kf.Vect(); DLorentzVector pim_kf=final_kf[PiMinus][0]; DLorentzVector pip_kf=final_kf[PiPlus][0]; pip_kf.Boost(-beta_lab); pim_kf.Boost(-beta_lab); twogam_kf.Boost(-beta_lab); DLorentzVector beam_res=beam_kf; beam_res.Boost(-beta_lab); DLorentzVector recoil=final_kf[Proton][0]; recoil.Boost(-beta_lab); DVector3 z = -recoil.Vect().Unit(); DVector3 y = beam_res.Vect().Cross(z).Unit(); DVector3 x = y.Cross(z).Unit(); // For the three pion case, we define the angles relative to the normal of the decay plane DVector3 norm = pip_kf.Vect().Cross(pim_kf.Vect()).Unit(); DVector3 angles( norm.Dot(x), norm.Dot(y), norm.Dot(z) ); double cosTheta = angles.CosTheta(); double phi = angles.Phi(); if (PHI_CUT(pippim2g_mass_kf)){ Phi3PiCosThetaVsPhiH->Fill(phi,cosTheta,weight); } if (OMEGA_CUT(pippim2g_mass_kf)){ Omega3PiCosThetaVsPhiH->Fill(phi,cosTheta,weight); OmegaDalitz1->Fill(pippim_kf.M2(),pip_2gam_kf.M2(),weight); OmegaDalitz2->Fill(pim_2gam_kf.M2(),pip_2gam_kf.M2(),weight); } if (ETA_CUT(pippim2g_mass_kf,ETA_CUT_VALUE)){ //(twogam_kf+pip_kf+pim_kf).Print(); double Qeta=ParticleMass(Eta)-2.*ParticleMass(PiPlus)-ParticleMass(Pi0); double X=sqrt(3.)/Qeta*(pip_kf.E()-pim_kf.E()); double Y=3.*(twogam_kf.E()-ParticleMass(Pi0))/Qeta-1.; //_DBG_ << X << " " << Y << endl; EtaDalitzXY->Fill(X,Y,weight); } } if (ETA_CUT(twogam_kf.M(),ETA_CUT_VALUE)){ PipPimMass_with_eta->Fill(pippim_kf.M(),weight); PipPimEtaMass_kf->Fill(pippim2g_mass_kf,weight); PipEtaMassSq_vs_PimEtaMassSq->Fill(pim_2gam_kf.M2(),pip_2gam_kf.M2(),weight); PipPimEtaMass_vs_Ebeam->Fill(beam_kf.E(),pippim2g_mass_kf,weight); if (pippim2g_mass_kf>1.2 && pippim2g_mass_kf<1.35){ PipEtaMassSq_vs_PimEtaMassSq_f1cut->Fill(pim_2gam_kf.M2(),pip_2gam_kf.M2(),weight); } // Side-band rescaling following Dickson, et al. arxiv:1604.07425v2 if (pippim2g_mass_kf>1.1625&&pippim2g_mass_kf<1.2){ double meta_plus_mpi=ParticleMass(Eta)+ParticleMass(PiMinus); double mdiff1=1.08685-ParticleMass(PiPlus); double mdiff2=1.12916-ParticleMass(PiPlus); double scale=(mdiff2*mdiff2-meta_plus_mpi*meta_plus_mpi) /(mdiff1*mdiff1-meta_plus_mpi*meta_plus_mpi); double msq_pim2g=scale*(pim_2gam_kf.M2()-meta_plus_mpi*meta_plus_mpi) +meta_plus_mpi*meta_plus_mpi; double msq_pip2g=scale*(pip_2gam_kf.M2()-meta_plus_mpi*meta_plus_mpi) +meta_plus_mpi*meta_plus_mpi; PipEtaMassSq_vs_PimEtaMassSq_f1_low_sb->Fill(msq_pim2g,msq_pip2g,weight); } if (pippim2g_mass_kf>1.35&&pippim2g_mass_kf<1.38750){ double meta_plus_mpi=ParticleMass(Eta)+ParticleMass(PiMinus); double mdiff1=1.16994-ParticleMass(PiPlus); double mdiff2=1.12916-ParticleMass(PiPlus); double scale=(mdiff2*mdiff2-meta_plus_mpi*meta_plus_mpi) /(mdiff1*mdiff1-meta_plus_mpi*meta_plus_mpi); double msq_pim2g=scale*(pim_2gam_kf.M2()-meta_plus_mpi*meta_plus_mpi) +meta_plus_mpi*meta_plus_mpi; double msq_pip2g=scale*(pip_2gam_kf.M2()-meta_plus_mpi*meta_plus_mpi) +meta_plus_mpi*meta_plus_mpi; PipEtaMassSq_vs_PimEtaMassSq_f1_high_sb->Fill(msq_pim2g,msq_pip2g,weight); } } if (ETAPRIME_CUT(twogam_kf.M(),ETAPRIME_CUT_VALUE)) { PipPimEtaPrimeMass_kf->Fill(pippim2g_mass_kf,weight); PipEtaPrimeMassSq_vs_PimEtaPrimeMassSq->Fill(pim_2gam_kf.M2(),pip_2gam_kf.M2(),weight); } } void JEventProcessor_multiphoton::PipPim3GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim_kf=final_kf[PiMinus][0]+final_kf[PiPlus][0]; DLorentzVector pippim1g_1_kf=pippim_kf+final_kf[Gamma][0]; DLorentzVector pair1=final_kf[Gamma][1]+final_kf[Gamma][2]; DLorentzVector pippim3g_kf=pippim1g_1_kf+pair1; double pippim3g_mass_kf=pippim3g_kf.M(); DLorentzVector threegamma_kf=final_kf[Gamma][0]+pair1; double threegammaMass_kf=threegamma_kf.M(); ThreeGammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); PipPim3GammaMass_kf->Fill(pippim3g_mass_kf,weight); if (threegammaMass_kf>0.16){ PipPim3GammaMass_cut_kf->Fill(pippim3g_mass_kf,weight); } if (OMEGA_CUT(threegammaMass_kf)){ DLorentzVector pip3gam=final_kf[PiPlus][0]+threegamma_kf; DLorentzVector pim3gam=final_kf[PiMinus][0]+threegamma_kf; OmegaPiDalitz_kf->Fill(pip3gam.M2(),pim3gam.M2(),weight); OmegaPiPiMass->Fill(pippim3g_mass_kf,weight); } TwoGammaMass_pippim3g_kf->Fill(pair1.M(),weight); DLorentzVector pippim1g_2_kf=pippim_kf+final_kf[Gamma][1]; DLorentzVector pair2=final_kf[Gamma][0]+final_kf[Gamma][2]; TwoGammaMass_pippim3g_kf->Fill(pair2.M(),weight); DLorentzVector pippim1g_3_kf=pippim_kf+final_kf[Gamma][2]; DLorentzVector pair3=final_kf[Gamma][0]+final_kf[Gamma][1]; TwoGammaMass_pippim3g_kf->Fill(pair3.M(),weight); if (PI0_CUT(pair1.M(),PI0_CUT_VALUE) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ Pi0GammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); DLorentzVector pippim1g=pippim_kf+final_kf[Gamma][0]; PipPimGammaMass_3g_kf->Fill(pippim1g.M(),weight); DLorentzVector pippimpi0=pippim_kf+pair1; PipPimPi0Mass_3g_kf->Fill(pippimpi0.M(),weight); if (OMEGA_CUT(pippimpi0.M())){ OmegaGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } if (ETA_CUT(pippimpi0.M(),ETA_CUT_VALUE)){ EtaGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } if (PHI_CUT(pippimpi0.M())){ PhiGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } } if (PI0_CUT(pair2.M(),PI0_CUT_VALUE) && PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ Pi0GammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); DLorentzVector pippim1g=pippim_kf+final_kf[Gamma][1]; PipPimGammaMass_3g_kf->Fill(pippim1g.M(),weight); DLorentzVector pippimpi0=pippim_kf+pair2; PipPimPi0Mass_3g_kf->Fill(pippimpi0.M(),weight); if (OMEGA_CUT(pippimpi0.M())){ OmegaGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } if (ETA_CUT(pippimpi0.M(),ETA_CUT_VALUE)){ EtaGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } if (PHI_CUT(pippimpi0.M())){ PhiGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } } if (PI0_CUT(pair3.M(),PI0_CUT_VALUE) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ Pi0GammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); DLorentzVector pippim1g=pippim_kf+final_kf[Gamma][2]; PipPimGammaMass_3g_kf->Fill(pippim1g.M(),weight); DLorentzVector pippimpi0=pippim_kf+pair3; PipPimPi0Mass_3g_kf->Fill(pippimpi0.M(),weight); if (OMEGA_CUT(pippimpi0.M())){ OmegaGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } if (ETA_CUT(pippimpi0.M(),ETA_CUT_VALUE)){ EtaGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } if (PHI_CUT(pippimpi0.M())){ PhiGammaMass_pippim3g->Fill(pippim3g_mass_kf,weight); } } if (PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_CUT(pair1.M(),ETA_CUT_VALUE) && ETA_ANTI_CUT(pair2.M()) && ETA_ANTI_CUT(pair3.M())){ EtaGammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); DLorentzVector pippimeta=pippim_kf+pair1; PipPimEtaMass_3g_kf->Fill(pippimeta.M(),weight); DLorentzVector pippim1g=pippim_kf+final_kf[Gamma][0]; PipPimGammaMass_against_eta->Fill(pippim1g.M(),weight); } if (PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_CUT(pair2.M(),ETA_CUT_VALUE) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair3.M())){ EtaGammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); DLorentzVector pippimeta=pippim_kf+pair2; PipPimEtaMass_3g_kf->Fill(pippimeta.M(),weight); DLorentzVector pippim1g=pippim_kf+final_kf[Gamma][1]; PipPimGammaMass_against_eta->Fill(pippim1g.M(),weight); } if (PI0_ANTI_CUT(pair1.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair2.M(),PI0_VETO_CUT) && PI0_ANTI_CUT(pair3.M(),PI0_VETO_CUT) && ETA_CUT(pair3.M(),ETA_CUT_VALUE) && ETA_ANTI_CUT(pair1.M()) && ETA_ANTI_CUT(pair1.M())){ EtaGammaMass_ppippim_kf->Fill(threegammaMass_kf,weight); DLorentzVector pippimeta=pippim_kf+pair3; PipPimEtaMass_3g_kf->Fill(pippimeta.M(),weight); DLorentzVector pippim1g=pippim_kf+final_kf[Gamma][2]; PipPimGammaMass_against_eta->Fill(pippim1g.M(),weight); } } void JEventProcessor_multiphoton::PipPim4GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight){ DLorentzVector pippim_kf=final_kf[PiMinus][0]+final_kf[PiPlus][0]; DLorentzVector pip_kf=final_kf[PiPlus][0]; DLorentzVector pim_kf=final_kf[PiMinus][0]; DLorentzVector proton_kf=final_kf[Proton][0]; double pippim_mass=pippim_kf.M(); DLorentzVector pair1=final_kf[Gamma][0]+final_kf[Gamma][1]; DLorentzVector pair2=final_kf[Gamma][3]+final_kf[Gamma][2]; DLorentzVector pippim4g_kf=pippim_kf+pair1+pair2; DLorentzVector fourgam=pair1+pair2; double fourgam_mass=fourgam.M(); double pippim4g_mass=pippim4g_kf.M(); DVector3 beta=(1./pippim4g_kf.E())*pippim4g_kf.Vect(); DLorentzVector mybeam=beam_kf; mybeam.Boost(-beta); DVector3 beamdir=mybeam.Vect(); beamdir.SetMag(1.); PipPim4GammaMass_kf->Fill(pippim4g_kf.M(),weight); FourGammaMass_ppippim_kf->Fill((pair1+pair2).M(),weight); MakeMesonPairs(final_kf[Gamma],weight,FourGamma2d_ppippim_kf); if (particle_pairs[Pi0Pi0_].size()>0){ PipPim2Pi0Mass->Fill(pippim4g_mass,weight); PipPim_vs_2Pi0->Fill(fourgam_mass,pippim_mass,weight); for (unsigned int i=0;iFill(pimpi0_2.M(),pippi0_1.M(),weight); DLorentzVector pippi0_2=pip_kf+pi0_2; DLorentzVector pimpi0_1=pim_kf+pi0_1; PipPi0Mass_vs_PimPi0Mass_kf->Fill(pimpi0_1.M(),pippi0_2.M(),weight); double pippi0_1_mass=pippi0_1.M(); double pimpi0_2_mass=pimpi0_2.M(); if (fabs(pippi0_1_mass-0.75)<1. && fabs(pimpi0_2_mass-0.75)<1.){ RhoPlusRhoMinus->Fill(pippim4g_mass,weight); } double pippi0_2_mass=pippi0_2.M(); double pimpi0_1_mass=pimpi0_1.M(); if (fabs(pippi0_2_mass-0.75)<1. && fabs(pimpi0_1_mass-0.75)<1.){ RhoPlusRhoMinus->Fill(pippim4g_mass,weight); } Pi0PipPim_with_Pi0->Fill(pippimpi0_1_mass,weight); Pi0PipPim_with_Pi0->Fill(pippimpi0_2_mass,weight); if (ETA_CUT(pippimpi0_1_mass,ETA_CUT_VALUE)){ EtaPi0Mass_p2pi_kf->Fill(pippim4g_mass,weight); } if (ETA_CUT(pippimpi0_2_mass,ETA_CUT_VALUE)){ EtaPi0Mass_p2pi_kf->Fill(pippim4g_mass,weight); } if (OMEGA_CUT(pippimpi0_1_mass)){ OmegaPi0Mass_kf->Fill(pippim4g_mass,weight); } if (OMEGA_CUT(pippimpi0_2_mass)){ OmegaPi0Mass_kf->Fill(pippim4g_mass,weight); } DLorentzVector ppi0_2=proton_kf+pi0_2; PipPimPi0_vs_PPi0->Fill(ppi0_2.M(),pippimpi0_1_mass,weight); DLorentzVector ppi0_1=proton_kf+pi0_1; PipPimPi0_vs_PPi0->Fill(ppi0_1.M(),pippimpi0_2_mass,weight); } } if (particle_pairs[Pi0Eta_].size()>0){ PipPimEtaPi0Mass->Fill(pippim4g_mass,weight); PipPim_vs_EtaPi0->Fill(fourgam_mass,pippim_mass,weight); for (unsigned int i=0;iFill(pippimpi0_mass,weight); EtaPipPim_with_Pi0->Fill(pippimeta_mass,weight); if (ETAPRIME_CUT(pippimeta_mass,ETAPRIME_CUT_VALUE)){ EtaPrimePi0_PipPim->Fill(pippim4g_mass,weight); DLorentzVector pi0_1=pi0; pi0_1.Boost(-beta); DVector3 pi0dir=pi0_1.Vect(); pi0dir.SetMag(1.); Pi0CosTheta_EtaPrimePi0->Fill(pippim4g_mass,pi0dir.Dot(beamdir),weight); } if (F1_1285_CUT(pippimeta_mass)){ F1Pi0Mass->Fill(pippim4g_mass,weight); } if (ETA_CUT(pippimpi0_mass,ETA_CUT_VALUE)){ TwoEta_PipPim->Fill(pippim4g_mass,weight); } if (OMEGA_CUT(pippimpi0_mass)){ OmegaEta_PipPim->Fill(pippim4g_mass,weight); eta.Boost(-beta); DVector3 etadir=eta.Vect(); etadir.SetMag(1.); EtaCosTheta_EtaOmega->Fill(pippim4g_mass,etadir.Dot(beamdir),weight); } } } if (particle_pairs[EtaEta_].size()>0){ PipPim2EtaMass->Fill(pippim4g_mass,weight); PipPim_vs_2Eta->Fill(fourgam_mass,pippim_mass,weight); for (unsigned int i=0;iFill(pippimeta_1.M(),weight); EtaPipPim_with_Eta->Fill(pippimeta_2.M(),weight); if (ETAPRIME_CUT(pippimeta_1.M(),ETAPRIME_CUT_VALUE)){ EtaEtaPrimeMass->Fill(pippim4g_mass,weight); } if (ETAPRIME_CUT(pippimeta_2.M(),ETAPRIME_CUT_VALUE)){ EtaEtaPrimeMass->Fill(pippim4g_mass,weight); } } } // backgrounds for (unsigned int i=0;iFill(pippim4g_mass,bgweight); PipPim_vs_2Pi0_bg->Fill(fourgam_mass,pippim_mass,bgweight); DLorentzVector pi0_1=bg_particle_pairs[Pi0Pi0_][i].first; DLorentzVector pi0_2=bg_particle_pairs[Pi0Pi0_][i].second; DLorentzVector pippimpi0_1=pippim_kf+pi0_1; DLorentzVector pippimpi0_2=pippim_kf+pi0_2; double pippimpi0_1_mass=pippimpi0_1.M(); double pippimpi0_2_mass=pippimpi0_2.M(); DLorentzVector pippi0_1=pip_kf+pi0_1; DLorentzVector pimpi0_2=pim_kf+pi0_2; double pippi0_1_mass=pippi0_1.M(); double pimpi0_2_mass=pimpi0_2.M(); PipPi0Mass_vs_PimPi0Mass_bg->Fill(pimpi0_2.M(),pippi0_1.M(),bgweight); if (fabs(pippi0_1_mass-0.75)<1. && fabs(pimpi0_2_mass-0.75)<1.){ RhoPlusRhoMinus_bg->Fill(pippim4g_mass,bgweight); } DLorentzVector pippi0_2=pip_kf+pi0_2; DLorentzVector pimpi0_1=pim_kf+pi0_1; double pippi0_2_mass=pippi0_2.M(); double pimpi0_1_mass=pimpi0_1.M(); if (fabs(pippi0_2_mass-0.75)<1. && fabs(pimpi0_1_mass-0.75)<1.){ RhoPlusRhoMinus_bg->Fill(pippim4g_mass,bgweight); } PipPi0Mass_vs_PimPi0Mass_bg->Fill(pimpi0_1.M(),pippi0_2.M(),bgweight); Pi0PipPim_with_Pi0_bg->Fill(pippimpi0_1_mass,bgweight); Pi0PipPim_with_Pi0_bg->Fill(pippimpi0_2_mass,bgweight); if (ETA_CUT(pippimpi0_1_mass,ETA_CUT_VALUE)){ EtaPi0Mass_p2pi_bg->Fill(pippim4g_mass,bgweight); } if (ETA_CUT(pippimpi0_2_mass,ETA_CUT_VALUE)){ EtaPi0Mass_p2pi_bg->Fill(pippim4g_mass,bgweight); } if (OMEGA_CUT(pippimpi0_1_mass)){ OmegaPi0Mass_bg->Fill(pippim4g_mass,bgweight); } if (OMEGA_CUT(pippimpi0_2_mass)){ OmegaPi0Mass_bg->Fill(pippim4g_mass,bgweight); } } for (unsigned int i=0;iFill(pippim4g_mass,bgweight); PipPim_vs_EtaPi0_bg->Fill(fourgam_mass,pippim_mass,bgweight); Pi0PipPim_with_Eta_bg->Fill(pippimpi0_mass,bgweight); EtaPipPim_with_Pi0_bg->Fill(pippimeta_mass,bgweight); if (ETAPRIME_CUT(pippimeta_mass,ETAPRIME_CUT_VALUE)){ EtaPrimePi0_PipPim_bg->Fill(pippim4g_mass,bgweight); DLorentzVector pi0_1=pi0; pi0_1.Boost(-beta); DVector3 pi0dir=pi0_1.Vect(); pi0dir.SetMag(1.); Pi0CosTheta_EtaPrimePi0_bg->Fill(pippim4g_mass,pi0dir.Dot(beamdir),bgweight); } if (F1_1285_CUT(pippimeta_mass)){ F1Pi0Mass_bg->Fill(pippim4g_mass,bgweight); } if (ETA_CUT(pippimpi0_mass,ETA_CUT_VALUE)){ TwoEta_PipPim_bg->Fill(pippim4g_mass,bgweight); } if (OMEGA_CUT(pippimpi0_mass)){ OmegaEta_PipPim_bg->Fill(pippim4g_mass,bgweight); eta.Boost(-beta); DVector3 etadir=eta.Vect(); etadir.SetMag(1.); EtaCosTheta_EtaOmega_bg->Fill(pippim4g_mass,etadir.Dot(beamdir),bgweight); } } for (unsigned int i=0;iFill(pippim4g_mass,bgweight); PipPim_vs_2Eta_bg->Fill(fourgam_mass,pippim_mass,bgweight); DLorentzVector eta_1=bg_particle_pairs[EtaEta_][i].first; DLorentzVector eta_2=bg_particle_pairs[EtaEta_][i].second; DLorentzVector pippimeta_1=pippim_kf+eta_1; DLorentzVector pippimeta_2=pippim_kf+eta_2; EtaPipPim_with_Eta_bg->Fill(pippimeta_1.M(),bgweight); EtaPipPim_with_Eta_bg->Fill(pippimeta_2.M(),bgweight); if (ETAPRIME_CUT(pippimeta_1.M(),ETAPRIME_CUT_VALUE)){ EtaEtaPrimeMass_bg->Fill(pippim4g_mass,bgweight); } if (ETAPRIME_CUT(pippimeta_2.M(),ETAPRIME_CUT_VALUE)){ EtaEtaPrimeMass_bg->Fill(pippim4g_mass,bgweight); } } } void JEventProcessor_multiphoton::PipPim5GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim_kf=final_kf[PiPlus][0]+final_kf[PiMinus][0]; DLorentzVector pair1_kf=final_kf[Gamma][0]+final_kf[Gamma][1]; DLorentzVector pair2_kf=final_kf[Gamma][2]+final_kf[Gamma][3]; DLorentzVector fivegam_kf=pair1_kf+pair2_kf+final_kf[Gamma][4]; DLorentzVector pippim5g_kf=pippim_kf+fivegam_kf; FiveGammaMass_ppippim_kf->Fill(fivegam_kf.M(),weight); PipPim5GammaMass_kf->Fill(pippim5g_kf.M(),weight); } void JEventProcessor_multiphoton::PipPim6GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim_kf=final_kf[PiMinus][0]+final_kf[PiPlus][0]; DLorentzVector sixgam_kf; for (unsigned int i=0;i<6;i++){ sixgam_kf+=final_kf[Gamma][i]; } DLorentzVector pippim6g_kf=pippim_kf+sixgam_kf; double sixgam_mass_kf=sixgam_kf.M(); SixGammaMass_ppippim_kf->Fill(sixgam_kf.M(),weight); PipPim6GammaMass_kf->Fill(pippim6g_kf.M(),weight); for (unsigned int i=0;ipi0s; vectoretas; vectorunused_pair; for (unsigned int j=0;jFill(pair1.M(),weight); } if (pi0s.size()==3){ DLorentzVector pippimpi0_0=pippim_kf+pi0s[0]; DLorentzVector pippimpi0_1=pippim_kf+pi0s[1]; DLorentzVector pippimpi0_2=pippim_kf+pi0s[2]; PipPimPi0_6g->Fill(pippimpi0_0.M(),weight); PipPimPi0_6g->Fill(pippimpi0_1.M(),weight); PipPimPi0_6g->Fill(pippimpi0_2.M(),weight); if (ETA_CUT(pippimpi0_0.M(),ETA_CUT_VALUE)){ Eta2Pi0_pippim6g->Fill(pippim6g_kf.M(),weight); } if (ETA_CUT(pippimpi0_1.M(),ETA_CUT_VALUE)){ Eta2Pi0_pippim6g->Fill(pippim6g_kf.M(),weight); } if (ETA_CUT(pippimpi0_2.M(),ETA_CUT_VALUE)){ Eta2Pi0_pippim6g->Fill(pippim6g_kf.M(),weight); } if (OMEGA_CUT(pippimpi0_0.M())){ DLorentzVector omegapi0_1=pippimpi0_0+pi0s[1]; DLorentzVector omegapi0_2=pippimpi0_0+pi0s[2]; OmegaPi0Pi0Dalitz->Fill(omegapi0_1.M2(),omegapi0_2.M2(),weight); Omega2Pi0_pippim6g->Fill(pippim6g_kf.M(),weight); } if (OMEGA_CUT(pippimpi0_1.M())){ DLorentzVector omegapi0_0=pippimpi0_0+pi0s[0]; DLorentzVector omegapi0_2=pippimpi0_0+pi0s[2]; OmegaPi0Pi0Dalitz->Fill(omegapi0_0.M2(),omegapi0_2.M2(),weight); Omega2Pi0_pippim6g->Fill(pippim6g_kf.M(),weight); } if (OMEGA_CUT(pippimpi0_2.M())){ DLorentzVector omegapi0_1=pippimpi0_0+pi0s[1]; DLorentzVector omegapi0_0=pippimpi0_0+pi0s[0]; OmegaPi0Pi0Dalitz->Fill(omegapi0_1.M2(),omegapi0_0.M2(),weight); Omega2Pi0_pippim6g->Fill(pippim6g_kf.M(),weight); } ThreePi0Mass_PipPim6g_kf->Fill(sixgam_mass_kf,weight); if (ETA_CUT(sixgam_mass_kf,ETA_CUT_VALUE)){ PipPimEtaMass_6g_kf->Fill(pippim6g_kf.M(),weight); } } if (pi0s.size()==2 && etas.size()==1){ DLorentzVector pippimeta=pippim_kf+etas[0]; PipPimEta_with_2pi0->Fill(pippimeta.M(),weight); if (ETAPRIME_CUT(pippimeta.M(),ETAPRIME_CUT_VALUE)){ EtaPrime2Pi0->Fill(pippim6g_kf.M(),weight); } TwoPi0EtaMass_PipPim6g_kf->Fill(sixgam_mass_kf,weight); if (ETAPRIME_CUT(sixgam_mass_kf,ETAPRIME_CUT_VALUE)){ PipPimEtaPrime_6g->Fill(pippim6g_kf.M(),weight); } } if (pi0s.size()==1 && etas.size()==2){ DLorentzVector pippimpi0=pippim_kf+pi0s[0]; PipPimPi0_with_2eta->Fill(pippimpi0.M(),weight); DLorentzVector pippimeta_1=pippim_kf+etas[0]; DLorentzVector pippimeta_2=pippim_kf+etas[1]; PipPimEta_with_etapi0->Fill(pippimeta_1.M(),weight); PipPimEta_with_etapi0->Fill(pippimeta_2.M(),weight); TwoEtaPi0Mass_PipPim6g_kf->Fill(sixgam_mass_kf,weight); } if (etas.size()==3){ ThreeEtaMass_PipPim6g_kf->Fill(sixgam_mass_kf,weight); } } } void JEventProcessor_multiphoton::TwoPipTwoPimAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pip1pim1=final_kf[PiPlus][0]+final_kf[PiMinus][0]; DLorentzVector pip2pim2=final_kf[PiPlus][1]+final_kf[PiMinus][1]; DLorentzVector twopip_twopim=pip1pim1+pip2pim2; TwoPipTwoPimMass->Fill(twopip_twopim.M(),weight); PipPimMass_vs_PipPimMass->Fill(pip1pim1.M(),pip2pim2.M(),weight); double pip1pim1_mass=pip1pim1.M(); double pip2pim2_mass=pip2pim2.M(); if (fabs(pip1pim1_mass-0.75)<1. && fabs(pip2pim2_mass-0.75)<1.){ RhoRho->Fill(twopip_twopim.M(),weight); } PipPimMass_2pip2pim->Fill(pip1pim1.M(),weight); PipPimMass_2pip2pim->Fill(pip2pim2.M(),weight); DLorentzVector pip1pim1p=pip1pim1+final_kf[Proton][0]; DLorentzVector pip2pim2p=pip2pim2+final_kf[Proton][0]; double t_mandelstam=(beam_kf-twopip_twopim).M2(); if (KSHORT_CUT(pip1pim1.M()) && KSHORT_CUT(pip2pim2.M())){ KShortKShort->Fill(twopip_twopim.M(),weight); TwoPipTwoPimDalitz->Fill(pip1pim1p.M2(),pip2pim2p.M2(),weight); if (pip1pim1p.M2()>4.&&pip2pim2p.M2()>4.){ KShortKShort_baryon_cut->Fill(twopip_twopim.M(),weight); } KShortKShort_vs_E->Fill(beam_kf.E(),twopip_twopim.M(),weight); KShortKShort_vs_t->Fill(-t_mandelstam,twopip_twopim.M(),weight); } DLorentzVector pip1pim2=final_kf[PiPlus][0]+final_kf[PiMinus][1]; DLorentzVector pip2pim1=final_kf[PiPlus][1]+final_kf[PiMinus][0]; PipPimMass_vs_PipPimMass->Fill(pip1pim2.M(),pip2pim1.M(),weight); double pip1pim2_mass=pip1pim2.M(); double pip2pim1_mass=pip2pim1.M(); if (fabs(pip1pim2_mass-0.75)<1. && fabs(pip2pim1_mass-0.75)<1.){ RhoRho->Fill(twopip_twopim.M(),weight); } DLorentzVector pip1pim2p=pip1pim2+final_kf[Proton][0]; DLorentzVector pip2pim1p=pip2pim1+final_kf[Proton][0]; if (KSHORT_CUT(pip1pim2.M()) && KSHORT_CUT(pip2pim1.M())){ KShortKShort->Fill(twopip_twopim.M(),weight); TwoPipTwoPimDalitz->Fill(pip1pim2p.M2(),pip2pim1p.M2(),weight); if (pip1pim2p.M2()>4.&&pip2pim1p.M2()>4.){ KShortKShort_baryon_cut->Fill(twopip_twopim.M(),weight); KShortKShort_vs_E->Fill(beam_kf.E(),twopip_twopim.M(),weight); KShortKShort_vs_t->Fill(-t_mandelstam,twopip_twopim.M(),weight); } } PipPimMass_2pip2pim->Fill(pip1pim2.M(),weight); PipPimMass_2pip2pim->Fill(pip2pim1.M(),weight); } void JEventProcessor_multiphoton::TwoPipTwoPim1GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector twopip_twopim_gam=final_kf[PiMinus][0]+final_kf[PiMinus][1] +final_kf[PiPlus][0]+final_kf[PiPlus][1]+final_kf[Gamma][0]; TwoPipTwoPim1GammaMass->Fill(twopip_twopim_gam.M(),weight); EShower_2pip2pim->Fill(final_kf[Gamma][0].E(),weight); DLorentzVector pip1pim1=final_kf[PiPlus][0]+final_kf[PiMinus][0]; DLorentzVector pip1pim1_gam=pip1pim1+final_kf[Gamma][0]; PipPim1GammaMass_4pi->Fill(pip1pim1_gam.M(),weight); if (pip1pim1.M()>0.6 && pip1pim1.M()<0.85){ RhoGammaMass_4pi->Fill(pip1pim1_gam.M(),weight); } if (ETA_CUT(pip1pim1_gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pig->Fill(twopip_twopim_gam.M(),weight); } if (ETAPRIME_CUT(pip1pim1_gam.M(),ETAPRIME_CUT_VALUE)){ PipPimEtaPrimeMass_4pig->Fill(twopip_twopim_gam.M(),weight); } DLorentzVector pip2pim2=final_kf[PiPlus][1]+final_kf[PiMinus][1]; DLorentzVector pip2pim2_gam=pip2pim2+final_kf[Gamma][0]; if (pip2pim2.M()>0.6 && pip2pim2.M()<0.85){ RhoGammaMass_4pi->Fill(pip2pim2_gam.M(),weight); } PipPim1GammaMass_4pi->Fill(pip2pim2_gam.M(),weight); if (ETA_CUT(pip2pim2_gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pig->Fill(twopip_twopim_gam.M(),weight); } if (ETAPRIME_CUT(pip2pim2_gam.M(),ETAPRIME_CUT_VALUE)){ PipPimEtaPrimeMass_4pig->Fill(twopip_twopim_gam.M(),weight); } PipPimMass_vs_PipPimMass_1g->Fill(pip1pim1.M(),pip2pim2.M(),weight); if (KSHORT_CUT(pip1pim1.M())&&KSHORT_CUT(pip2pim2.M())){ DLorentzVector ksks=pip1pim1+pip2pim2; KShortKShort_1g->Fill(ksks.M(),weight); } DLorentzVector pip1pim2=final_kf[PiPlus][0]+final_kf[PiMinus][1]; DLorentzVector pip1pim2_gam=pip1pim2+final_kf[Gamma][0]; PipPim1GammaMass_4pi->Fill(pip1pim2_gam.M(),weight); if (pip1pim2.M()>0.6 && pip1pim2.M()<0.85){ RhoGammaMass_4pi->Fill(pip1pim2_gam.M(),weight); } if (ETA_CUT(pip1pim2_gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pig->Fill(twopip_twopim_gam.M(),weight); } if (ETAPRIME_CUT(pip1pim2_gam.M(),ETAPRIME_CUT_VALUE)){ PipPimEtaPrimeMass_4pig->Fill(twopip_twopim_gam.M(),weight); } DLorentzVector pip2pim1=final_kf[PiPlus][1]+final_kf[PiMinus][0]; DLorentzVector pip2pim1_gam=pip2pim1+final_kf[Gamma][0]; PipPim1GammaMass_4pi->Fill(pip2pim1_gam.M(),weight); if (pip2pim1.M()>0.6 && pip2pim1.M()<0.85){ RhoGammaMass_4pi->Fill(pip2pim1_gam.M(),weight); } if (ETA_CUT(pip2pim1_gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pig->Fill(twopip_twopim_gam.M(),weight); } if (ETAPRIME_CUT(pip2pim1_gam.M(),ETAPRIME_CUT_VALUE)){ PipPimEtaPrimeMass_4pig->Fill(twopip_twopim_gam.M(),weight); } PipPimMass_vs_PipPimMass_1g->Fill(pip1pim2.M(),pip2pim1.M(),weight); if (KSHORT_CUT(pip1pim2.M())&&KSHORT_CUT(pip2pim1.M())){ DLorentzVector ksks=pip2pim1+pip1pim2; KShortKShort_1g->Fill(ksks.M(),weight); } } void JEventProcessor_multiphoton::TwoPipTwoPim2GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector twogam=final_kf[Gamma][0]+final_kf[Gamma][1]; TwoGammaMass_4pi->Fill(twogam.M(),weight); DLorentzVector pip1pim1=final_kf[PiPlus][0]+final_kf[PiMinus][0]; DLorentzVector pip1pim1_2gam=pip1pim1+twogam; DLorentzVector pip2pim2=final_kf[PiPlus][1]+final_kf[PiMinus][1]; DLorentzVector pip2pim2_2gam=pip2pim2+twogam; DLorentzVector twopip_twopim_2gam=pip1pim1+pip2pim2+twogam; double twopip_twopim_twogam_mass=twopip_twopim_2gam.M(); TwoPipTwoPim2GammaMass->Fill(twopip_twopim_twogam_mass,weight); PipPim2GammaMass_4pi->Fill(pip1pim1_2gam.M(),weight); if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ PipPimPi0Mass_4pi->Fill(pip1pim1_2gam.M(),weight); if (ETA_CUT(pip1pim1_2gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_Eta_to_3pi->Fill(twopip_twopim_twogam_mass,weight); } if (OMEGA_CUT(pip1pim1_2gam.M())){ DLorentzVector pipomega=pip1pim1_2gam+final_kf[PiPlus][1]; DLorentzVector pimomega=pip1pim1_2gam+final_kf[PiMinus][1]; OmegaPiDalitz_2pip2pim->Fill(pipomega.M2(),pimomega.M2(),weight); if (pipomega.M2()>1.&&pipomega.M2()<2.){ B1Pim->Fill(twopip_twopim_twogam_mass,weight); } if (pimomega.M2()>1.&&pimomega.M2()<2.){ B1Pip->Fill(twopip_twopim_twogam_mass,weight); } } } if (ETA_CUT(twogam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pi->Fill(pip1pim1_2gam.M(),weight); if (ETAPRIME_CUT(pip1pim1_2gam.M(),ETAPRIME_CUT_VALUE)){ DLorentzVector pip1pim12gpim2=pip1pim1_2gam+final_kf[PiMinus][1]; DLorentzVector pip1pim12gpip2=pip1pim1_2gam+final_kf[PiPlus][1]; PipPimEtaPrimeDalitz->Fill(pip1pim12gpim2.M2(),pip1pim12gpip2.M2(),weight); } } PipPim2GammaMass_4pi->Fill(pip2pim2_2gam.M(),weight); if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ PipPimPi0Mass_4pi->Fill(pip2pim2_2gam.M(),weight); if (ETA_CUT(pip2pim2_2gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_Eta_to_3pi->Fill(twopip_twopim_twogam_mass,weight); } if (OMEGA_CUT(pip1pim1_2gam.M())){ DLorentzVector pipomega=pip2pim2_2gam+final_kf[PiPlus][0]; DLorentzVector pimomega=pip2pim2_2gam+final_kf[PiMinus][0]; OmegaPiDalitz_2pip2pim->Fill(pipomega.M2(),pimomega.M2()); } } if (ETA_CUT(twogam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pi->Fill(pip2pim2_2gam.M(),weight); if (ETAPRIME_CUT(pip2pim2_2gam.M(),ETAPRIME_CUT_VALUE)){ DLorentzVector pip2pim22gpim1=pip2pim2_2gam+final_kf[PiMinus][0]; DLorentzVector pip2pim22gpip1=pip1pim1_2gam+final_kf[PiPlus][0]; PipPimEtaPrimeDalitz->Fill(pip2pim22gpim1.M2(),pip2pim22gpip1.M2(),weight); } } PipPimMass_vs_PipPimMass_2g->Fill(pip1pim1.M(),pip2pim2.M(),weight); if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ PipPimMass_vs_PipPimMass_pi0->Fill(pip1pim1.M(),pip2pim2.M(),weight); } if (ETA_CUT(twogam.M(),ETA_CUT_VALUE)){ PipPimMass_vs_PipPimMass_eta->Fill(pip1pim1.M(),pip2pim2.M(),weight); TwoPipTwoPimEta->Fill(twopip_twopim_twogam_mass,weight); } if(KSHORT_CUT(pip1pim1.M())&&KSHORT_CUT(pip2pim2.M())){ if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ DLorentzVector twopiptwopim=pip2pim2+pip1pim1; KShortKShortWithPi0->Fill(twopiptwopim.M(),weight); KShortKShortPi0->Fill(twopip_twopim_twogam_mass,weight); } } DLorentzVector pip1pim2=final_kf[PiPlus][0]+final_kf[PiMinus][1]; DLorentzVector pip1pim2_2gam=pip1pim2+twogam; PipPim2GammaMass_4pi->Fill(pip1pim2_2gam.M(),weight); if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ PipPimPi0Mass_4pi->Fill(pip1pim2_2gam.M(),weight); if (ETA_CUT(pip1pim2_2gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_Eta_to_3pi->Fill(twopip_twopim_twogam_mass,weight); } if (OMEGA_CUT(pip1pim1_2gam.M())){ DLorentzVector pipomega=pip1pim2_2gam+final_kf[PiPlus][1]; DLorentzVector pimomega=pip1pim2_2gam+final_kf[PiMinus][0]; OmegaPiDalitz_2pip2pim->Fill(pipomega.M2(),pimomega.M2()); } } if (ETA_CUT(twogam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pi->Fill(pip1pim2_2gam.M(),weight); if (ETAPRIME_CUT(pip1pim2_2gam.M(),ETAPRIME_CUT_VALUE)){ DLorentzVector pip1pim22gpim1=pip1pim2_2gam+final_kf[PiMinus][0]; DLorentzVector pip1pim22gpip2=pip1pim1_2gam+final_kf[PiPlus][1]; PipPimEtaPrimeDalitz->Fill(pip1pim22gpim1.M2(),pip1pim22gpip2.M2(),weight); PipPimEtaPrimeMass_2pip2pim->Fill(twopip_twopim_twogam_mass,weight); } } DLorentzVector pip2pim1=final_kf[PiPlus][1]+final_kf[PiMinus][0]; DLorentzVector pip2pim1_2gam=pip2pim1+twogam; PipPim2GammaMass_4pi->Fill(pip2pim1_2gam.M(),weight); if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ PipPimPi0Mass_4pi->Fill(pip2pim1_2gam.M(),weight); if (ETA_CUT(pip2pim1_2gam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_Eta_to_3pi->Fill(twopip_twopim_twogam_mass,weight); } if (OMEGA_CUT(pip1pim1_2gam.M())){ DLorentzVector pipomega=pip2pim1_2gam+final_kf[PiPlus][0]; DLorentzVector pimomega=pip2pim1_2gam+final_kf[PiMinus][1]; OmegaPiDalitz_2pip2pim->Fill(pipomega.M2(),pimomega.M2()); } } if (ETA_CUT(twogam.M(),ETA_CUT_VALUE)){ PipPimEtaMass_4pi->Fill(pip2pim1_2gam.M(),weight); if (ETAPRIME_CUT(pip2pim1_2gam.M(),ETAPRIME_CUT_VALUE)){ DLorentzVector pip2pim12gpim2=pip1pim1_2gam+final_kf[PiMinus][1]; DLorentzVector pip2pim12gpip1=pip1pim1_2gam+final_kf[PiPlus][0]; PipPimEtaPrimeDalitz->Fill(pip2pim12gpim2.M2(),pip2pim12gpip1.M2(),weight); PipPimEtaPrimeMass_2pip2pim->Fill(twopip_twopim_twogam_mass,weight); } } PipPimMass_vs_PipPimMass_2g->Fill(pip1pim2.M(),pip2pim1.M(),weight); if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ PipPimMass_vs_PipPimMass_pi0->Fill(pip1pim2.M(),pip2pim1.M(),weight); } if (ETA_CUT(twogam.M(),ETA_CUT_VALUE)){ PipPimMass_vs_PipPimMass_eta->Fill(pip1pim2.M(),pip2pim1.M(),weight); TwoPipTwoPimEta->Fill(twopip_twopim_twogam_mass,weight); } if(KSHORT_CUT(pip1pim2.M())&&KSHORT_CUT(pip2pim1.M())){ if (PI0_CUT(twogam.M(),PI0_CUT_VALUE)){ DLorentzVector twopiptwopim=pip2pim1+pip1pim2; KShortKShortWithPi0->Fill(twopiptwopim.M(),weight); KShortKShortPi0->Fill(twopip_twopim_twogam_mass,weight); } } } void JEventProcessor_multiphoton::TwoPipTwoPim3GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight) const{ DLorentzVector pippim1=final_kf[PiMinus][0]+final_kf[PiPlus][0]; DLorentzVector pippim2=final_kf[PiMinus][1]+final_kf[PiPlus][1]; DLorentzVector pippim3=final_kf[PiMinus][0]+final_kf[PiPlus][1]; DLorentzVector pippim4=final_kf[PiMinus][1]+final_kf[PiPlus][0]; DLorentzVector pair1=final_kf[Gamma][0]+final_kf[Gamma][1]; DLorentzVector pair2=final_kf[Gamma][0]+final_kf[Gamma][2]; DLorentzVector pair3=final_kf[Gamma][1]+final_kf[Gamma][2]; DLorentzVector threegam=pair1+final_kf[Gamma][2]; DLorentzVector threegam_2pip_2pim=pippim1+pippim2+threegam; TwoPipTwoPim3GammaMass->Fill(threegam_2pip_2pim.M(),weight); ThreeGamma_2pip2pim->Fill(threegam.M(),weight); TwoGamma_2pip2pim3g->Fill(pair1.M(),weight); DLorentzVector pippim1_2g=pippim1+pair1; DLorentzVector pippim2_2g=pippim2+pair1; DLorentzVector pippim3_2g=pippim3+pair1; DLorentzVector pippim4_2g=pippim4+pair1; bool pi0_other_combos_cut=false; pi0_other_combos_cut|=PI0_CUT(pair2.M(),PI0_CUT_VALUE); pi0_other_combos_cut|=ETA_CUT(pair2.M(),ETA_CUT_VALUE); pi0_other_combos_cut|=PI0_CUT(pair3.M(),PI0_CUT_VALUE); pi0_other_combos_cut|=ETA_CUT(pair3.M(),ETA_CUT_VALUE); if (pi0_other_combos_cut==false){ if (PI0_CUT(pair1.M(),PI0_CUT_VALUE)){ Pi0Gamma_2pip2pim->Fill(threegam.M(),weight); if (OMEGA_CUT(threegam.M())){ PipPimMass_vs_PipPimMass_with_omega->Fill(pippim1.M(),pippim2.M(),weight); PipPimMass_vs_PipPimMass_with_omega->Fill(pippim3.M(),pippim4.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim1_2g.M(),weight); DLorentzVector pippim2_1g=pippim2+final_kf[Gamma][2]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim2_1g.M(),pippim1_2g.M(),weight); if (OMEGA_CUT(pippim1_2g.M()) &&ETA_CUT(pippim2_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim2_2g.M(),weight); DLorentzVector pippim1_1g=pippim1+final_kf[Gamma][2]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim1_1g.M(),pippim2_2g.M(),weight); if (OMEGA_CUT(pippim2_2g.M()) &&ETA_CUT(pippim1_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim3_2g.M(),weight); DLorentzVector pippim4_1g=pippim4+final_kf[Gamma][2]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim4_1g.M(),pippim3_2g.M(),weight); if (OMEGA_CUT(pippim3_2g.M()) &&ETA_CUT(pippim4_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim4_2g.M(),weight); DLorentzVector pippim3_1g=pippim3+final_kf[Gamma][2]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim3_1g.M(),pippim4_2g.M(),weight); if (OMEGA_CUT(pippim4_2g.M()) &&ETA_CUT(pippim3_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } } if (ETA_CUT(pair1.M(),ETA_CUT_VALUE)){ EtaGamma_2pip2pim->Fill(threegam.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim1_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim2_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim3_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim4_2g.M(),weight); } } TwoGamma_2pip2pim3g->Fill(pair2.M(),weight); pippim1_2g=pippim1+pair2; pippim2_2g=pippim2+pair2; pippim3_2g=pippim3+pair2; pippim4_2g=pippim4+pair2; pi0_other_combos_cut=false; pi0_other_combos_cut|=PI0_CUT(pair1.M(),PI0_CUT_VALUE); pi0_other_combos_cut|=ETA_CUT(pair1.M(),ETA_CUT_VALUE); pi0_other_combos_cut|=PI0_CUT(pair3.M(),PI0_CUT_VALUE); pi0_other_combos_cut|=ETA_CUT(pair3.M(),ETA_CUT_VALUE); if (pi0_other_combos_cut==false){ if (PI0_CUT(pair2.M(),PI0_CUT_VALUE)){ Pi0Gamma_2pip2pim->Fill(threegam.M(),weight); if (OMEGA_CUT(threegam.M())){ PipPimMass_vs_PipPimMass_with_omega->Fill(pippim1.M(),pippim2.M(),weight); PipPimMass_vs_PipPimMass_with_omega->Fill(pippim3.M(),pippim4.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim1_2g.M(),weight); DLorentzVector pippim2_1g=pippim2+final_kf[Gamma][1]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim2_1g.M(),pippim1_2g.M(),weight); if (OMEGA_CUT(pippim1_2g.M()) &&ETA_CUT(pippim2_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim2_2g.M(),weight); DLorentzVector pippim1_1g=pippim1+final_kf[Gamma][1]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim1_1g.M(),pippim2_2g.M(),weight); if (OMEGA_CUT(pippim2_2g.M()) &&ETA_CUT(pippim1_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim3_2g.M(),weight); DLorentzVector pippim4_1g=pippim4+final_kf[Gamma][1]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim4_1g.M(),pippim3_2g.M(),weight); if (OMEGA_CUT(pippim3_2g.M()) &&ETA_CUT(pippim4_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } PipPimPi0Mass_4pi3g->Fill(pippim4_2g.M(),weight); DLorentzVector pippim3_1g=pippim3+final_kf[Gamma][1]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim3_1g.M(),pippim4_2g.M(),weight); if (OMEGA_CUT(pippim4_2g.M()) &&ETA_CUT(pippim3_1g.M(),ETA_CUT_VALUE)){ OmegaEta_2pip2pim3g->Fill(threegam_2pip_2pim.M(),weight); } } if (ETA_CUT(pair2.M(),ETA_CUT_VALUE)){ EtaGamma_2pip2pim->Fill(threegam.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim1_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim2_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim3_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim4_2g.M(),weight); } } TwoGamma_2pip2pim3g->Fill(pair3.M(),weight); pippim1_2g=pippim1+pair3; pippim2_2g=pippim2+pair3; pippim3_2g=pippim3+pair3; pippim4_2g=pippim4+pair3; pi0_other_combos_cut=false; pi0_other_combos_cut|=PI0_CUT(pair1.M(),PI0_CUT_VALUE); pi0_other_combos_cut|=ETA_CUT(pair1.M(),ETA_CUT_VALUE); pi0_other_combos_cut|=PI0_CUT(pair2.M(),PI0_CUT_VALUE); pi0_other_combos_cut|=ETA_CUT(pair2.M(),ETA_CUT_VALUE); if (pi0_other_combos_cut==false){ if (PI0_CUT(pair3.M(),PI0_CUT_VALUE)){ Pi0Gamma_2pip2pim->Fill(threegam.M(),weight); PipPimPi0Mass_4pi3g->Fill(pippim1_2g.M(),weight); DLorentzVector pippim2_1g=pippim2+final_kf[Gamma][0]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim2_1g.M(),pippim1_2g.M(),weight); PipPimPi0Mass_4pi3g->Fill(pippim2_2g.M(),weight); DLorentzVector pippim1_1g=pippim1+final_kf[Gamma][0]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim1_1g.M(),pippim2_2g.M(),weight); PipPimPi0Mass_4pi3g->Fill(pippim3_2g.M(),weight); DLorentzVector pippim4_1g=pippim4+final_kf[Gamma][0]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim4_1g.M(),pippim3_2g.M(),weight); PipPimPi0Mass_4pi3g->Fill(pippim4_2g.M(),weight); DLorentzVector pippim3_1g=pippim3+final_kf[Gamma][0]; PipPimPi0_vs_PipPim1Gamma->Fill(pippim3_1g.M(),pippim4_2g.M(),weight); } if (ETA_CUT(pair3.M(),ETA_CUT_VALUE)){ EtaGamma_2pip2pim->Fill(threegam.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim1_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim2_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim3_2g.M(),weight); PipPimEtaMass_4pi3g->Fill(pippim4_2g.M(),weight); } } } void JEventProcessor_multiphoton::TwoPipTwoPim4GammaAnalysis(double unused_energy,const DLorentzVector &beam_kf, map>&final_kf, double weight){ DLorentzVector pippim3=final_kf[PiMinus][0]+final_kf[PiPlus][1]; DLorentzVector pippim4=final_kf[PiMinus][1]+final_kf[PiPlus][0]; DLorentzVector fourgam=final_kf[Gamma][0]+final_kf[Gamma][1] +final_kf[Gamma][2]+final_kf[Gamma][3]; double fourgam_mass=fourgam.M(); DLorentzVector fourpion=final_kf[PiMinus][0]+final_kf[PiPlus][0] +final_kf[PiMinus][1]+final_kf[PiPlus][1]; DLorentzVector meson=fourpion+fourgam; double meson_mass=meson.M(); TwoPipTwoPim4GammaMass->Fill(meson_mass,weight); MakeMesonPairs(final_kf[Gamma],weight,FourGamma2d_2pip2pim); vector>PionPairGroups; PionPairGroups.push_back(make_pair(final_kf[PiMinus][0]+final_kf[PiPlus][0], final_kf[PiMinus][1]+final_kf[PiPlus][1])); PionPairGroups.push_back(make_pair(final_kf[PiMinus][1]+final_kf[PiPlus][0], final_kf[PiMinus][0]+final_kf[PiPlus][1])); if (particle_pairs[Pi0Pi0_].size()==1){ TwoPipTwoPim2Pi0->Fill(meson_mass,weight); TwoPi0_2pip2pim->Fill(fourgam_mass,weight); DLorentzVector pi0_1=particle_pairs[Pi0Pi0_][0].first; DLorentzVector pi0_2=particle_pairs[Pi0Pi0_][0].second; for (unsigned int i=0;iFill(pip_pim_1_pi0_1_mass,pip_pim_2_pi0_2_mass, weight); if (KSHORT_CUT(pippim1_mass)&&KSHORT_CUT(pippim2_mass)){ KsPi0_vs_KsPi0->Fill(pip_pim_1_pi0_1_mass,pip_pim_2_pi0_2_mass, weight); } if (OMEGA_CUT(pip_pim_1_pi0_1_mass)&&OMEGA_CUT(pip_pim_2_pi0_2_mass)){ OmegaOmega->Fill(meson_mass,weight); } if (OMEGA_CUT(pip_pim_1_pi0_1_mass) &&ETA_CUT(pip_pim_2_pi0_2_mass,ETA_CUT_VALUE)){ EtaOmega->Fill(meson_mass,weight); FillGJHisto(weight,beam_kf,meson,pip_pim_2_pi0_2, EtaCosTheta_EtaOmega_2pip2pim4g); } if (ETA_CUT(pip_pim_1_pi0_1_mass,ETA_CUT_VALUE) &&OMEGA_CUT(pip_pim_2_pi0_2_mass)){ EtaOmega->Fill(meson_mass,weight); FillGJHisto(weight,beam_kf,meson,pip_pim_1_pi0_1, EtaCosTheta_EtaOmega_2pip2pim4g); } DLorentzVector pip_pim_1_pi0_2=pippim1+pi0_2; DLorentzVector pip_pim_2_pi0_1=pippim2+pi0_1; double pip_pim_1_pi0_2_mass=pip_pim_1_pi0_2.M(); double pip_pim_2_pi0_1_mass=pip_pim_2_pi0_1.M(); PipPimPi0_vs_PipPimPi0->Fill(pip_pim_1_pi0_2_mass,pip_pim_2_pi0_1_mass, weight); if (KSHORT_CUT(pippim1_mass)&&KSHORT_CUT(pippim2_mass)){ KsPi0_vs_KsPi0->Fill(pip_pim_1_pi0_2_mass,pip_pim_2_pi0_1_mass, weight); } if (OMEGA_CUT(pip_pim_1_pi0_2_mass)&&OMEGA_CUT(pip_pim_2_pi0_1_mass)){ OmegaOmega->Fill(meson_mass,weight); } if (OMEGA_CUT(pip_pim_1_pi0_2_mass) &&ETA_CUT(pip_pim_2_pi0_1_mass,ETA_CUT_VALUE)){ EtaOmega->Fill(meson_mass,weight); FillGJHisto(weight,beam_kf,meson,pip_pim_2_pi0_1, EtaCosTheta_EtaOmega_2pip2pim4g); } if (ETA_CUT(pip_pim_1_pi0_2_mass,ETA_CUT_VALUE) &&OMEGA_CUT(pip_pim_2_pi0_1_mass)){ EtaOmega->Fill(meson_mass,weight); FillGJHisto(weight,beam_kf,meson,pip_pim_1_pi0_2, EtaCosTheta_EtaOmega_2pip2pim4g); } } } if (particle_pairs[Pi0Eta_].size()==1){ EtaPi0_2pip2pim->Fill(fourgam_mass,weight); DLorentzVector pi0=particle_pairs[Pi0Eta_][0].first; DLorentzVector eta=particle_pairs[Pi0Eta_][0].second; for (unsigned int i=0;iFill(pippim1pi0_mass,pippim2eta_mass,weight); if (OMEGA_CUT(pippim1pi0_mass) &&ETAPRIME_CUT(pippim2eta_mass,ETAPRIME_CUT_VALUE)){ EtaPrimeOmegaMass->Fill(meson_mass,weight); } DLorentzVector pippim1eta=pippim1+eta; DLorentzVector pippim2pi0=pippim2+pi0; double pippim2pi0_mass=pippim2pi0.M(); double pippim1eta_mass=pippim1eta.M(); PipPimEta_vs_PipPimPi0->Fill(pippim2pi0_mass,pippim1eta_mass,weight); if (OMEGA_CUT(pippim2pi0_mass) &&ETAPRIME_CUT(pippim1eta_mass,ETAPRIME_CUT_VALUE)){ EtaPrimeOmegaMass->Fill(meson_mass,weight); } } } if (particle_pairs[EtaEta_].size()==1){ TwoEta_2pip2pim->Fill(fourgam_mass,weight); DLorentzVector eta_1=particle_pairs[EtaEta_][0].first; DLorentzVector eta_2=particle_pairs[EtaEta_][0].second; for (unsigned int i=0;iFill(pip_pim_1_eta_1_mass,pip_pim_2_eta_2_mass,weight); DLorentzVector pip_pim_1_eta_2=pippim1+eta_2; DLorentzVector pip_pim_2_eta_1=pippim2+eta_1; double pip_pim_1_eta_2_mass=pip_pim_1_eta_2.M(); double pip_pim_2_eta_1_mass=pip_pim_2_eta_1.M(); PipPimEta_vs_PipPimEta->Fill(pip_pim_2_eta_1_mass,pip_pim_1_eta_2_mass,weight); } } // sidebands if (bg_particle_pairs[Pi0Pi0_].size()==1){ double bgweight=bg_weights[Pi0Pi0_][0]; TwoPi0_2pip2pim_bg->Fill(fourgam_mass,bgweight); DLorentzVector pi0_1=bg_particle_pairs[Pi0Pi0_][0].first; DLorentzVector pi0_2=bg_particle_pairs[Pi0Pi0_][0].second; for (unsigned int i=0;iFill(pip_pim_1_pi0_1_mass,pip_pim_2_pi0_2_mass, bgweight); if (KSHORT_CUT(pippim1_mass)&&KSHORT_CUT(pippim2_mass)){ KsPi0_vs_KsPi0_bg->Fill(pip_pim_1_pi0_1_mass,pip_pim_2_pi0_2_mass, bgweight); } if (OMEGA_CUT(pip_pim_1_pi0_1_mass)&&OMEGA_CUT(pip_pim_2_pi0_2_mass)){ OmegaOmega_bg->Fill(meson_mass,bgweight); } if (OMEGA_CUT(pip_pim_1_pi0_1_mass) &&ETA_CUT(pip_pim_2_pi0_2_mass,ETA_CUT_VALUE)){ EtaOmega_bg->Fill(meson_mass,bgweight); FillGJHisto(bgweight,beam_kf,meson,pip_pim_2_pi0_2, EtaCosTheta_EtaOmega_2pip2pim4g_bg); } if (ETA_CUT(pip_pim_1_pi0_1_mass,ETA_CUT_VALUE) &&OMEGA_CUT(pip_pim_2_pi0_2_mass)){ EtaOmega_bg->Fill(meson_mass,bgweight); FillGJHisto(bgweight,beam_kf,meson,pip_pim_1_pi0_1, EtaCosTheta_EtaOmega_2pip2pim4g_bg); } DLorentzVector pip_pim_1_pi0_2=pippim1+pi0_2; DLorentzVector pip_pim_2_pi0_1=pippim2+pi0_1; double pip_pim_1_pi0_2_mass=pip_pim_1_pi0_2.M(); double pip_pim_2_pi0_1_mass=pip_pim_2_pi0_1.M(); PipPimPi0_vs_PipPimPi0_bg->Fill(pip_pim_1_pi0_2_mass,pip_pim_2_pi0_1_mass, bgweight); if (KSHORT_CUT(pippim1_mass)&&KSHORT_CUT(pippim2_mass)){ KsPi0_vs_KsPi0_bg->Fill(pip_pim_1_pi0_2_mass,pip_pim_2_pi0_1_mass, bgweight); } if (OMEGA_CUT(pip_pim_1_pi0_2_mass)&&OMEGA_CUT(pip_pim_2_pi0_1_mass)){ OmegaOmega_bg->Fill(meson_mass,bgweight); } if (OMEGA_CUT(pip_pim_1_pi0_2_mass) &&ETA_CUT(pip_pim_2_pi0_1_mass,ETA_CUT_VALUE)){ EtaOmega_bg->Fill(meson_mass,bgweight); FillGJHisto(bgweight,beam_kf,meson,pip_pim_2_pi0_1, EtaCosTheta_EtaOmega_2pip2pim4g_bg); } if (ETA_CUT(pip_pim_1_pi0_2_mass,ETA_CUT_VALUE) &&OMEGA_CUT(pip_pim_2_pi0_1_mass)){ EtaOmega_bg->Fill(meson_mass,bgweight); FillGJHisto(bgweight,beam_kf,meson,pip_pim_1_pi0_2, EtaCosTheta_EtaOmega_2pip2pim4g_bg); } } } if (bg_particle_pairs[Pi0Eta_].size()==1){ double bgweight=bg_weights[Pi0Eta_][0]; EtaPi0_2pip2pim_bg->Fill(fourgam_mass,bgweight); DLorentzVector pi0=bg_particle_pairs[Pi0Eta_][0].first; DLorentzVector eta=bg_particle_pairs[Pi0Eta_][0].second; for (unsigned int i=0;iFill(pippim1pi0_mass,pippim2eta_mass,bgweight); if (OMEGA_CUT(pippim1pi0_mass) &&ETAPRIME_CUT(pippim2eta_mass,ETAPRIME_CUT_VALUE)){ EtaPrimeOmegaMass_bg->Fill(meson_mass,bgweight); } DLorentzVector pippim1eta=pippim1+eta; DLorentzVector pippim2pi0=pippim2+pi0; double pippim2pi0_mass=pippim2pi0.M(); double pippim1eta_mass=pippim1eta.M(); PipPimEta_vs_PipPimPi0->Fill(pippim2pi0_mass,pippim1eta_mass,bgweight); if (OMEGA_CUT(pippim2pi0_mass) &&ETAPRIME_CUT(pippim1eta_mass,ETAPRIME_CUT_VALUE)){ EtaPrimeOmegaMass_bg->Fill(meson_mass,bgweight); } } } if (bg_particle_pairs[EtaEta_].size()==1){ double bgweight=bg_weights[EtaEta_][0]; TwoEta_2pip2pim_bg->Fill(fourgam_mass,bgweight); DLorentzVector eta_1=bg_particle_pairs[EtaEta_][0].first; DLorentzVector eta_2=bg_particle_pairs[EtaEta_][0].second; for (unsigned int i=0;iFill(pip_pim_1_eta_1_mass,pip_pim_2_eta_2_mass,bgweight); DLorentzVector pip_pim_1_eta_2=pippim1+eta_2; DLorentzVector pip_pim_2_eta_1=pippim2+eta_1; double pip_pim_1_eta_2_mass=pip_pim_1_eta_2.M(); double pip_pim_2_eta_1_mass=pip_pim_2_eta_1.M(); PipPimEta_vs_PipPimEta_bg->Fill(pip_pim_2_eta_1_mass,pip_pim_1_eta_2_mass,bgweight); } } } void JEventProcessor_multiphoton::MakeTriplets() { vector>pairs; pairs.push_back(make_pair(0,1)); pairs.push_back(make_pair(2,3)); pairs.push_back(make_pair(4,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,1)); pairs.push_back(make_pair(2,4)); pairs.push_back(make_pair(3,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,1)); pairs.push_back(make_pair(2,5)); pairs.push_back(make_pair(3,4)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,2)); pairs.push_back(make_pair(1,3)); pairs.push_back(make_pair(4,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,2)); pairs.push_back(make_pair(1,4)); pairs.push_back(make_pair(5,3)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,2)); pairs.push_back(make_pair(1,5)); pairs.push_back(make_pair(3,4)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,3)); pairs.push_back(make_pair(2,1)); pairs.push_back(make_pair(4,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,3)); pairs.push_back(make_pair(2,4)); pairs.push_back(make_pair(1,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,3)); pairs.push_back(make_pair(2,5)); pairs.push_back(make_pair(4,1)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,4)); pairs.push_back(make_pair(1,3)); pairs.push_back(make_pair(2,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,4)); pairs.push_back(make_pair(1,5)); pairs.push_back(make_pair(2,3)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,4)); pairs.push_back(make_pair(1,2)); pairs.push_back(make_pair(3,5)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,5)); pairs.push_back(make_pair(1,3)); pairs.push_back(make_pair(4,2)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,5)); pairs.push_back(make_pair(1,4)); pairs.push_back(make_pair(3,2)); triplets.push_back(pairs); pairs.clear(); pairs.push_back(make_pair(0,5)); pairs.push_back(make_pair(1,2)); pairs.push_back(make_pair(4,3)); triplets.push_back(pairs); } void JEventProcessor_multiphoton::MakePipPimGroups(vector&pips_kf, vector&pims_kf, vector>>&groups){ vector>group; // 11 22 33 group.push_back(make_pair(pips_kf[0],pims_kf[0])); group.push_back(make_pair(pips_kf[1],pims_kf[1])); group.push_back(make_pair(pips_kf[2],pims_kf[2])); groups.push_back(group); group.clear(); // 11 32 23 group.push_back(make_pair(pips_kf[0],pims_kf[0])); group.push_back(make_pair(pips_kf[2],pims_kf[1])); group.push_back(make_pair(pips_kf[1],pims_kf[2])); groups.push_back(group); group.clear(); // 12 21 33 group.push_back(make_pair(pips_kf[0],pims_kf[1])); group.push_back(make_pair(pips_kf[1],pims_kf[0])); group.push_back(make_pair(pips_kf[2],pims_kf[2])); groups.push_back(group); group.clear(); // 12 23 31 group.push_back(make_pair(pips_kf[0],pims_kf[1])); group.push_back(make_pair(pips_kf[1],pims_kf[2])); group.push_back(make_pair(pips_kf[2],pims_kf[0])); groups.push_back(group); group.clear(); // 13 22 31 group.push_back(make_pair(pips_kf[0],pims_kf[2])); group.push_back(make_pair(pips_kf[1],pims_kf[1])); group.push_back(make_pair(pips_kf[2],pims_kf[0])); groups.push_back(group); group.clear(); // 13 21 32 group.push_back(make_pair(pips_kf[0],pims_kf[2])); group.push_back(make_pair(pips_kf[1],pims_kf[0])); group.push_back(make_pair(pips_kf[2],pims_kf[1])); groups.push_back(group); } void JEventProcessor_multiphoton::MissingProtonAnalysis(const DLorentzVector &beam_kf, const DTrackTimeBased *proton_track, const DLorentzVector &missing_kf, map>&final_kf, double weight) const{ DLorentzVector twogam_kf=final_kf[Gamma][0]+final_kf[Gamma][1]; double twogam_mass=twogam_kf.M(); double t=(beam_kf-twogam_kf).M2(); TwoGammaMass_missingProton->Fill(twogam_mass,weight); TwoGammaMass_vs_theta_missingProton->Fill(twogam_kf.Theta()*180./M_PI, twogam_mass,weight); TwoGammaMass_vs_t_missingProton->Fill(-t, twogam_mass,weight); if (PI0_CUT(twogam_mass,PI0_CUT_VALUE)){ const DVector3 measured_momentum=proton_track->momentum(); DVector3 missing_momentum=missing_kf.Vect(); double missing_p=missing_momentum.Mag(); double dP=measured_momentum.Mag()-missing_p; double dPx=measured_momentum.x()-missing_momentum.x(); double dPy=measured_momentum.y()-missing_momentum.y(); double dPz=measured_momentum.z()-missing_momentum.z(); double dtheta=180./M_PI*(measured_momentum.Theta()-missing_momentum.Theta()); double dphi=measured_momentum.Phi()-missing_momentum.Phi(); if (dphi<-M_PI) dphi+=2.*M_PI; if (dphi>M_PI) dphi-=2.*M_PI; dphi*=180./M_PI; DeltaPOverP_vs_theta->Fill(180./M_PI*missing_momentum.Theta(), dP/missing_p,weight); DeltaPOverP_vs_P->Fill(missing_p,dP/missing_p,weight); DeltaTheta_vs_P->Fill(missing_p,dtheta,weight); DeltaPhi_vs_P->Fill(missing_p,dphi,weight); double pred_phi=180./M_PI*missing_momentum.Phi(); DeltaPx_vs_Phi->Fill(pred_phi,dPx,weight); DeltaPy_vs_Phi->Fill(pred_phi,dPy,weight); DeltaPz_vs_Phi->Fill(pred_phi,dPz,weight); } }