@@ -76,11 +76,6 @@ static constexpr float kFV0IndexPhi[5] = {0., 8., 16., 24., 32.};
7676static constexpr float kEtaMaxFV0 = 5.1 ;
7777static constexpr float kEtaMinFV0 = 2.2 ;
7878static constexpr float kDEtaFV0 = (kEtaMaxFV0 - kEtaMinFV0 ) / kMaxRingsFV0 ;
79- // eta binning for dEdx calibration
80- static constexpr int Neta = 9 ;
81- static constexpr float kEtaLow [Neta] = {-0.8 , -0.8 , -0.6 , -0.4 , -0.2 , 0.0 , 0.2 , 0.4 , 0.6 };
82- static constexpr float kEtaHigh [Neta] = {0.8 , -0.6 , -0.4 , -0.2 , 0.0 , 0.2 , 0.4 , 0.6 , 0.8 };
83- static constexpr std::string_view kEtaEnding [Neta] = {" -88" , " -8-6" , " -6-4" , " -4-2" , " -20" , " 02" , " 24" , " 46" , " 68" };
8479// PID names
8580static constexpr int kProcessIdWeak = 4 ;
8681static constexpr int Ncharges = 2 ;
@@ -98,7 +93,8 @@ static constexpr std::string_view kSpeciesAll[Npart] = {"El", "Mu", "Pi", "Ka",
9893static constexpr std::string_view kCharge [] = {" all/" , " pos/" , " neg/" };
9994static constexpr std::string_view kPrefix = " Tracks/" ;
10095static constexpr std::string_view kQA = " QA/" ;
101- static constexpr std::string_view kPrefixClean = " Tracks/Clean/" ;
96+ static constexpr std::string_view kPrefixCleanTof = " Tracks/CleanTof/" ;
97+ static constexpr std::string_view kPrefixCleanV0 = " Tracks/CleanV0/" ;
10298static constexpr std::string_view kStatus [] = {" preSel/" , " postSel/" };
10399static constexpr std::string_view kStatCalib [] = {" preCalib/" , " postCalib/" };
104100static constexpr std::string_view kPtGenPrimSgn = " /hPtGenPrimSgn" ;
@@ -503,20 +499,17 @@ struct FlattenictyPikp {
503499 flatchrg.add (" Tracks/V0qa/hV0ArmPod" , " ;#alpha; #it{q}_T" , HistType::kTH2D , {{200 , -1 .0f , +1 .0f }, {250 , 0 .0f , 0 .25f }});
504500 // dEdx PID
505501 flatchrg.add ({" Tracks/all/hdEdx" , " ; #eta; mult; flat; #it{p} (GeV/#it{c}); dEdx" , {HistType::kTHnSparseD , {etaAxis, multAxis, flatAxis, pAxis, dEdxAxis}}});
506-
507502 // Clean samples
508- for (int i = 0 ; i < Neta; i++) {
509- flatchrg.add (fmt::format (" Tracks/Clean/all/hPiTof{}" , kEtaEnding [i]).c_str (), fmt::format (" Tracks/Clean/all/hPiTof{}" , kEtaEnding [i]).c_str (), {HistType::kTH2D , {pAxis, dEdxAxis}});
510- flatchrg.add (fmt::format (" Tracks/Clean/all/hEV0{}" , kEtaEnding [i]).c_str (), fmt::format (" Tracks/Clean/all/hEV0{}" , kEtaEnding [i]).c_str (), {HistType::kTH2D , {pAxis, dEdxAxis}});
511- flatchrg.add (fmt::format (" Tracks/Clean/all/hPiV0{}" , kEtaEnding [i]).c_str (), fmt::format (" Tracks/Clean/all/hPiV0{}" , kEtaEnding [i]).c_str (), {HistType::kTH2D , {pAxis, dEdxAxis}});
512- flatchrg.add (fmt::format (" Tracks/Clean/all/hPV0{}" , kEtaEnding [i]).c_str (), fmt::format (" Tracks/Clean/all/hPV0{}" , kEtaEnding [i]).c_str (), {HistType::kTH2D , {pAxis, dEdxAxis}});
513- }
514-
503+ flatchrg.add ({" Tracks/CleanTof/all/hPiTof" , " ; #eta; mult; flat; #it{p} (GeV/#it{c}); dEdx" , {HistType::kTHnSparseD , {etaAxis, multAxis, flatAxis, pAxis, dEdxAxis}}});
504+ flatchrg.add ({" Tracks/CleanV0/pos/hEV0" , " ; #eta; mult; flat; #it{p} (GeV/#it{c}); dEdx" , {HistType::kTHnSparseD , {etaAxis, multAxis, flatAxis, pAxis, dEdxAxis}}});
505+ flatchrg.add ({" Tracks/CleanV0/pos/hPiV0" , " ; #eta; mult; flat; #it{p} (GeV/#it{c}); dEdx" , {HistType::kTHnSparseD , {etaAxis, multAxis, flatAxis, pAxis, dEdxAxis}}});
506+ flatchrg.add ({" Tracks/CleanV0/pos/hPV0" , " ; #eta; mult; flat; #it{p} (GeV/#it{c}); dEdx" , {HistType::kTHnSparseD , {etaAxis, multAxis, flatAxis, pAxis, dEdxAxis}}});
507+ flatchrg.addClone (" Tracks/CleanV0/pos/" , " Tracks/CleanV0/neg/" );
515508 if (cfgFillChrgType) {
516509 flatchrg.addClone (" Tracks/all/" , " Tracks/pos/" );
517510 flatchrg.addClone (" Tracks/all/" , " Tracks/neg/" );
518- flatchrg.addClone (" Tracks/Clean /all/" , " Tracks/Clean /pos/" );
519- flatchrg.addClone (" Tracks/Clean /all/" , " Tracks/Clean /neg/" );
511+ flatchrg.addClone (" Tracks/CleanTof /all/" , " Tracks/CleanTof /pos/" );
512+ flatchrg.addClone (" Tracks/CleanTof /all/" , " Tracks/CleanTof /neg/" );
520513 }
521514 }
522515
@@ -774,17 +767,12 @@ struct FlattenictyPikp {
774767 // TOF pions
775768 if (track.hasTOF () && track.beta () > 1 .) {
776769 if (selTOFPi (track)) {
777- static_for<0 , 8 >([&](auto i) {
778- constexpr int kIdx = i.value ;
779- if (track.eta () > kEtaLow [kIdx ] && track.eta () < kEtaHigh [kIdx ]) {
780- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kAll ]) + HIST (" hPiTof" ) + HIST (kEtaEnding [kIdx ]), track.tpcInnerParam (), dEdx);
781- if (track.sign () > 0 ) {
782- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kPos ]) + HIST (" hPiTof" ) + HIST (kEtaEnding [kIdx ]), track.tpcInnerParam (), dEdx);
783- } else {
784- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kNeg ]) + HIST (" hPiTof" ) + HIST (kEtaEnding [kIdx ]), track.tpcInnerParam (), dEdx);
785- }
786- }
787- });
770+ flatchrg.fill (HIST (kPrefixCleanTof ) + HIST (kCharge [kAll ]) + HIST (" hPiTof" ), track.eta (), mult, flat, track.tpcInnerParam (), dEdx);
771+ if (posP) {
772+ flatchrg.fill (HIST (kPrefixCleanTof ) + HIST (kCharge [kPos ]) + HIST (" hPiTof" ), track.eta (), mult, flat, track.tpcInnerParam (), dEdx);
773+ } else {
774+ flatchrg.fill (HIST (kPrefixCleanTof ) + HIST (kCharge [kNeg ]) + HIST (" hPiTof" ), track.eta (), mult, flat, track.tpcInnerParam (), dEdx);
775+ }
788776 }
789777 }
790778 }
@@ -806,48 +794,20 @@ struct FlattenictyPikp {
806794 }
807795
808796 if (selectTypeV0s (v0, posTrack, negTrack) == kGa ) { // Gamma selection
809- static_for<0 , 8 >([&](auto i) {
810- constexpr int kIdx = i.value ;
811- if (posTrack.eta () > kEtaLow [kIdx ] && posTrack.eta () < kEtaHigh [kIdx ]) {
812- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kPos ]) + HIST (" hEV0" ) + HIST (kEtaEnding [kIdx ]), posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
813- }
814- if (negTrack.eta () > kEtaLow [kIdx ] && negTrack.eta () < kEtaHigh [kIdx ]) {
815- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kNeg ]) + HIST (" hEV0" ) + HIST (kEtaEnding [kIdx ]), negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
816- }
817- });
797+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kPos ]) + HIST (" hEV0" ), posTrack.eta (), mult, flat, posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
798+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kNeg ]) + HIST (" hEV0" ), negTrack.eta (), mult, flat, negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
818799 }
819800 if (selectTypeV0s (v0, posTrack, negTrack) == kKz ) { // K0S -> pi + pi
820- static_for<0 , 8 >([&](auto i) {
821- constexpr int kIdx = i.value ;
822- if (posTrack.eta () > kEtaLow [kIdx ] && posTrack.eta () < kEtaHigh [kIdx ]) {
823- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kPos ]) + HIST (" hPiV0" ) + HIST (kEtaEnding [kIdx ]), posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
824- }
825- if (negTrack.eta () > kEtaLow [kIdx ] && negTrack.eta () < kEtaHigh [kIdx ]) {
826- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kNeg ]) + HIST (" hPiV0" ) + HIST (kEtaEnding [kIdx ]), negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
827- }
828- });
801+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kPos ]) + HIST (" hPiV0" ), posTrack.eta (), mult, flat, posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
802+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kNeg ]) + HIST (" hPiV0" ), negTrack.eta (), mult, flat, negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
829803 }
830804 if (selectTypeV0s (v0, posTrack, negTrack) == kLam ) { // L -> p + pi-
831- static_for<0 , 8 >([&](auto i) {
832- constexpr int kIdx = i.value ;
833- if (posTrack.eta () > kEtaLow [kIdx ] && posTrack.eta () < kEtaHigh [kIdx ]) {
834- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kPos ]) + HIST (" hPV0" ) + HIST (kEtaEnding [kIdx ]), posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
835- }
836- if (negTrack.eta () > kEtaLow [kIdx ] && negTrack.eta () < kEtaHigh [kIdx ]) {
837- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kNeg ]) + HIST (" hPiV0" ) + HIST (kEtaEnding [kIdx ]), negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
838- }
839- });
805+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kPos ]) + HIST (" hPV0" ), posTrack.eta (), mult, flat, posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
806+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kNeg ]) + HIST (" hPV0" ), negTrack.eta (), mult, flat, negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
840807 }
841808 if (selectTypeV0s (v0, posTrack, negTrack) == kaLam) { // L -> p + pi-
842- static_for<0 , 8 >([&](auto i) {
843- constexpr int kIdx = i.value ;
844- if (posTrack.eta () > kEtaLow [kIdx ] && posTrack.eta () < kEtaHigh [kIdx ]) {
845- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kPos ]) + HIST (" hPiV0" ) + HIST (kEtaEnding [kIdx ]), posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
846- }
847- if (negTrack.eta () > kEtaLow [kIdx ] && negTrack.eta () < kEtaHigh [kIdx ]) {
848- flatchrg.fill (HIST (kPrefixClean ) + HIST (kCharge [kNeg ]) + HIST (" hPV0" ) + HIST (kEtaEnding [kIdx ]), negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
849- }
850- });
809+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kPos ]) + HIST (" hPiV0" ), posTrack.eta (), mult, flat, posTrack.sign () * posTrack.tpcInnerParam (), dEdxPos);
810+ flatchrg.fill (HIST (kPrefixCleanV0 ) + HIST (kCharge [kNeg ]) + HIST (" hPiV0" ), negTrack.eta (), mult, flat, negTrack.sign () * negTrack.tpcInnerParam (), dEdxNeg);
851811 }
852812 }
853813 }
0 commit comments