@@ -52,14 +52,15 @@ enum Particle { NotMatched = 0,
5252 Lambda,
5353 Omega };
5454
55- enum TrackQABins { All = 0 ,
56- HasIts,
57- HasTpc,
58- TpcNClsCrossedRows,
59- EtaMax,
60- PtMin,
61- TpcChi2NCls,
62- ItsChi2NCls };
55+ enum TrackCuts { All = 0 ,
56+ HasIts,
57+ HasTpc,
58+ TpcNClsCrossedRows,
59+ Eta,
60+ PtMin,
61+ TpcChi2NCls,
62+ ItsChi2NCls,
63+ NCuts };
6364
6465// V0s
6566DECLARE_SOA_COLUMN (MassK0, massK0, float ); // ! Candidate mass
@@ -154,17 +155,19 @@ DECLARE_SOA_TABLE(PidCascades, "AOD", "PIDCASCADES", //! Table with PID informat
154155 pid_studies::CandFlag);
155156} // namespace o2::aod
156157
158+ using namespace o2 ::aod::pid_studies;
159+
157160struct HfTaskPidStudies {
158161 Produces<o2::aod::PidV0s> pidV0;
159162 Produces<o2::aod::PidCascades> pidCascade;
160163
161164 Configurable<bool > applyEvSels{" applyEvSels" , true , " Apply event selections" };
162165 Configurable<bool > applyTrackSels{" applyTrackSels" , true , " Apply track selections" };
163- Configurable<float > minTrackTpcNClsCrossedRows{ " minTrackTpcNClsCrossedRows " , 70 , " Minimum number of crossed rows in TPC" };
164- Configurable<float > maxTrackEta{ " maxTrackEta " , 0.8 , " Maximum pseudorapidity" };
165- Configurable<float > minTrackPt{ " minTrackPt " , 0.1 , " Minimum transverse momentum" };
166- Configurable<float > maxTrackTpcChi2NCl{ " maxTrackTpcChi2NCl " , 4 , " Maximum TPC chi2 per number of TPC clusters" };
167- Configurable<float > maxTrackItsChi2NCl{ " maxTrackItsChi2NCl " , 36 , " Maximum ITS chi2 per number of ITS clusters" };
166+ Configurable<float > tpcNClsCrossedRowsTrackMin{ " tpcNClsCrossedRowsTrackMin " , 70 , " Minimum number of crossed rows in TPC" };
167+ Configurable<float > etaTrackMax{ " etaTrackMax " , 0.8 , " Maximum pseudorapidity" };
168+ Configurable<float > ptTrackMin{ " ptTrackMin " , 0.1 , " Minimum transverse momentum" };
169+ Configurable<float > tpcChi2NClTrackMax{ " tpcChi2NClTrackMax " , 4 , " Maximum TPC chi2 per number of TPC clusters" };
170+ Configurable<float > itsChi2NClTrackMax{ " itsChi2NClTrackMax " , 36 , " Maximum ITS chi2 per number of ITS clusters" };
168171 Configurable<float > massK0Min{" massK0Min" , 0.4 , " Minimum mass for K0" };
169172 Configurable<float > massK0Max{" massK0Max" , 0.6 , " Maximum mass for K0" };
170173 Configurable<float > massLambdaMin{" massLambdaMin" , 1.0 , " Minimum mass for lambda" };
@@ -205,17 +208,18 @@ struct HfTaskPidStudies {
205208 ccdb->setCaching (true );
206209 ccdb->setLocalObjectValidityChecking ();
207210 hfEvSel.addHistograms (registry);
208- std::shared_ptr<TH1> hTrackSel = registry.add <TH1>(" hTrackSel" , " Track selection;;Counts" , {HistType::kTH1F , {{8 , 0 , 8 }}});
211+
212+ std::shared_ptr<TH1> hTrackSel = registry.add <TH1>(" hTrackSel" , " Track selection;;Counts" , {HistType::kTH1F , {{TrackCuts::NCuts, 0 , TrackCuts::NCuts}}});
209213
210214 // Set Labels for hTrackSel
211- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::All + 1 , " All" );
212- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::HasIts + 1 , " HasITS" );
213- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::HasTpc + 1 , " HasTPC" );
214- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::TpcNClsCrossedRows + 1 , " TPC NCls/CrossedRows" );
215- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins::EtaMax + 1 , " #eta max " );
216- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::PtMin + 1 , " #it{p}_{T} min" );
217- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::TpcChi2NCls + 1 , " TPC #chi^{2}/NCls" );
218- hTrackSel->GetXaxis ()->SetBinLabel (o2::aod::pid_studies::TrackQABins ::ItsChi2NCls + 1 , " ITS #chi^{2}/NCls" );
215+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::All + 1 , " All" );
216+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::HasIts + 1 , " HasITS" );
217+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::HasTpc + 1 , " HasTPC" );
218+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::TpcNClsCrossedRows + 1 , " TPC NCls/CrossedRows" );
219+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts::Eta + 1 , " #eta" );
220+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::PtMin + 1 , " #it{p}_{T} min" );
221+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::TpcChi2NCls + 1 , " TPC #chi^{2}/NCls" );
222+ hTrackSel->GetXaxis ()->SetBinLabel (TrackCuts ::ItsChi2NCls + 1 , " ITS #chi^{2}/NCls" );
219223 }
220224
221225 template <bool isV0, typename Coll, typename Cand>
@@ -287,40 +291,40 @@ struct HfTaskPidStudies {
287291 {
288292 if constexpr (std::is_same<T1, V0sMcRec::iterator>::value) {
289293 if (!cand.has_v0MCCore ()) {
290- return aod::pid_studies:: Particle::NotMatched;
294+ return Particle::NotMatched;
291295 }
292296 auto v0MC = cand.template v0MCCore_as <aod::V0MCCores>();
293297 if (v0MC.pdgCode () == kK0Short && v0MC.pdgCodeNegative () == -kPiPlus && v0MC.pdgCodePositive () == kPiPlus ) {
294- return aod::pid_studies:: Particle::K0s;
298+ return Particle::K0s;
295299 }
296300 if (v0MC.pdgCode () == kLambda0 && v0MC.pdgCodeNegative () == -kPiPlus && v0MC.pdgCodePositive () == kProton ) {
297- return aod::pid_studies:: Particle::Lambda;
301+ return Particle::Lambda;
298302 }
299303 if (v0MC.pdgCode () == -kLambda0 && v0MC.pdgCodeNegative () == -kProton && v0MC.pdgCodePositive () == kPiPlus ) {
300- return -aod::pid_studies:: Particle::Lambda;
304+ return -Particle::Lambda;
301305 }
302306 }
303307 if constexpr (std::is_same<T1, CascsMcRec::iterator>::value) {
304308 if (!cand.has_cascMCCore ()) {
305- return aod::pid_studies:: Particle::NotMatched;
309+ return Particle::NotMatched;
306310 }
307311 auto cascMC = cand.template cascMCCore_as <aod::CascMCCores>();
308312 if (cascMC.pdgCode () == kOmegaMinus &&
309313 cascMC.pdgCodeBachelor () == -kKPlus &&
310314 cascMC.pdgCodeV0 () == kLambda0 &&
311315 cascMC.pdgCodePositive () == kProton &&
312316 cascMC.pdgCodeNegative () == -kPiPlus ) {
313- return aod::pid_studies:: Particle::Omega;
317+ return Particle::Omega;
314318 }
315319 if (cascMC.pdgCode () == -kOmegaMinus &&
316320 cascMC.pdgCodeBachelor () == kKPlus &&
317321 cascMC.pdgCodeV0 () == -kLambda0 &&
318322 cascMC.pdgCodePositive () == kPiPlus &&
319323 cascMC.pdgCodeNegative () == -kProton ) {
320- return -aod::pid_studies:: Particle::Omega;
324+ return -Particle::Omega;
321325 }
322326 }
323- return aod::pid_studies:: Particle::NotMatched;
327+ return Particle::NotMatched;
324328 }
325329
326330 template <typename Coll>
@@ -338,66 +342,66 @@ struct HfTaskPidStudies {
338342 {
339343 const auto & posTrack = candidate.template posTrack_as <PidTracks>();
340344 const auto & negTrack = candidate.template negTrack_as <PidTracks>();
341- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::All);
345+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::All);
342346 if constexpr (isV0) {
343347 if (!posTrack.hasITS () || !negTrack.hasITS ()) {
344348 return false ;
345349 }
346- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::HasIts);
350+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::HasIts);
347351 if (!posTrack.hasTPC () || !negTrack.hasTPC ()) {
348352 return false ;
349353 }
350- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::HasTpc);
351- if (posTrack.tpcNClsCrossedRows () < minTrackTpcNClsCrossedRows || negTrack.tpcNClsCrossedRows () < minTrackTpcNClsCrossedRows ) {
354+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::HasTpc);
355+ if (posTrack.tpcNClsCrossedRows () < tpcNClsCrossedRowsTrackMin || negTrack.tpcNClsCrossedRows () < tpcNClsCrossedRowsTrackMin ) {
352356 return false ;
353357 }
354- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::TpcNClsCrossedRows);
355- if (std::abs (posTrack.eta ()) > maxTrackEta || std::abs (negTrack.eta ()) > maxTrackEta ) {
358+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::TpcNClsCrossedRows);
359+ if (std::abs (posTrack.eta ()) > etaTrackMax || std::abs (negTrack.eta ()) > etaTrackMax ) {
356360 return false ;
357361 }
358- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins::EtaMax );
359- if (posTrack.pt () < minTrackPt || negTrack.pt () < minTrackPt ) {
362+ registry.fill (HIST (" hTrackSel" ), TrackCuts::Eta );
363+ if (posTrack.pt () < ptTrackMin || negTrack.pt () < ptTrackMin ) {
360364 return false ;
361365 }
362- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::PtMin);
363- if (posTrack.tpcChi2NCl () > maxTrackTpcChi2NCl || negTrack.tpcChi2NCl () > maxTrackTpcChi2NCl ) {
366+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::PtMin);
367+ if (posTrack.tpcChi2NCl () > tpcChi2NClTrackMax || negTrack.tpcChi2NCl () > tpcChi2NClTrackMax ) {
364368 return false ;
365369 }
366- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::TpcChi2NCls);
367- if (posTrack.itsChi2NCl () > maxTrackItsChi2NCl || negTrack.itsChi2NCl () > maxTrackItsChi2NCl ) {
370+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::TpcChi2NCls);
371+ if (posTrack.itsChi2NCl () > itsChi2NClTrackMax || negTrack.itsChi2NCl () > itsChi2NClTrackMax ) {
368372 return false ;
369373 }
370- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::ItsChi2NCls);
374+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::ItsChi2NCls);
371375 } else {
372376 const auto & bachTrack = candidate.template bachelor_as <PidTracks>();
373377 if (!posTrack.hasITS () || !negTrack.hasITS () || !bachTrack.hasITS ()) {
374378 return false ;
375379 }
376- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::HasIts);
380+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::HasIts);
377381 if (!posTrack.hasTPC () || !negTrack.hasTPC () || !bachTrack.hasTPC ()) {
378382 return false ;
379383 }
380- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::HasTpc);
381- if (posTrack.tpcNClsCrossedRows () < minTrackTpcNClsCrossedRows || negTrack.tpcNClsCrossedRows () < minTrackTpcNClsCrossedRows || bachTrack.tpcNClsCrossedRows () < minTrackTpcNClsCrossedRows ) {
384+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::HasTpc);
385+ if (posTrack.tpcNClsCrossedRows () < tpcNClsCrossedRowsTrackMin || negTrack.tpcNClsCrossedRows () < tpcNClsCrossedRowsTrackMin || bachTrack.tpcNClsCrossedRows () < tpcNClsCrossedRowsTrackMin ) {
382386 return false ;
383387 }
384- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::TpcNClsCrossedRows);
385- if (std::abs (posTrack.eta ()) > maxTrackEta || std::abs (negTrack.eta ()) > maxTrackEta || std::abs (bachTrack.eta ()) > maxTrackEta ) {
388+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::TpcNClsCrossedRows);
389+ if (std::abs (posTrack.eta ()) > etaTrackMax || std::abs (negTrack.eta ()) > etaTrackMax || std::abs (bachTrack.eta ()) > etaTrackMax ) {
386390 return false ;
387391 }
388- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins::EtaMax );
389- if (posTrack.pt () < minTrackPt || negTrack.pt () < minTrackPt || bachTrack.pt () < minTrackPt ) {
392+ registry.fill (HIST (" hTrackSel" ), TrackCuts::Eta );
393+ if (posTrack.pt () < ptTrackMin || negTrack.pt () < ptTrackMin || bachTrack.pt () < ptTrackMin ) {
390394 return false ;
391395 }
392- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::PtMin);
393- if (posTrack.tpcChi2NCl () > maxTrackTpcChi2NCl || negTrack.tpcChi2NCl () > maxTrackTpcChi2NCl || bachTrack.tpcChi2NCl () > maxTrackTpcChi2NCl ) {
396+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::PtMin);
397+ if (posTrack.tpcChi2NCl () > tpcChi2NClTrackMax || negTrack.tpcChi2NCl () > tpcChi2NClTrackMax || bachTrack.tpcChi2NCl () > tpcChi2NClTrackMax ) {
394398 return false ;
395399 }
396- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::TpcChi2NCls);
397- if (posTrack.itsChi2NCl () > maxTrackItsChi2NCl || negTrack.itsChi2NCl () > maxTrackItsChi2NCl || bachTrack.itsChi2NCl () > maxTrackItsChi2NCl ) {
400+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::TpcChi2NCls);
401+ if (posTrack.itsChi2NCl () > itsChi2NClTrackMax || negTrack.itsChi2NCl () > itsChi2NClTrackMax || bachTrack.itsChi2NCl () > itsChi2NClTrackMax ) {
398402 return false ;
399403 }
400- registry.fill (HIST (" hTrackSel" ), o2::aod::pid_studies::TrackQABins ::ItsChi2NCls);
404+ registry.fill (HIST (" hTrackSel" ), TrackCuts ::ItsChi2NCls);
401405 }
402406 return true ;
403407 }
@@ -495,7 +499,7 @@ struct HfTaskPidStudies {
495499 }
496500 if (isSelectedV0AsK0s (v0) || isSelectedV0AsLambda (v0)) {
497501 int matched = isMatched (v0);
498- if (matched != aod::pid_studies:: Particle::NotMatched) {
502+ if (matched != Particle::NotMatched) {
499503 fillTree<true , CollisionsMc>(v0, matched);
500504 }
501505 }
@@ -516,7 +520,7 @@ struct HfTaskPidStudies {
516520 continue ;
517521 }
518522 if (isSelectedV0AsK0s (v0) || isSelectedV0AsLambda (v0)) {
519- fillTree<true , CollSels>(v0, aod::pid_studies:: Particle::NotMatched);
523+ fillTree<true , CollSels>(v0, Particle::NotMatched);
520524 }
521525 }
522526 }
@@ -538,7 +542,7 @@ struct HfTaskPidStudies {
538542 }
539543 if (isSelectedCascAsOmega<CollisionsMc>(casc)) {
540544 int matched = isMatched (casc);
541- if (matched != aod::pid_studies:: Particle::NotMatched) {
545+ if (matched != Particle::NotMatched) {
542546 fillTree<false , CollisionsMc>(casc, matched);
543547 }
544548 }
@@ -559,7 +563,7 @@ struct HfTaskPidStudies {
559563 continue ;
560564 }
561565 if (isSelectedCascAsOmega<CollSels>(casc)) {
562- fillTree<false , CollSels>(casc, aod::pid_studies:: Particle::NotMatched);
566+ fillTree<false , CollSels>(casc, Particle::NotMatched);
563567 }
564568 }
565569 }
0 commit comments