99// granted to it by virtue of its status as an Intergovernmental Organization
1010// or submit itself to any jurisdiction.
1111
12- // / \file phiInJets .cxx
12+ // / \file phi1020analysis .cxx
1313// / \brief Reconstruction of Phi yield through track-track Minv correlations for resonance OO analysis
1414// /
1515// /
@@ -61,7 +61,7 @@ using namespace o2;
6161using namespace o2 ::framework;
6262using namespace o2 ::framework::expressions;
6363
64- struct phiOO {
64+ struct phi1020analysis {
6565
6666 SliceCache cache;
6767 Preslice<aod::Tracks> perCollision = aod::track::collisionId;
@@ -77,6 +77,7 @@ struct phiOO {
7777 Configurable<bool > cfg_Event_Pileup{" cfg_Event_Pileup" , true , " Pileup border cut" };
7878 Configurable<bool > cfg_Event_OccupancyCut{" cfg_Event_OccupancyCut" , true , " Occupancy border cut" };
7979 Configurable<float > cfg_Event_MaxOccupancy{" cfg_Event_MaxOccupancy" , 1 , " Max TPC Occupancy" };
80+ Configurable<int > centEstimator{" centEstimator" , 0 , " Select centrality estimator: 0 - FT0M, 1 - FT0A, 2 - FT0C" };
8081
8182 // Track configurables
8283 Configurable<std::string> cfg_Track_Sel{" cfg_Track_Sel" , " globalTracks" , " set track selections" };
@@ -136,10 +137,10 @@ struct phiOO {
136137 // Event QA
137138 if (cfg_Event_CutQA) {
138139 histos.add (" hPosZ_BC" , " PosZ_BC" , kTH1F , {{240 , -12.0 , 12.0 }});
139- histos.add (" hcentFT0C_BC " , " centFT0C_BC " , kTH1F , {{110 , 0.0 , 110.0 }});
140+ histos.add (" hcentFT0_BC " , " centFT0_BC " , kTH1F , {{110 , 0.0 , 110.0 }});
140141 histos.add (" hOccupancy_BC" , " Occupancy_BC" , kTH1F , {{100 , 0.0 , 20000 }});
141142 //
142- histos.add (" hcentFT0C_AC " , " centFT0C_AC " , kTH1F , {{110 , 0.0 , 110.0 }});
143+ histos.add (" hcentFT0_AC " , " centFT0_AC " , kTH1F , {{110 , 0.0 , 110.0 }});
143144 histos.add (" hPosZ_AC" , " PosZ_AC" , kTH1F , {{240 , -12.0 , 12.0 }});
144145 histos.add (" hOccupancy_AC" , " Occupancy_AC" , kTH1F , {{100 , 0.0 , 20000 }});
145146 }
@@ -198,7 +199,7 @@ struct phiOO {
198199
199200 Filter collisionFilter = nabs(aod::collision::posZ) <= cfg_Event_VtxCut;
200201 Filter collisionFilter_MC = nabs(aod::mccollision::posZ) <= cfg_Event_VtxCut;
201- Filter centralityFilter = nabs(aod::cent::centFT0C) <= cfg_Event_CentralityMax;
202+ // Filter centralityFilter = nabs(aod::cent::centFT0C) <= cfg_Event_CentralityMax;
202203 Filter acceptanceFilter = (nabs(aod::track::eta) < cfg_Track_MaxEta && nabs(aod::track::pt) >= cfg_Track_MinPt);
203204 using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::MultZeqs, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>>;
204205 using EventCandidates_True = soa::Filtered<aod::McCollisions>;
@@ -208,7 +209,7 @@ struct phiOO {
208209 using TrackCandidates_MC = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection,
209210 aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTOFbeta, aod::McTrackLabels>>;
210211
211- using BinningTypeVtxCent = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C >;
212+ using BinningTypeVtxCent = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M >;
212213
213214 Partition<TrackCandidates_MC> PosKaon_MC =
214215 (aod::track::signed1Pt > static_cast <float >(0 )) &&
@@ -224,6 +225,29 @@ struct phiOO {
224225 (!cfg_Track_TPCPID || (nabs(aod::pidtpc::tpcNSigmaKa) <= cfg_Track_TPCPID_nSig));
225226
226227 double massKa = o2::constants::physics::MassKPlus;
228+
229+ // Centralicity estimator selection
230+ template <typename Coll>
231+ float centEst (Coll collisions)
232+ {
233+ float returnValue = -999 .0f ;
234+ switch (centEstimator) {
235+ case 0 :
236+ returnValue = collisions.centFT0M ();
237+ break ;
238+ case 1 :
239+ returnValue = collisions.centFT0A ();
240+ break ;
241+ case 2 :
242+ returnValue = collisions.centFT0C ();
243+ break ;
244+ default :
245+ returnValue = collisions.centFT0M ();
246+ break ;
247+ }
248+ return returnValue;
249+ }
250+
227251 // ***********************************//
228252 // First, we declare some helper functions
229253 template <typename objType>
@@ -234,10 +258,10 @@ struct phiOO {
234258 if constexpr (requires { obj.posZ (); }) {
235259 if (!pass) {
236260 histos.fill (HIST (" hPosZ_BC" ), obj.posZ ());
237- histos.fill (HIST (" hcentFT0C_BC " ), obj. centFT0C ( ));
261+ histos.fill (HIST (" hcentFT0_BC " ), centEst (obj ));
238262 } else {
239263 histos.fill (HIST (" hPosZ_AC" ), obj.posZ ());
240- histos.fill (HIST (" hcentFT0C_AC " ), obj. centFT0C ( ));
264+ histos.fill (HIST (" hcentFT0_AC " ), centEst (obj ));
241265 }
242266 }
243267 }
@@ -300,7 +324,7 @@ struct phiOO {
300324 return {false , 4 };
301325 if (cfg_Event_Pileup && (!event.selection_bit (aod::evsel::kNoSameBunchPileup ) || !event.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV )))
302326 return {false , 5 };
303- if (cfg_Event_Centrality && (event. centFT0C ( ) > cfg_Event_CentralityMax))
327+ if (cfg_Event_Centrality && (centEst (event ) > cfg_Event_CentralityMax))
304328 return {false , 6 };
305329 if (cfg_Event_OccupancyCut && (event.trackOccupancyInTimeRange () > cfg_Event_MaxOccupancy))
306330 return {false , 7 };
@@ -375,7 +399,7 @@ struct phiOO {
375399 tofPIDPassed = true ;
376400 }
377401 if (!candidate.hasTOF ()) {
378- std::cout << candidate.tofNSigmaKa () << std::endl;
402+ // std::cout << candidate.tofNSigmaKa() << std::endl;
379403 }
380404 }
381405 if (tpcPIDPassed && tofPIDPassed) {
@@ -392,7 +416,7 @@ struct phiOO {
392416 {
393417 auto slicedtracks1 = PosKaon->sliceByCached (aod::track::collisionId, collision1.globalIndex (), cache);
394418 auto slicedtracks2 = NegKaon->sliceByCached (aod::track::collisionId, collision2.globalIndex (), cache);
395- auto centrality = collision1. centFT0C ( );
419+ auto centrality = centEst (collision1 );
396420 for (auto & [track1, track2] : combinations (o2::soa::CombinationsFullIndexPolicy (slicedtracks1, slicedtracks2))) {
397421 auto [Minv, PhiPt] = minvReconstruction (track1, track2, QA);
398422 if (Minv < 0 )
@@ -419,7 +443,7 @@ struct phiOO {
419443 {
420444 auto slicedtracks1 = PosKaon_MC->sliceByCached (aod::track::collisionId, collision1.globalIndex (), cache);
421445 auto slicedtracks2 = NegKaon_MC->sliceByCached (aod::track::collisionId, collision2.globalIndex (), cache);
422- auto centrality = collision1. centFT0C ( );
446+ auto centrality = centEst (collision1 );
423447 for (auto & [track1, track2] : combinations (o2::soa::CombinationsFullIndexPolicy (slicedtracks1, slicedtracks2))) {
424448 auto [Minv, PhiPt] = minvReconstruction (track1, track2, QA);
425449 if (Minv < 0 )
@@ -526,7 +550,7 @@ struct phiOO {
526550
527551 } // end of process
528552
529- PROCESS_SWITCH (phiOO , processSameEvent, " Process Same events" , true );
553+ PROCESS_SWITCH (phi1020analysis , processSameEvent, " Process Same events" , true );
530554
531555 // ***************//
532556 // DATA (MIX)
@@ -553,7 +577,7 @@ struct phiOO {
553577 TrackSlicing (collision1, tracks1, collision2, tracks2, false , true );
554578 } // mixing
555579 } // end of process
556- PROCESS_SWITCH (phiOO , processMixedEvent, " Process Mixed events" , false );
580+ PROCESS_SWITCH (phi1020analysis , processMixedEvent, " Process Mixed events" , false );
557581
558582 // ***************//
559583 // RECONSTRUCTED MC
@@ -576,7 +600,7 @@ struct phiOO {
576600 TrackSlicing_MC (collision, tracks, collision, tracks, true , false );
577601
578602 } // end of process
579- PROCESS_SWITCH (phiOO , processSameEvent_MC, " Process Same events (MC)" , true );
603+ PROCESS_SWITCH (phi1020analysis , processSameEvent_MC, " Process Same events (MC)" , true );
580604
581605 // ***************//
582606 // RECONSTRUCTED MC (MIX)
@@ -602,7 +626,7 @@ struct phiOO {
602626 TrackSlicing_MC (collision1, tracks1, collision2, tracks2, false , true );
603627 } // mixing
604628 } // end of process
605- PROCESS_SWITCH (phiOO , processMixedEvent_MC, " Process Mixed events (MC)" , false );
629+ PROCESS_SWITCH (phi1020analysis , processMixedEvent_MC, " Process Mixed events (MC)" , false );
606630
607631 // ***************//
608632 // GENERATED MC
@@ -629,7 +653,7 @@ struct phiOO {
629653
630654 double centrality = -1 ;
631655 for (auto & recocoll : recocolls) { // poorly reconstructed
632- centrality = recocoll. centFT0C ( );
656+ centrality = centEst (recocoll );
633657 auto [goodEv, code] = eventSelection (recocoll, false );
634658 histos.fill (HIST (" hnEvents_MC_True" ), code);
635659 if (!goodEv)
@@ -665,11 +689,11 @@ struct phiOO {
665689 } // loop over particles
666690
667691 } // end of process
668- PROCESS_SWITCH (phiOO , processParticles, " Process Particles" , false );
692+ PROCESS_SWITCH (phi1020analysis , processParticles, " Process Particles" , false );
669693
670694}; // end of main struct
671695
672696WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
673697{
674- return WorkflowSpec{adaptAnalysisTask<phiOO >(cfgc)};
698+ return WorkflowSpec{adaptAnalysisTask<phi1020analysis >(cfgc)};
675699};
0 commit comments