@@ -121,6 +121,10 @@ struct PiKpRAA {
121121 static constexpr float kMaxdEdxMIP {60 .0f };
122122 static constexpr float kMindEdxMIPPlateau {70 .0f };
123123 static constexpr float kMaxdEdxMIPPlateau {90 .0f };
124+ static constexpr float kMinFT0A {3 .5f };
125+ static constexpr float kMaxFT0A {4 .9f };
126+ static constexpr float kMinFT0C {-3 .3f };
127+ static constexpr float kMaxFT0C {-2 .1f };
124128
125129 static constexpr float kLowEta [kNEtaHists ] = {-0.8 , -0.6 , -0.4 , -0.2 , 0.0 , 0.2 , 0.4 , 0.6 };
126130 static constexpr float kHighEta [kNEtaHists ] = {-0.6 , -0.4 , -0.2 , 0.0 , 0.2 , 0.4 , 0.6 , 0.8 };
@@ -203,6 +207,7 @@ struct PiKpRAA {
203207 Configurable<bool > isT0Ccent{" isT0Ccent" , true , " Use T0C-based centrality?" };
204208 Configurable<bool > isZvtxPosSel{" isZvtxPosSel" , true , " Zvtx position selection?" };
205209 Configurable<bool > isZvtxPosSelMC{" isZvtxPosSelMC" , true , " Zvtx position selection for MC events?" };
210+ Configurable<bool > selTVXMC{" selTVXMC" , true , " apply TVX selection in MC?" };
206211 Configurable<bool > selINELgt0{" selINELgt0" , true , " Select INEL > 0?" };
207212 Configurable<bool > isApplyFT0CbasedOccupancy{" isApplyFT0CbasedOccupancy" , false , " T0C Occu cut" };
208213 Configurable<bool > applyNchSel{" applyNchSel" , false , " Use mid-rapidity-based Nch selection" };
@@ -523,6 +528,9 @@ struct PiKpRAA {
523528
524529 if (doprocessSim) {
525530
531+ // MC events passing the TVX requirement
532+ registry.add (" NchMCcentVsTVX" , " ;Passed(=1.5) NOT Passed(=0.5);" , kTH2F , {{{nBinsNch, minNch, maxNch}, {2 , 0 , 2 }}});
533+
526534 registry.add (" NumberOfRecoCollisions" , " Number of times Gen. Coll.are reconstructed;N;Entries" , kTH1F , {{10 , -0.5 , 9.5 }});
527535
528536 // Pt resolution
@@ -1390,11 +1398,10 @@ struct PiKpRAA {
13901398 // By counting number of primary charged particles in |eta| < 1
13911399 // ---------------------------
13921400 int nChMC{0 };
1401+ int nChFT0A{0 };
1402+ int nChFT0C{0 };
13931403 for (const auto & particle : mcParticles) {
13941404
1395- if (std::abs (particle.eta ()) > kOne )
1396- continue ;
1397-
13981405 auto charge{0 .};
13991406 // Get the MC particle
14001407 const auto * pdgParticle = pdg->GetParticle (particle.pdgCode ());
@@ -1412,9 +1419,35 @@ struct PiKpRAA {
14121419 if (!particle.isPhysicalPrimary ())
14131420 continue ;
14141421
1422+ const float eta{particle.eta ()};
1423+
1424+ // TVX requirement
1425+ if (eta > kMinFT0A && eta < kMaxFT0A ) {
1426+ nChFT0A++;
1427+ }
1428+
1429+ if (eta > kMinFT0C && eta < kMaxFT0C ) {
1430+ nChFT0C++;
1431+ }
1432+
1433+ // INEL > 0
1434+ if (std::abs (eta) > kOne )
1435+ continue ;
1436+
14151437 nChMC++;
14161438 }
14171439
1440+ // ---------------------------
1441+ // Only events with at least one charged particle in the FT0A and FT0C acceptances
1442+ // ---------------------------
1443+ if (selTVXMC) {
1444+ if (!(nChFT0A > kZeroInt && nChFT0C > kZeroInt )) {
1445+ registry.fill (HIST (" NchMCcentVsTVX" ), nChMC, 0.5 );
1446+ return ;
1447+ }
1448+ registry.fill (HIST (" NchMCcentVsTVX" ), nChMC, 1.5 );
1449+ }
1450+
14181451 // ---------------------------
14191452 // Only MC events with |Vtx Z| < 10 cm
14201453 // ---------------------------
0 commit comments