@@ -726,7 +726,7 @@ struct kstarInOO {
726726 if (lReso.M () < 0 )
727727 continue ;
728728
729- fillMinv (MB, trk1, trk2, lReso, centrality, -1.0 , IsMix, flip);
729+ fillMinv (objectType:: MB, trk1, trk2, lReso, centrality, -1.0 , IsMix, flip);
730730 } // flip
731731 } // for
732732 } // TrackSlicing
@@ -747,7 +747,7 @@ struct kstarInOO {
747747 if (lReso.M () < 0 )
748748 continue ;
749749
750- fillMinv (MB, trk1, trk2, lReso, centrality, -1.0 , IsMix, flip);
750+ fillMinv (objectType:: MB, trk1, trk2, lReso, centrality, -1.0 , IsMix, flip);
751751 } // flip
752752 // ======================
753753 // Gen MC
@@ -859,7 +859,7 @@ struct kstarInOO {
859859 }
860860
861861 template <typename TracksType, typename JetType>
862- ROOT::Math::PxPyPzMVector JetTrackSlicing (aod::JetCollision const & collision, TracksType const & jetTracks, const JetType& chargedjets, const bool IsMix, const bool QA)
862+ void JetTrackSlicing (aod::JetCollision const & collision, TracksType const & jetTracks, const JetType& chargedjets, const bool IsMix, const bool QA)
863863 {
864864 // ======================
865865 // | MinBias Event M_inv
@@ -874,7 +874,7 @@ struct kstarInOO {
874874 if (lResonance.M () < 0 )
875875 continue ;
876876
877- fillMinv (MB, trk1, trk2, lResonance, centrality, -1.0 , IsMix, flip);
877+ fillMinv (objectType:: MB, trk1, trk2, lResonance, centrality, -1.0 , IsMix, flip);
878878
879879 // ======================
880880 // | Inside jets M_inv
@@ -902,11 +902,10 @@ struct kstarInOO {
902902 }
903903
904904 if (jetFlag) {
905- fillMinv (Jets, trk1, trk2, lResonance, centrality, jetpt, IsMix, flip);
905+ fillMinv (objectType:: Jets, trk1, trk2, lResonance, centrality, jetpt, IsMix, flip);
906906 } // jetFlag
907907 } // flip
908908 } // Track
909- return {};
910909 } // JetTrackSlicing
911910
912911 template <typename TracksType, typename JetType>
@@ -920,6 +919,9 @@ struct kstarInOO {
920919 auto trk1 = track1.template track_as <TrackCandidatesMC>();
921920 auto trk2 = track2.template track_as <TrackCandidatesMC>();
922921
922+ if (!trk1.has_mcParticle () || !trk2.has_mcParticle ())
923+ continue ;
924+
923925 for (bool flip : {false , true }) {
924926 auto lResonance = minvReconstruction (trk1, trk2, QA, flip);
925927 if (lResonance.M () < 0 )
@@ -959,98 +961,97 @@ struct kstarInOO {
959961 // ======================
960962 // | MinBias True M_inv
961963 // ======================
962- if (trk1.has_mcParticle () && trk2.has_mcParticle ()) {
963- auto particle1 = trk1.mcParticle ();
964- auto particle2 = trk2.mcParticle ();
964+ auto particle1 = trk1.mcParticle ();
965+ auto particle2 = trk2.mcParticle ();
965966
966- if (!particle1.has_mothers () || !particle2.has_mothers ()) {
967- return {};
968- }
967+ if (!particle1.has_mothers () || !particle2.has_mothers ()) {
968+ return {};
969+ }
969970
970- std::vector<int > mothers1{};
971- std::vector<int > mothers1PDG{};
972- for (auto & particle1_mom : particle1.template mothers_as <aod::McParticles>()) {
973- mothers1.push_back (particle1_mom.globalIndex ());
974- mothers1PDG.push_back (particle1_mom.pdgCode ());
975- }
971+ std::vector<int > mothers1{};
972+ std::vector<int > mothers1PDG{};
973+ for (auto & particle1_mom : particle1.template mothers_as <aod::McParticles>()) {
974+ mothers1.push_back (particle1_mom.globalIndex ());
975+ mothers1PDG.push_back (particle1_mom.pdgCode ());
976+ }
976977
977- std::vector<int > mothers2{};
978- std::vector<int > mothers2PDG{};
979- for (auto & particle2_mom : particle2.template mothers_as <aod::McParticles>()) {
980- mothers2.push_back (particle2_mom.globalIndex ());
981- mothers2PDG.push_back (particle2_mom.pdgCode ());
982- }
978+ std::vector<int > mothers2{};
979+ std::vector<int > mothers2PDG{};
980+ for (auto & particle2_mom : particle2.template mothers_as <aod::McParticles>()) {
981+ mothers2.push_back (particle2_mom.globalIndex ());
982+ mothers2PDG.push_back (particle2_mom.pdgCode ());
983+ }
983984
984- if (mothers1PDG[0 ] != 313 )
985- return {}; // mother not K*0
986- if (mothers2PDG[0 ] != 313 )
987- return {}; // mothers not K*0
985+ if (mothers1PDG[0 ] != 313 )
986+ return {}; // mother not K*0
987+ if (mothers2PDG[0 ] != 313 )
988+ return {}; // mothers not K*0
988989
989- if (mothers1[0 ] != mothers2[0 ])
990- return {}; // Kaon and pion not from the same K*0
990+ if (mothers1[0 ] != mothers2[0 ])
991+ return {}; // Kaon and pion not from the same K*0
991992
992- if (std::fabs (particle1.pdgCode ()) != 211 && std::fabs (particle1.pdgCode ()) != 321 )
993- return {};
994- if (std::fabs (particle2.pdgCode ()) != 211 && std::fabs (particle2.pdgCode ()) != 321 )
995- return {};
993+ if (std::fabs (particle1.pdgCode ()) != 211 && std::fabs (particle1.pdgCode ()) != 321 )
994+ return {};
995+ if (std::fabs (particle2.pdgCode ()) != 211 && std::fabs (particle2.pdgCode ()) != 321 )
996+ return {};
996997
997- double track1_mass, track2_mass;
998- bool track1f{false }; // true means pion
998+ double track1_mass, track2_mass;
999+ bool track1f{false }; // true means pion
9991000
1000- if (std::fabs (particle1.pdgCode ()) == 211 ) {
1001- track1f = true ;
1002- track1_mass = massPi;
1003- } else {
1004- track1_mass = massKa;
1005- }
1001+ if (std::fabs (particle1.pdgCode ()) == 211 ) {
1002+ track1f = true ;
1003+ track1_mass = massPi;
1004+ } else {
1005+ track1_mass = massKa;
1006+ }
10061007
1007- if (std::fabs (particle2.pdgCode ()) == 211 ) {
1008- track2_mass = massPi;
1009- } else {
1010- track2_mass = massKa;
1011- }
1008+ if (std::fabs (particle2.pdgCode ()) == 211 ) {
1009+ track2_mass = massPi;
1010+ } else {
1011+ track2_mass = massKa;
1012+ }
10121013
1013- if (track1_mass == track2_mass) {
1014- return {};
1015- }
1016- int mcindex1 = trk1.globalIndex ();
1017- int mcindex2 = trk2.globalIndex ();
1018- std::vector<int > mcMemory;
1019-
1020- bool exists1 = std::find (mcMemory.begin (), mcMemory.end (), mcindex1) != mcMemory.end ();
1021- bool exists2 = std::find (mcMemory.begin (), mcMemory.end (), mcindex2) != mcMemory.end ();
1022- if (exists1 || exists2) {
1023- return {};
1014+ if (track1_mass == track2_mass) {
1015+ return {};
1016+ }
1017+ int mcindex1 = trk1.globalIndex ();
1018+ int mcindex2 = trk2.globalIndex ();
1019+ std::vector<int > mcMemory;
1020+
1021+ bool exists1 = std::find (mcMemory.begin (), mcMemory.end (), mcindex1) != mcMemory.end ();
1022+ bool exists2 = std::find (mcMemory.begin (), mcMemory.end (), mcindex2) != mcMemory.end ();
1023+ if (exists1 || exists2) {
1024+ return {};
1025+ } else {
1026+ mcMemory.push_back (trk1.globalIndex ());
1027+ mcMemory.push_back (trk2.globalIndex ());
1028+ }
1029+
1030+ ROOT::Math::PxPyPzMVector lTrueDaughter1, lTrueDaughter2, lTrueReso;
1031+ lTrueDaughter1 = ROOT::Math::PxPyPzMVector (trk1.px (), trk1.py (), trk1.pz (), track1_mass);
1032+ lTrueDaughter2 = ROOT::Math::PxPyPzMVector (trk2.px (), trk2.py (), trk2.pz (), track2_mass);
1033+ lTrueReso = lTrueDaughter1 + lTrueDaughter2;
1034+
1035+ auto mult = collision.centFT0C ();
1036+ double conjugate = trk1.sign () * trk2.sign ();
1037+ if (cfgJetMCHistos) {
1038+ histos.fill (HIST (" hUSS_True_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
1039+ if (track1f) {
1040+ histos.fill (HIST (" hUSS_PiK_True_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
10241041 } else {
1025- mcMemory.push_back (trk1.globalIndex ());
1026- mcMemory.push_back (trk2.globalIndex ());
1042+ histos.fill (HIST (" hUSS_KPi_True_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
10271043 }
1044+ }
10281045
1029- ROOT::Math::PxPyPzMVector lTrueDaughter1, lTrueDaughter2, lTrueReso;
1030- lTrueDaughter1 = ROOT::Math::PxPyPzMVector (trk1.px (), trk1.py (), trk1.pz (), track1_mass);
1031- lTrueDaughter2 = ROOT::Math::PxPyPzMVector (trk2.px (), trk2.py (), trk2.pz (), track2_mass);
1032- lTrueReso = lTrueDaughter1 + lTrueDaughter2;
1033-
1034- auto mult = collision.centFT0C ();
1035- double conjugate = trk1.sign () * trk2.sign ();
1036- if (cfgJetMCHistos) {
1037- histos.fill (HIST (" hUSS_True_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
1038- if (track1f) {
1039- histos.fill (HIST (" hUSS_PiK_True_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
1040- } else {
1041- histos.fill (HIST (" hUSS_KPi_True_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
1042- }
1046+ // ===========================
1047+ // INSIDE REC True Closure
1048+ // ===========================
1049+ if (jetFlag) {
1050+ if (conjugate < 0 ) {
1051+ histos.fill (HIST (" hUSS_TrueRec_INSIDE_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
10431052 }
1053+ }
10441054
1045- // ===========================
1046- // INSIDE REC True Closure
1047- // ===========================
1048- if (jetFlag) {
1049- if (conjugate < 0 ) {
1050- histos.fill (HIST (" hUSS_TrueRec_INSIDE_MC" ), mult, lTrueReso.Pt (), lTrueReso.M ());
1051- }
1052- }
1053- } // has_mcParticle
10541055 } // filp
10551056 } // Tracks loop
10561057 return {};
@@ -1123,7 +1124,6 @@ struct kstarInOO {
11231124 return ;
11241125 }
11251126 }
1126-
11271127 histos.fill (HIST (" nEvents" ), 2.5 ); // Events after event quality selection for Inclusive
11281128
11291129 std::vector<double > jetpT{};
@@ -1155,7 +1155,6 @@ struct kstarInOO {
11551155 if (!HasJets)
11561156 return ;
11571157 }
1158-
11591158 histos.fill (HIST (" nEvents" ), 3.5 ); // Has jets
11601159
11611160 bool INELgt0 = false ;
@@ -1313,7 +1312,6 @@ struct kstarInOO {
13131312 mothers1PDG.push_back (particle1_mom.pdgCode ());
13141313 }
13151314
1316- // std::cout<<mothers1PDG[0]<<std::endl;
13171315 if (cfgJetMCHistos) {
13181316 histos.fill (HIST (" hMotherPdg1" ), std::fabs (mothers1PDG[0 ]));
13191317 }
@@ -1465,7 +1463,6 @@ struct kstarInOO {
14651463 }
14661464 if (!INELgt0)
14671465 return ;
1468-
14691466 histos.fill (HIST (" nEvents" ), 1.5 );
14701467
14711468 TrackSlicing (collision, tracks, collision, tracks, false , true );
0 commit comments