357 fhPdgCodes =
new TH1D(
"fhPdfCodes",
"fhPdgCodes;pdg code;#", 1000, 0, 1000);
358 fhNofElPrim =
new TH1D(
"fhNofElPrim",
"fhNofElPrim;Nof prim El;Entries", 10., -0.5, 9.5);
359 fhNofElSec =
new TH1D(
"fhNofElSec",
"fhNofElSec;Nof Sec El;Entries", 20., -0.5, 19.5);
360 fhNofElAll =
new TH1D(
"fhNofElAll",
"fhNofElAll;Nof All El;Entries", 30., -0.5, 29.5);
361 fhNofPi0_perEvent =
new TH1D(
"fhNofPi0_perEvent",
"fhNofPi0_perEvent;Nof pi0;Entries", 1000., -0.5, 999.5);
363 new TH1D(
"fhNofPi0_perEvent_cut",
"fhNofPi0_perEvent_cut (Z<10cm);Nof pi0;Entries", 800., -0.5, 799.5);
365 new TH1D(
"fhNofPi0_perEvent_cut2",
"fhNofPi0_perEvent_cut2 (motherId = -1);Nof pi0;Entries", 800., -0.5, 799.5);
367 "fhNofPi0_perEvent_cut3",
"fhNofPi0_perEvent_cut3 (conversion before 70cm);Nof pi0;Entries", 100., -0.5, 99.5);
368 fhNofEta_perEvent =
new TH1D(
"fhNofEta_perEvent",
"fhNofEta_perEvent;Nof eta;Entries", 100., -0.5, 99.5);
370 new TH1D(
"fhNofEta_perEvent_cut",
"fhNofEta_perEvent_cut (Z<4cm);Nof eta;Entries", 100., -0.5, 99.5);
372 new TH1D(
"fhNofEta_perEvent_cut2",
"fhNofEta_perEvent_cut2 (motherId = -1);Nof eta;Entries", 100., -0.5, 99.5);
373 fhPi0_z =
new TH1D(
"fhPi0_z",
"fhPi0_z;z in cm;Entries", 600., -0.5, 599.5);
374 fhPi0_z_cut =
new TH1D(
"fhPi0_z_cut",
"fhPi0_z_cut;z in cm;Entries", 600., -0.5, 599.5);
375 fhPi0_pt =
new TH1D(
"fhPi0_pt",
"fhPi0_pt;p_{t} in GeV/c;Entries", 200., 0., 10.);
377 new TH2D(
"fhPi0_pt_vs_rap",
"fhPi0_pt_vs_rap;p_{t} in GeV/c; rapidity y", 240, -2., 10., 270, -2., 7.);
378 fhPi0_theta =
new TH1D(
"fhPi0_theta",
"fhPi0_theta;emission angle #theta in deg;Entries", 180., 0., 180.);
380 new TH2D(
"fhPi0_theta_vs_rap",
"fhPi0_theta_vs_rap;theta in deg;rapidity y", 180., 0., 180., 270, -2., 7.);
381 fhEta_pt =
new TH1D(
"fhEta_pt",
"fhEta_pt;p_{t} in GeV;Entries", 200., 0., 10.);
383 new TH2D(
"fhEta_pt_vs_rap",
"fhEta_pt_vs_rap;p_{t} in GeV; rapidity y", 240, -2., 10., 270, -2., 7.);
384 fhEta_theta =
new TH1D(
"fhEta_theta",
"fhEta_theta;emission angle #theta in deg;Entries", 180., 0., 180.);
385 fhEta_theta_vs_rap =
new TH2D(
"fhEta_theta_vs_rap",
"fhEta_theta_vs_rap;emission angle #theta in deg;rapidity y",
386 180., 0., 180., 270, -2., 7.);
387 fhRho_pt =
new TH1D(
"fhRho_pt",
"fhRho_pt;p_{t} in GeV/c;Entries", 200., 0., 10.);
389 new TH2D(
"fhRho_pt_vs_rap",
"fhRho_pt_vs_rap;p_{t} in GeV/c; rapidity y", 240, -2., 10., 270, -2., 7.);
390 fhRho_theta =
new TH1D(
"fhRho_theta",
"fhRho_theta;emission angle #theta in deg;Entries", 180., 0., 180.);
391 fhRho_theta_vs_rap =
new TH2D(
"fhRho_theta_vs_rap",
"fhRho_theta_vs_rap;emission angle #theta in deg;rapidity y",
392 180., 0., 180., 270, -2., 7.);
393 fhOmega_pt =
new TH1D(
"fhOmega_pt",
"fhOmega_pt;p_{t} in GeV/c;Entries", 200., 0., 10.);
395 new TH2D(
"fhOmega_pt_vs_rap",
"fhOmega_pt_vs_rap;p_{t} in GeV; rapidity y", 240, -2., 10., 270, -2., 7.);
396 fhOmega_theta =
new TH1D(
"fhOmega_theta",
"fhOmega_theta;emission angle #theta in deg;Entries", 180., 0., 180.);
398 new TH2D(
"fhOmega_theta_vs_rap",
"fhOmega_theta_vs_rap;emission angle #theta in deg;rapidity y", 180., 0., 180.,
402 fhElectronSources =
new TH1D(
"fhElectronSources",
"fhElectronSources;Source;Entries", 6., 0., 6.);
404 "fhElectronsFromPi0_z",
"fhElectronsFromPi0_z (= pos. of gamma conversion);z [cm];Entries", 600., -0.5, 599.5);
442 fhNofTracks_mctrack =
new TH1D(
"fhNofTracks_mctrack",
"fhNofTracks_mctrack;nof;#", 1000., 0., 1000.);
444 fhNofTracks_globaltrack =
new TH1D(
"fhNofTracks_globaltrack",
"fhNofTracks_globaltrack;nof;#", 1000., 0., 1000.);
449 fhInvariantMass_test =
new TH1D(
"fhInvariant",
"fhInvariant;mass in GeV/c^{2}];#", 2000, 0., 2.);
463 fhInvariantMassReco_pi0 =
new TH1D(
"fhInvariantReco_pi0",
"fhInvariantReco_pi0;mass [GeV/c^2];#", 2000, 0., 2.);
468 fhMomentum_MCvsReco =
new TH2D(
"fhMomentum_MCvsReco",
"fhMomentum_MCvsReco;MC;Reco", 400, 0., 40., 400, 0., 40.);
470 new TH1D(
"fhMomentum_MCvsReco_diff",
"fhMomentum_MCvsReco_diff;(MC-Reco)/MC", 500, -0.01, 4.);
475 fhSearchGammas =
new TH1D(
"fhSearchGammas",
"fhSearchGammas;mass;#", 100, -0.005, 0.995);
479 fhANN_output_electrons =
new TH1D(
"fhANN_output_electrons",
"fhANN_output_electrons;ann output", 400, -2, 2.);
480 fhANN_output_electrons2 =
new TH1D(
"fhANN_output_electrons2",
"fhANN_output_electrons2;ann output", 400, -2, 2.);
482 new TH1D(
"fhANN_output_electrons_chiCut",
"fhANN_output_electrons_chiCut;ann output", 400, -2, 2.);
484 new TH2D(
"fhANN_output_electrons_vs_p",
"fhANN_output_electrons_vs_p;momentum in GeV/c; ann output", 100, 0., 10.,
486 fhANN_output_else =
new TH1D(
"fhANN_output_else",
"fhANN_output_else;ann output", 400, -2, 2.);
487 fhANN_output_else2 =
new TH1D(
"fhANN_output_else2",
"fhANN_output_else2;ann output", 400, -2, 2.);
488 fhANN_output_else_chiCut =
new TH1D(
"fhANN_output_else_chiCut",
"fhANN_output_else_chiCut;ann output", 400, -2, 2.);
489 fhANN_output_else_vs_p =
new TH2D(
"fhANN_output_else_vs_p",
"fhANN_output_else_vs_p;momentum in GeV/c; ann output",
490 100, 0., 10., 400, -2, 2.);
503 fhPi0_NDaughters =
new TH1D(
"fhPi0_NDaughters",
"fhPi0_NDaughters;number of daughers;#", 4, 0.5, 4.5);
504 fhPi0Ratio =
new TH1D(
"fhPi0Ratio",
"fhPi0Ratio; ratio;#", 1000, 0., 0.02);
505 fhPi0_mass =
new TH1D(
"fhPi0_mass",
"fhPi0_mass;mass;#", 500, 0., 0.5);
512 new TH1D(
"fhNofElectrons_4epem",
"fhNofElectrons_4epem;number of electrons per event;#", 101, -0.5, 100.5);
515 fhPi0_MC_occurence =
new TH1D(
"fhPi0_MC_occurence",
"fhPi0_MC_occurence;;#", 20, 0, 20);
536 fhPi0_MC_occurence2 =
new TH1D(
"fhPi0_MC_occurence2",
"fhPi0_MC_occurence2;;#", 20, 0, 20);
584 fhPi0_Reco_angles =
new TH1D(
"fhPi0_Reco_angles",
"fhPi0_Reco_angles;angle;#", 500, 0, 50);
586 fhPi0_Reco_chi =
new TH1D(
"fhPi0_Reco_chi",
"fhPi0_Reco_chi;chi;#", 500, 0, 500);
588 fhPi0_Reco_ndf =
new TH1D(
"fhPi0_Reco_ndf",
"fhPi0_Reco_ndf;ndf;#", 500, 0, 50);
591 new TH2D(
"fhPi0_Reco_ndf_vs_chi",
"fhPi0_Reco_ndf_vs_chi;ndf;chi", 51, -0.5, 50.5, 500, 0, 50);
594 "fhPi0_Reco_ndf_vs_startvertex",
"fhPi0_Reco_ndf_vs_startvertex;ndf;startvertex", 51, -0.5, 50.5, 101, -0.5, 100.5);
597 "fhPi0_Reco_startvertex_vs_chi",
"fhPi0_Reco_startvertex_vs_chi;startvertex;chi", 101, -0.5, 100.5, 100, 0, 100);
600 new TH2D(
"fhPi0_Reco_startvertex_vs_nofhits",
"fhPi0_Reco_startvertex_vs_nofhits;startvertex;nofhits", 101, -0.5,
601 100.5, 21, -0.5, 20.5);
604 new TH1D(
"fhPi0_noRichInd_diffPhi",
"fhPi0_noRichInd_diffPhi;phi difference;#", 150, 0, 150);
607 new TH1D(
"fhPi0_noRichInd_diffTheta",
"fhPi0_noRichInd_diffTheta;theta difference;#", 150, 0, 150);
611 new TH2D(
"fhPi0_Reco_invmass_cases",
"fhPi0_Reco_invmass_cases;cases;invmass [GeV]", 6, 0, 6, 300, 0, 3);
620 new TH2D(
"fhPi0_Reco_noRichInd_invmass_cases",
"fhPi0_Reco_noRichInd_invmass_cases;cases;invmass in GeV^{2}", 11, 0,
635 fhPi0_Reco_invmass =
new TH1D(
"fhPi0_Reco_invmass",
"fhPi0_Reco_invmass;invmass [GeV];#", 300, 0, 3);
637 fhPi0_Reco_invmass_mc =
new TH1D(
"fhPi0_Reco_invmass_mc",
"fhPi0_Reco_invmass_mc;invmass_mc [GeV];#", 300, 0, 3);
640 new TH1D(
"fhPi0_Reco_noRichInd_invmass",
"fhPi0_Reco_noRichInd_invmass;invmass_noRichInd [GeV];#", 300, 0, 3);
643 "fhPi0_Reco_noRichInd_invmass_mc;invmass_noRichInd_mc [GeV];#", 300, 0, 3);
647 new TH2D(
"fhPi0_Reco_noRichInd_ndf_vs_nofhits",
"fhPi0_Reco_noRichInd_ndf_vs_nofhits;ndf;nofhits", 31, -0.5, 30.5,
651 new TH2D(
"fhPi0_Reco_ndf_vs_nofhits",
"fhPi0_Reco_ndf_vs_nofhits;ndf;nofhits", 31, -0.5, 30.5, 21, -0.5, 20.5);
654 new TH2D(
"fhPi0_Reco_noRichInd_ndf_vs_nofhits_withChi",
"fhPi0_Reco_noRichInd_ndf_vs_nofhits_withChi;ndf;nofhits",
655 31, -0.5, 30.5, 21, -0.5, 20.5);
658 new TH2D(
"fhPi0_Reco_ndf_vs_nofhits_withChi",
"fhPi0_Reco_ndf_vs_nofhits_withChi;ndf;nofhits", 31, -0.5, 30.5, 21,
666 "fhPi0_Reco_noRichInd_chi_vs_momentum;momentum [GeV];#chi^{2} of "
668 200, 0., 10., 1000, 0., 100.);
671 "fhPi0_Reco_noRichInd_chi_vs_momentum_eFromPi0;momentum "
672 "[GeV];#chi^{2} of momentum fit",
673 200, 0., 10., 1000, 0., 100.);
676 new TH2D(
"fhPi0_Reco_noRichInd_chi_vs_momentum_eFromPi0_Target",
677 "fhPi0_Reco_noRichInd_chi_vs_momentum_eFromPi0_Target;momentum "
678 "[GeV];#chi^{2} of momentum fit",
679 200, 0., 10., 1000, 0., 100.);
682 "fhPi0_Reco_noRichInd_chi_vs_momentum_eRest;momentum "
683 "[GeV];#chi^{2} of momentum fit",
684 200, 0., 10., 1000, 0., 100.);
688 new TH2D(
"fhPi0_Reco_noRichInd_chi_vs_pt",
"fhPi0_Reco_noRichInd_chi_vs_pt;pt [GeV];#chi^{2} of momentum fit", 200,
689 0., 10., 1000, 0., 100.);
692 new TH2D(
"fhPi0_Reco_noRichInd_chi_vs_pt_eFromPi0",
693 "fhPi0_Reco_noRichInd_chi_vs_pt_eFromPi0;pt [GeV];#chi^{2} of momentum fit", 200, 0., 10., 1000, 0., 100.);
696 new TH2D(
"fhPi0_Reco_noRichInd_chi_vs_pt_eFromPi0_Target",
697 "fhPi0_Reco_noRichInd_chi_vs_pt_eFromPi0_Target;pt [GeV];#chi^{2} "
699 200, 0., 10., 1000, 0., 100.);
702 new TH2D(
"fhPi0_Reco_noRichInd_chi_vs_pt_eRest",
703 "fhPi0_Reco_noRichInd_chi_vs_pt_eRest;pt [GeV];#chi^{2} of momentum fit", 200, 0., 10., 1000, 0., 100.);
710 new TH2D(
"fhPi0_Reco_chi_vs_momentum",
"fhPi0_Reco_chi_vs_momentum;momentum [GeV];#chi^{2} of momentum fit", 200,
711 0., 10., 1000, 0., 100.);
714 "fhPi0_Reco_chi_vs_momentum_eFromPi0;momentum [GeV];#chi^{2} of "
716 200, 0., 10., 1000, 0., 100.);
719 "fhPi0_Reco_chi_vs_momentum_eFromPi0_Target;momentum "
720 "[GeV];#chi^{2} of momentum fit",
721 200, 0., 10., 1000, 0., 100.);
724 fhPi0_Reco_chi_vs_pt =
new TH2D(
"fhPi0_Reco_chi_vs_pt",
"fhPi0_Reco_chi_vs_pt;pt [GeV];#chi^{2} of momentum fit", 200,
725 0., 10., 1000, 0., 100.);
728 new TH2D(
"fhPi0_Reco_chi_vs_pt_eFromPi0",
"fhPi0_Reco_chi_vs_pt_eFromPi0;pt [GeV];#chi^{2} of momentum fit", 200,
729 0., 10., 1000, 0., 100.);
732 new TH2D(
"fhPi0_Reco_chi_vs_pt_eFromPi0_Target",
733 "fhPi0_Reco_chi_vs_pt_eFromPi0_Target;pt [GeV];#chi^{2} of momentum fit", 200, 0., 10., 1000, 0., 100.);
744 cout <<
"=======================================================================" << endl;
745 cout <<
"========== CbmAnaConversion, event No. " <<
fEventNum << endl;
746 cout <<
"=======================================================================" << endl;
787 int countPrimPart = 0;
789 int countPi0MC_cut = 0;
790 int countPi0MC_fromPrimary = 0;
791 int countPi0MC_reconstructible = 0;
793 int countEtaMC_cut = 0;
794 int countEtaMC_fromPrimary = 0;
798 Fatal(
"CbmAnaConversion::Exec",
"No PrimaryVertex array!");
830 for (
int i = 0; i < nofMcTracks; i++) {
832 if (mctrack == NULL)
continue;
838 if (mctrack->
GetMotherId() == -1) { countPrimPart++; }
841 if (TMath::Abs(mctrack->
GetPdgCode()) == 11) { countAllEl++; }
848 if (
v.Z() <= 4) { countPi0MC_cut++; }
860 if (motherId == -1) {
861 countPi0MC_fromPrimary++;
864 fhPi0_theta->Fill(momentum.Theta() * 180. / TMath::Pi());
870 if (reconstructible) countPi0MC_reconstructible++;
874 if (TMath::Abs(mctrack->
GetPdgCode()) == 221) {
876 TVector3
v, momentum;
880 if (
v.Z() <= 4) { countEtaMC_cut++; }
882 if (motherId == -1) {
883 countEtaMC_fromPrimary++;
886 fhEta_theta->Fill(momentum.Theta() * 180. / TMath::Pi());
893 || TMath::Abs(mctrack->
GetPdgCode()) == 213) {
894 TVector3
v, momentum;
901 fhRho_theta->Fill(momentum.Theta() * 180. / TMath::Pi());
908 || TMath::Abs(mctrack->
GetPdgCode()) == 3334) {
909 TVector3
v, momentum;
921 if (TMath::Abs(mctrack->
GetPdgCode()) == 11) {
927 cout <<
"CbmAnaConversion::Exec - Number of pi0 in MC sample: " << countPi0MC << endl;
928 cout <<
"CbmAnaConversion::Exec - Number of pi0 from primary: " << countPi0MC_fromPrimary << endl;
967 Int_t nofElectrons4epem = 0;
971 for (
Int_t iGTrack = 0; iGTrack < ngTracks; iGTrack++) {
973 if (NULL == gTrack)
continue;
979 if (stsInd < 0)
continue;
981 if (stsTrack == NULL)
continue;
983 if (stsMatch == NULL)
continue;
986 if (stsMcTrackId < 0)
continue;
988 if (mcTrack1 == NULL)
continue;
992 TVector3 refittedMomentum;
994 vector<CbmStsTrack> stsTracks;
996 stsTracks[0] = *stsTrack;
997 vector<CbmL1PFFitter::PFFieldRegion> vField;
998 vector<float> chiPrim;
1002 const FairTrackParam* vtxTrack = stsTracks[0].GetParamFirst();
1003 vtxTrack->Momentum(refittedMomentum);
1004 float result_chi = chiPrim[0];
1009 vector<CbmStsTrack> stsTracks_electron;
1010 stsTracks_electron.resize(1);
1011 stsTracks_electron[0] = *stsTrack;
1012 vector<CbmL1PFFitter::PFFieldRegion> vField_electron;
1013 vector<float> chiPrim_electron;
1014 vector<int> pidHypo_electron;
1015 pidHypo_electron.push_back(11);
1016 fPFFitter_electron.
Fit(stsTracks_electron, pidHypo_electron);
1019 TVector3 refittedMomentum_electron;
1020 const FairTrackParam* vtxTrack_electron = stsTracks_electron[0].GetParamFirst();
1021 vtxTrack_electron->Momentum(refittedMomentum_electron);
1022 float result_chi_electron = chiPrim_electron[0];
1023 float result_ndf_electron = stsTracks_electron[0].GetNDF();
1026 Double_t startvertexZ = vtxTrack_electron->GetZ();
1049 if (richInd < 0)
continue;
1057 if (TMath::Abs(pdg) == 11) {
1063 if (TMath::Abs(pdg) != 11) {
1072 TVector3 stsMomentumVec;
1074 Double_t stsMomentum = stsMomentumVec.Mag();
1076 TVector3 mcMomentumVec;
1078 Double_t mcMomentum = mcMomentumVec.Mag();
1082 TVector3 bothtogether;
1083 bothtogether.SetX(mcMomentumVec.X());
1084 bothtogether.SetY(stsMomentumVec.Y());
1085 bothtogether.SetZ(stsMomentumVec.Z());
1090 FillRecoTracklistEPEM(mcTrack1, stsMomentumVec, refittedMomentum, stsMcTrackId, result_chi, iGTrack);
1091 if (isFilled) nofElectrons4epem++;
1095 if (richMatch == NULL)
continue;
1097 if (richMcTrackId < 0)
continue;
1099 if (mcTrack2 == NULL)
continue;
1104 if (stsMcTrackId == richMcTrackId) {
1108 if (TMath::Abs(pdg) == 11) {
1112 if (TMath::Abs(pdg) != 11) {
1153 fAnaReco->InvariantMassTest_4epem();
1154 fAnaReco->CalculateInvMassWithFullRecoCuts();
1749 Bool_t reconstructible =
false;
1753 Int_t daughters = 0;
1754 Int_t gammaDaughters = 0;
1755 Int_t electronDaughters = 0;
1756 Int_t electronDaughtersBeforeRICH = 0;
1757 Int_t electronDaughtersInTarget = 0;
1758 vector<int> gammaDaughterIDs;
1759 gammaDaughterIDs.clear();
1760 vector<int> electronDaughterIDs;
1761 electronDaughterIDs.clear();
1764 for (
int i = 0; i < nofMcTracks; i++) {
1766 if (mctrack_switch == NULL)
continue;
1769 if (motherID == trackid && pdg == 22) {
1771 gammaDaughterIDs.push_back(i);
1773 if (motherID == trackid) { daughters++; }
1785 if (gammaDaughters == 2) {
1788 for (
int i = 0; i < nofMcTracks; i++) {
1790 if (mctrack_switch == NULL)
continue;
1793 if (TMath::Abs(pdg) == 11 && (motherID == gammaDaughterIDs[0] || motherID == gammaDaughterIDs[1])) {
1794 electronDaughters++;
1795 electronDaughterIDs.push_back(i);
1797 TVector3 startvertex;
1799 if (startvertex.Z() <= 70) { electronDaughtersBeforeRICH++; }
1800 if (startvertex.Z() <= 4) { electronDaughtersInTarget++; }
1805 if (electronDaughtersBeforeRICH == 4) {
1807 reconstructible =
true;
1814 Int_t daughters = 0;
1815 Int_t gammaDaughters = 0;
1816 Int_t electronDaughters = 0;
1817 Int_t electronDaughtersBeforeRICH = 0;
1818 Int_t electronDaughtersInTarget = 0;
1819 vector<int> gammaDaughterIDs;
1820 gammaDaughterIDs.clear();
1821 vector<int> electronDaughterIDs;
1822 electronDaughterIDs.clear();
1825 for (
int i = 0; i < nofMcTracks; i++) {
1827 if (mctrack_switch == NULL)
continue;
1830 if (motherID == trackid && pdg == 22) {
1832 gammaDaughterIDs.push_back(i);
1834 if (motherID == trackid) { daughters++; }
1837 if (gammaDaughters == 2) {
1839 for (
int i = 0; i < nofMcTracks; i++) {
1841 if (mctrack_switch == NULL)
continue;
1844 if (TMath::Abs(pdg) == 11 && (motherID == gammaDaughterIDs[0] || motherID == gammaDaughterIDs[1])) {
1845 electronDaughters++;
1846 electronDaughterIDs.push_back(i);
1848 TVector3 startvertex;
1850 if (startvertex.Z() <= 70) { electronDaughtersBeforeRICH++; }
1851 if (startvertex.Z() <= 4) { electronDaughtersInTarget++; }
1860 return reconstructible;
1866 Int_t electrons = 0;
1867 std::multimap<int, int> electronPi0ID_map;
1868 std::multimap<int, int> electronPi0ID_map_richInd;
1871 for (
int i = 0; i < nof; i++) {
1875 if (TMath::Abs(pdg) == 11 && motherID != -1) {
1877 if (mctrack_mother == NULL)
continue;
1881 if (motherPdg == 22 && grandmotherID != -1) {
1883 if (mctrack_grandmother == NULL)
continue;
1886 if (grandmotherPdg == 111) {
1888 electronPi0ID_map.insert(std::pair<int, int>(grandmotherID, i));
1890 electronPi0ID_map_richInd.insert(std::pair<int, int>(grandmotherID, i));
1895 TVector3 startvertex;
1897 if (startvertex.Z() < 1) {
1906 if (electrons >= 4) {
1911 int samePi0counter = 0;
1913 for (std::map<int, int>::iterator it = electronPi0ID_map.begin(); it != electronPi0ID_map.end(); ++it) {
1914 if (it == electronPi0ID_map.begin()) check = 1;
1915 if (it != electronPi0ID_map.begin()) {
1916 std::map<int, int>::iterator zwischen = it;
1919 int id_old = zwischen->first;
1935 std::map<int, int>::iterator alt3 = zwischen;
1937 std::map<int, int>::iterator alt4 = alt3;
1939 std::map<int, int>::iterator alt5 = alt4;
1941 cout <<
"CbmAnaConversion: AnalysePi0_Reco: " << alt5->first <<
"/" << zwischen->first <<
"/" << alt3->first
1942 <<
"/" << alt4->first << endl;
1943 cout <<
"CbmAnaConversion: AnalysePi0_Reco: " << alt5->second <<
"/" << zwischen->second <<
"/"
1944 << alt3->second <<
"/" << alt4->second << endl;
1964 std::map<int, int>::iterator temp = zwischen;
1965 for (
int i = 0; i < 4; i++) {
1973 if (chi_e1 <= 3 && chi_e2 <= 3 && chi_e3 <= 3 && chi_e4 <= 3) {
1981 std::map<int, int>::iterator temp2 = zwischen;
1982 for (
int i = 0; i < 4; i++) {
2002 if (samePi0counter >= 4) {
2007 int samePi0counter2 = 0;
2009 cout <<
"CbmAnaConversion: RecoPi0: electronmapsize: " << electronPi0ID_map_richInd.size() << endl;
2010 for (std::map<int, int>::iterator it = electronPi0ID_map_richInd.begin(); it != electronPi0ID_map_richInd.end();
2012 if (it == electronPi0ID_map_richInd.begin()) check = 1;
2013 if (it != electronPi0ID_map_richInd.begin()) {
2014 std::map<int, int>::iterator zwischen = it;
2017 int id_old = zwischen->first;
2128 Int_t electrons = 0;
2129 std::multimap<int, int> electronPi0ID_map;
2130 std::multimap<int, int>
2131 electronPi0ID_map_richInd;
2134 for (
int i = 0; i < nof; i++) {
2138 if (TMath::Abs(pdg) == 11 && motherID != -1) {
2140 if (mctrack_mother == NULL)
continue;
2144 if (motherPdg == 22 && grandmotherID != -1) {
2146 if (mctrack_grandmother == NULL)
continue;
2149 if (grandmotherPdg == 111) {
2151 electronPi0ID_map.insert(std::pair<int, int>(grandmotherID, i));
2153 electronPi0ID_map_richInd.insert(std::pair<int, int>(grandmotherID, i));
2160 TVector3 startvertex;
2162 if (startvertex.Z() < 1) {
2184 if (TMath::Abs(pdg) != 11)
continue;
2192 if (electrons >= 4) {
2197 int samePi0counter = 0;
2199 int check_withRichInd = 0;
2200 for (std::map<int, int>::iterator it = electronPi0ID_map.begin(); it != electronPi0ID_map.end(); ++it) {
2201 if (it == electronPi0ID_map.begin()) check = 1;
2202 if (it != electronPi0ID_map.begin()) {
2203 std::map<int, int>::iterator zwischen = it;
2206 int id_old = zwischen->first;
2223 std::map<int, int>::iterator alt3 = zwischen;
2225 std::map<int, int>::iterator alt4 = alt3;
2227 std::map<int, int>::iterator alt5 = alt4;
2229 cout <<
"CbmAnaConversion: AnalysePi0_Reco_noRichInd: " << alt5->first <<
"/" << zwischen->first <<
"/"
2230 << alt3->first <<
"/" << alt4->first << endl;
2231 cout <<
"CbmAnaConversion: AnalysePi0_Reco_noRichInd: " << alt5->second <<
"/" << zwischen->second <<
"/"
2232 << alt3->second <<
"/" << alt4->second << endl;
2252 Double_t invmass_mc =
2259 std::map<int, int>::iterator temp = zwischen;
2260 for (
int i = 0; i < 4; i++) {
2267 if (chi_e1 <= 3 && chi_e2 <= 3 && chi_e3 <= 3 && chi_e4 <= 3) {
2275 std::map<int, int>::iterator temp2 = zwischen;
2276 for (
int i = 0; i < 4; i++) {
2286 if (richInd_e1 >= 0 && richInd_e2 >= 0 && richInd_e3 >= 0 && richInd_e4 >= 0) {
2290 if (chi_e1 <= 3 && chi_e2 <= 3 && chi_e3 <= 3 && chi_e4 <= 3) {
2298 std::map<int, int>::iterator temp = zwischen;
2299 cout <<
"CbmAnaConversion: AnalysePi0_Reco_noRichInd, check>4: ";
2300 for (
int i = 0; i < check; i++) {
2301 TVector3 momentum_mc;
2303 Double_t theta_mc = 180.0 * momentum_mc.Theta() / TMath::Pi();
2304 Double_t phi_mc = 180.0 * momentum_mc.Phi() / TMath::Pi();
2306 Double_t theta_reco = 180.0 * momentum_reco.Theta() / TMath::Pi();
2307 Double_t phi_reco = 180.0 * momentum_reco.Phi() / TMath::Pi();
2309 <<
"/" << momentum_reco.Mag() <<
"/" << theta_mc <<
"-" << phi_mc <<
"/" << theta_reco <<
"-"
2310 << phi_reco <<
") \t";
2330 check_withRichInd = 0;
2336 if (samePi0counter >= 4) {