@@ -109,6 +109,7 @@ struct phipbpb {
109109 Configurable<int > cfgNoMixedEvents{" cfgNoMixedEvents" , 1 , " Number of mixed events per event" };
110110 Configurable<int > cfgITScluster{" cfgITScluster" , 0 , " Number of ITS cluster" };
111111 Configurable<int > cfgTPCcluster{" cfgTPCcluster" , 70 , " Number of TPC cluster" };
112+ Configurable<float > cfgTPCSharedcluster{" cfgTPCSharedcluster" , 0.4 , " Maximum Number of TPC shared cluster" };
112113 Configurable<bool > isDeepAngle{" isDeepAngle" , false , " Deep Angle cut" };
113114 Configurable<bool > ispTdepPID{" ispTdepPID" , true , " pT dependent PID" };
114115 Configurable<bool > checkAllCharge{" checkAllCharge" , true , " check all charge for MC weight" };
@@ -173,6 +174,8 @@ struct phipbpb {
173174 const AxisSpec thnAxisRapidity{configThnAxisRapidity, " Rapidity" };
174175 const AxisSpec thnAxisSA{configThnAxisSA, " SA" };
175176 AxisSpec cumulantAxis = {200 , -1 , 1 , " phi" };
177+ AxisSpec itsAxis = {8 , -0.5 , 7.5 , " its" };
178+ AxisSpec tpcAxis = {130 , 69.5 , 199.5 , " its" };
176179 AxisSpec squareAxis = {200 , 0 , 1 , " aossquare" };
177180 AxisSpec phiAxis = {500 , -6.28 , 6.28 , " phi" };
178181 AxisSpec resAxis = {6000 , -30 , 30 , " Res" };
@@ -189,6 +192,12 @@ struct phipbpb {
189192 histos.add (" hEta" , " Eta distribution" , kTH1F , {{200 , -1 .0f , 1 .0f }});
190193 histos.add (" hDcaxy" , " Dcaxy distribution" , kTH1F , {{200 , -1 .0f , 1 .0f }});
191194 histos.add (" hDcaz" , " Dcaz distribution" , kTH1F , {{200 , -1 .0f , 1 .0f }});
195+
196+ histos.add (" hITS" , " ITS cluster" , kTH2F , {{10 , -0 .5f , 9 .5f }, {200 , -1.0 , 1.0 }});
197+ histos.add (" hTPC" , " TPC crossed rows" , kTH2F , {{90 , 69 .5f , 159 .5f }, {200 , -1.0 , 1.0 }});
198+ histos.add (" hTPCScls" , " TPC Shared cluster" , kTH2F , {{16 , -0 .5f , 159 .5f }, {200 , -1.0 , 1.0 }});
199+ histos.add (" hTPCSclsFrac" , " Fraction of TPC Shared cluster" , kTH2F , {{100 , -0 .0f , 2 .0f }, {200 , -1.0 , 1.0 }});
200+
192201 histos.add (" hNsigmaKaonTPC" , " NsigmaKaon TPC distribution" , kTH1F , {{200 , -10 .0f , 10 .0f }});
193202 histos.add (" hNsigmaKaonTOF" , " NsigmaKaon TOF distribution" , kTH1F , {{200 , -10 .0f , 10 .0f }});
194203 histos.add (" hPsiFT0C" , " PsiFT0C" , kTH3F , {centAxis, occupancyAxis, phiAxis});
@@ -321,7 +330,7 @@ struct phipbpb {
321330 template <typename T>
322331 bool selectionTrack (const T& candidate)
323332 {
324- if (useGlobalTrack && !(candidate.isGlobalTrack () && candidate.isPVContributor () && candidate.itsNCls () > cfgITScluster && candidate.tpcNClsFound () > cfgTPCcluster)) {
333+ if (useGlobalTrack && !(candidate.isGlobalTrack () && candidate.isPVContributor () && candidate.itsNCls () > cfgITScluster && candidate.tpcNClsCrossedRows () > cfgTPCcluster && candidate. tpcFractionSharedCls () < cfgTPCSharedcluster )) {
325334 return false ;
326335 }
327336 if (!useGlobalTrack && !(candidate.tpcNClsFound () > cfgTPCcluster)) {
@@ -420,7 +429,10 @@ struct phipbpb {
420429 TH2D* hweight;
421430 void processSameEvent (EventCandidates::iterator const & collision, TrackCandidates const & /* tracks, aod::BCs const&*/ , aod::BCsWithTimestamps const &)
422431 {
423- if (!collision.sel8 () || !collision.triggereventep () || !collision.selection_bit (aod::evsel::kNoTimeFrameBorder ) || !collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) || !collision.selection_bit (aod::evsel::kNoSameBunchPileup ) || !collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV ) || !collision.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
432+ // if (!collision.sel8() || !collision.triggereventep() || !collision.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) {
433+ // return;
434+ // }
435+ if (!collision.sel8 () || !collision.triggereventep () || !collision.selection_bit (aod::evsel::kNoSameBunchPileup )) {
424436 return ;
425437 }
426438 auto centrality = collision.centFT0C ();
@@ -444,7 +456,7 @@ struct phipbpb {
444456 return ;
445457 }
446458 histos.fill (HIST (" hFTOCvsTPC" ), centrality, multTPC);
447- if (additionalEvsel && !eventSelected ( collision, centrality )) {
459+ if (additionalEvsel && !collision. selection_bit (o2::aod::evsel:: kNoCollInTimeRangeStandard )) {
448460 return ;
449461 }
450462 if (additionalEvselITS && !collision.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
@@ -505,6 +517,11 @@ struct phipbpb {
505517 histos.fill (HIST (" hDcaz" ), track1.dcaZ ());
506518 histos.fill (HIST (" hNsigmaKaonTPC" ), track1.tpcNSigmaKa ());
507519 histos.fill (HIST (" hNsigmaKaonTOF" ), track1.tofNSigmaKa ());
520+ auto V2Track = TMath::Cos (2.0 * GetPhiInRange (track1.phi () - psiFT0C));
521+ histos.fill (HIST (" hITS" ), track1.itsNCls (), V2Track);
522+ histos.fill (HIST (" hTPC" ), track1.tpcNClsCrossedRows (), V2Track);
523+ histos.fill (HIST (" hTPCScls" ), track1.tpcNClsShared (), V2Track);
524+ histos.fill (HIST (" hTPCSclsFrac" ), track1.tpcFractionSharedCls (), V2Track);
508525 auto track1ID = track1.globalIndex ();
509526 if (useWeight) {
510527 if (track1.pt () < 10.0 && track1.pt () > 0.15 ) {
@@ -627,10 +644,16 @@ struct phipbpb {
627644 BinningTypeVertexContributor binningOnPositions{{axisVertex, axisMultiplicityClass, axisOccup}, true };
628645 SameKindPair<EventCandidates, TrackCandidates, BinningTypeVertexContributor> pair{binningOnPositions, cfgNoMixedEvents, -1 , collisions, tracksTuple, &cache};
629646 for (auto & [collision1, tracks1, collision2, tracks2] : pair) {
630- if (!collision1.sel8 () || !collision1.triggereventep () || !collision1.selection_bit (aod::evsel::kNoTimeFrameBorder ) || !collision1.selection_bit (aod::evsel::kNoITSROFrameBorder ) || !collision1.selection_bit (aod::evsel::kNoSameBunchPileup ) || !collision1.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV ) || !collision1.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
647+ // if (!collision1.sel8() || !collision1.triggereventep() || !collision1.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision1.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision1.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision1.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision1.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) {
648+ // continue;
649+ // }
650+ // if (!collision2.sel8() || !collision2.triggereventep() || !collision2.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision2.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision2.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision2.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision2.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard)) {
651+ // continue;
652+ // }
653+ if (!collision1.sel8 () || !collision1.triggereventep () || !collision1.selection_bit (aod::evsel::kNoSameBunchPileup )) {
631654 continue ;
632655 }
633- if (!collision2.sel8 () || !collision2.triggereventep () || !collision2.selection_bit (aod::evsel::kNoTimeFrameBorder ) || !collision2. selection_bit (aod::evsel:: kNoITSROFrameBorder ) || !collision2. selection_bit (aod::evsel:: kNoSameBunchPileup ) || !collision2. selection_bit (aod::evsel:: kIsGoodZvtxFT0vsPV ) || !collision2. selection_bit (o2::aod::evsel:: kNoCollInTimeRangeStandard )) {
656+ if (!collision2.sel8 () || !collision2.triggereventep () || !collision2.selection_bit (aod::evsel::kNoSameBunchPileup )) {
634657 continue ;
635658 }
636659 if (collision1.bcId () == collision2.bcId ()) {
@@ -646,13 +669,13 @@ struct phipbpb {
646669 continue ;
647670 }
648671 auto centrality = collision1.centFT0C ();
649- auto centrality2 = collision2.centFT0C ();
672+ // auto centrality2 = collision2.centFT0C();
650673 auto psiFT0C = collision1.psiFT0C ();
651674 auto QFT0C = collision1.qFT0C ();
652- if (additionalEvsel && !eventSelected ( collision1, centrality )) {
675+ if (additionalEvsel && !collision1. selection_bit (o2::aod::evsel:: kNoCollInTimeRangeStandard )) {
653676 continue ;
654677 }
655- if (additionalEvsel && !eventSelected ( collision2, centrality2 )) {
678+ if (additionalEvsel && !collision2. selection_bit (o2::aod::evsel:: kNoCollInTimeRangeStandard )) {
656679 continue ;
657680 }
658681 if (additionalEvselITS && !collision1.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll )) {
0 commit comments