@@ -187,9 +187,10 @@ struct Lambda1520analysisinpp {
187187
188188 // switches
189189 Configurable<bool > cFillMultQA{" cFillMultQA" , false , " Turn on/off additional QA plots" };
190+ Configurable<bool > cFillTrackQA{" cFillTrackQA" , false , " Turn on/off additional QA plots" };
190191 Configurable<bool > cFilladditionalQAeventPlots{" cFilladditionalQAeventPlots" , false , " Additional QA event plots" };
191192 Configurable<bool > cFilladditionalMEPlots{" cFilladditionalMEPlots" , false , " Additional Mixed event plots" };
192- Configurable<bool > cFilldeltaEtaPhiPlots{" cFilldeltaEtaPhiPlots" , false , " Enamble additional cuts on daughters" };
193+ Configurable<bool > cFilldeltaEtaPhiPlots{" cFilldeltaEtaPhiPlots" , false , " Enable additional cuts on daughters" };
193194 Configurable<bool > cFill1DQAs{" cFill1DQAs" , false , " Invariant mass 1D" };
194195 Configurable<int > centEstimator{" centEstimator" , 0 , " Select centrality estimator: 0 - FT0M, 1 - FT0A, 2 - FT0C" };
195196
@@ -201,22 +202,22 @@ struct Lambda1520analysisinpp {
201202 // Filter centralityFilter = nabs(aod::cent::centFT0C) <= cfg_Event_CentralityMax;
202203 // Filter triggerFilter = (o2::aod::evsel::sel8 == true);
203204
204- Filter tofPIDFilter = aod::track::tofExpMom < 0 .0f || ((aod::track::tofExpMom > 0 .0f ) && (/* (nabs(aod::pidtof::tofNSigmaPi) < configPID.pidnSigmaPreSelectionCut) || */ (nabs(aod::pidtof::tofNSigmaKa) < configPID.pidnSigmaPreSelectionCut) || (nabs(aod::pidtof::tofNSigmaPr) < configPID.pidnSigmaPreSelectionCut))); // TOF
205- Filter tpcPIDFilter = /* nabs(aod::pidtpc::tpcNSigmaPi) < configPID.pidnSigmaPreSelectionCut || */ nabs(aod::pidtpc::tpcNSigmaKa) < configPID.pidnSigmaPreSelectionCut || nabs(aod::pidtpc::tpcNSigmaPr) < configPID.pidnSigmaPreSelectionCut; // TPC
206- Filter trackFilter = (configTracks.trackSelection == AllTracks) ||
207- ((configTracks.trackSelection == GlobalTracks) && requireGlobalTrackInFilter()) ||
208- ((configTracks.trackSelection == GlobalTracksWoPtEta) && requireGlobalTrackWoPtEtaInFilter()) ||
209- ((configTracks.trackSelection == GlobalTracksWoDCA) && requireGlobalTrackWoDCAInFilter()) ||
210- ((configTracks.trackSelection == QualityTracks) && requireQualityTracksInFilter()) ||
211- ((configTracks.trackSelection == InAcceptanceTracks) && requireTrackCutInFilter(TrackSelectionFlags::kInAcceptanceTracks ));
212-
213- Filter acceptanceFilter = (nabs(aod::track::eta) < configTracks.cfgCutEta && nabs(aod::track::pt) > configTracks.cMinPtcut);
214- // Filter DCAcutFilter = (nabs(aod::track::dcaXY) < configTracks.cfgCutDCAxy) && (nabs(aod::track::dcaZ) < configTracks.cfgCutDCAz);
205+ Filter acceptanceFilter = (nabs(aod::track::eta) < configTracks.cfgCutEta && nabs(aod::track::pt) > configTracks.cMinPtcut) &&
206+ (nabs(aod::track::dcaXY) < configTracks.cMaxDCArToPVcut) && (nabs(aod::track::dcaZ) < configTracks.cMaxDCAzToPVcut);
207+
208+ // Filter tofPIDFilter = aod::track::tofExpMom < 0.0f || ((aod::track::tofExpMom > 0.0f) && ( (nabs(aod::pidtof::tofNSigmaPi) < configPID.pidnSigmaPreSelectionCut) || (nabs(aod::pidtof::tofNSigmaKa) < configPID.pidnSigmaPreSelectionCut) || (nabs(aod::pidtof::tofNSigmaPr) < configPID.pidnSigmaPreSelectionCut))); // TOF
209+ // Filter tpcPIDFilter = nabs(aod::pidtpc::tpcNSigmaPi) < configPID.pidnSigmaPreSelectionCut || nabs(aod::pidtpc::tpcNSigmaKa) < configPID.pidnSigmaPreSelectionCut || nabs(aod::pidtpc::tpcNSigmaPr) < configPID.pidnSigmaPreSelectionCut; // TPC
210+ /* Filter trackFilter = (configTracks.trackSelection == AllTracks) ||
211+ ((configTracks.trackSelection == GlobalTracks) && requireGlobalTrackInFilter()) ||
212+ ((configTracks.trackSelection == GlobalTracksWoPtEta) && requireGlobalTrackWoPtEtaInFilter()) ||
213+ ((configTracks.trackSelection == GlobalTracksWoDCA) && requireGlobalTrackWoDCAInFilter()) ||
214+ ((configTracks.trackSelection == QualityTracks) && requireQualityTracksInFilter()) ||
215+ ((configTracks.trackSelection == InAcceptanceTracks) && requireTrackCutInFilter(TrackSelectionFlags::kInAcceptanceTracks));
216+ */
215217 // Filter primarytrackFilter = requirePVContributor() && requirePrimaryTrack() && requireGlobalTrackWoDCA();
216218
217219 using EventCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
218220 using TrackCandidates = soa::Filtered<soa::Join<aod::FullTracks, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr, aod::TracksDCA, aod::TrackSelection, aod::TrackSelectionExtension>>;
219-
220221 using MCEventCandidates = soa::Join<EventCandidates, aod::McCollisionLabels>;
221222 using MCTrackCandidates = soa::Filtered<soa::Join<TrackCandidates, aod::McTrackLabels>>;
222223
@@ -290,20 +291,21 @@ struct Lambda1520analysisinpp {
290291 if (doprocessData) {
291292 // Track QA before cuts
292293 // --- Track
293- histos.add (" QA/QAbefore/Track/TOF_TPC_Map_ka_all" , " TOF + TPC Combined PID for Kaon;{#sigma_{TOF}^{Kaon}};{#sigma_{TPC}^{Kaon}}" , {HistType::kTH2F , {axisPIDQA, axisPIDQA}});
294- histos.add (" QA/QAbefore/Track/TOF_Nsigma_ka_all" , " TOF NSigma for Kaon;#it{p}_{T} (GeV/#it{c});{#sigma_{TOF}^{Kaon}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
295- histos.add (" QA/QAbefore/Track/TPC_Nsigma_ka_all" , " TPC NSigma for Kaon;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Kaon}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
296- histos.add (" QA/QAbefore/Track/TPConly_Nsigma_ka" , " TPC NSigma for Kaon;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Kaon}};" , {HistType::kTH2F , {axisPt, axisPIDQA}});
297- histos.add (" QA/QAbefore/Track/TOF_TPC_Map_pr_all" , " TOF + TPC Combined PID for Proton;{#sigma_{TOF}^{Proton}};{#sigma_{TPC}^{Proton}}" , {HistType::kTH2F , {axisPIDQA, axisPIDQA}});
298- histos.add (" QA/QAbefore/Track/TOF_Nsigma_pr_all" , " TOF NSigma for Proton;#it{p}_{T} (GeV/#it{c});{#sigma_{TOF}^{Proton}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
299- histos.add (" QA/QAbefore/Track/TPC_Nsigma_pr_all" , " TPC NSigma for Proton;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Proton}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
300- histos.add (" QA/QAbefore/Track/TPConly_Nsigma_pr" , " TPC NSigma for Proton;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Proton}};" , {HistType::kTH2F , {axisPt, axisPIDQA}});
301- histos.add (" QA/QAbefore/Track/dcaZ" , " DCA_{Z} distribution of selected Kaons; #it{p}_{T} (GeV/#it{c}); DCA_{Z} (cm); " , HistType::kTH2F , {axisPt, axisDCAz});
302- histos.add (" QA/QAbefore/Track/dcaXY" , " DCA_{XY} momentum distribution of selected Kaons; #it{p}_{T} (GeV/#it{c}); DCA_{XY} (cm);" , HistType::kTH2F , {axisPt, axisDCAxy});
303- histos.add (" QA/QAbefore/Track/TPC_CR" , " # TPC Xrows distribution of selected Kaons; #it{p}_{T} (GeV/#it{c}); TPC X rows" , HistType::kTH2F , {axisPt, axisTPCXrow});
304- histos.add (" QA/QAbefore/Track/pT" , " pT distribution of Kaons; #it{p}_{T} (GeV/#it{c}); Counts;" , {HistType::kTH1F , {axisPt}});
305- histos.add (" QA/QAbefore/Track/eta" , " #eta distribution of Kaons; #eta; Counts;" , {HistType::kTH1F , {axisEta}});
306-
294+ if (cFillTrackQA) {
295+ histos.add (" QA/QAbefore/Track/TOF_TPC_Map_ka_all" , " TOF + TPC Combined PID for Kaon;{#sigma_{TOF}^{Kaon}};{#sigma_{TPC}^{Kaon}}" , {HistType::kTH2F , {axisPIDQA, axisPIDQA}});
296+ histos.add (" QA/QAbefore/Track/TOF_Nsigma_ka_all" , " TOF NSigma for Kaon;#it{p}_{T} (GeV/#it{c});{#sigma_{TOF}^{Kaon}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
297+ histos.add (" QA/QAbefore/Track/TPC_Nsigma_ka_all" , " TPC NSigma for Kaon;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Kaon}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
298+ histos.add (" QA/QAbefore/Track/TPConly_Nsigma_ka" , " TPC NSigma for Kaon;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Kaon}};" , {HistType::kTH2F , {axisPt, axisPIDQA}});
299+ histos.add (" QA/QAbefore/Track/TOF_TPC_Map_pr_all" , " TOF + TPC Combined PID for Proton;{#sigma_{TOF}^{Proton}};{#sigma_{TPC}^{Proton}}" , {HistType::kTH2F , {axisPIDQA, axisPIDQA}});
300+ histos.add (" QA/QAbefore/Track/TOF_Nsigma_pr_all" , " TOF NSigma for Proton;#it{p}_{T} (GeV/#it{c});{#sigma_{TOF}^{Proton}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
301+ histos.add (" QA/QAbefore/Track/TPC_Nsigma_pr_all" , " TPC NSigma for Proton;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Proton}};" , {HistType::kTHnSparseF , {axisMult, axisPt, axisPIDQA}});
302+ histos.add (" QA/QAbefore/Track/TPConly_Nsigma_pr" , " TPC NSigma for Proton;#it{p}_{T} (GeV/#it{c});{#sigma_{TPC}^{Proton}};" , {HistType::kTH2F , {axisPt, axisPIDQA}});
303+ histos.add (" QA/QAbefore/Track/dcaZ" , " DCA_{Z} distribution of selected Kaons; #it{p}_{T} (GeV/#it{c}); DCA_{Z} (cm); " , HistType::kTH2F , {axisPt, axisDCAz});
304+ histos.add (" QA/QAbefore/Track/dcaXY" , " DCA_{XY} momentum distribution of selected Kaons; #it{p}_{T} (GeV/#it{c}); DCA_{XY} (cm);" , HistType::kTH2F , {axisPt, axisDCAxy});
305+ histos.add (" QA/QAbefore/Track/TPC_CR" , " # TPC Xrows distribution of selected Kaons; #it{p}_{T} (GeV/#it{c}); TPC X rows" , HistType::kTH2F , {axisPt, axisTPCXrow});
306+ histos.add (" QA/QAbefore/Track/pT" , " pT distribution of Kaons; #it{p}_{T} (GeV/#it{c}); Counts;" , {HistType::kTH1F , {axisPt}});
307+ histos.add (" QA/QAbefore/Track/eta" , " #eta distribution of Kaons; #eta; Counts;" , {HistType::kTH1F , {axisEta}});
308+ }
307309 if (cFillMultQA) {
308310 // Multiplicity correlation calibrations
309311 histos.add (" MultCalib/centGloPVpr" , " Centrality vs Global-Tracks" , kTHnSparseF , {{110 , 0 , 110 , " Centrality" }, {500 , 0 , 5000 , " Global Tracks" }, {500 , 0 , 5000 , " PV tracks" }});
@@ -400,8 +402,8 @@ struct Lambda1520analysisinpp {
400402 histos.add (" QA/MC/h2GenEtaPt_afterRapcut" , " #phi-#it{p}_{T} distribution of Generated #Lambda(1520); #eta; #it{p}_{T}; Counts;" , HistType::kTHnSparseF , {axisEta, axisPtQA});
401403 histos.add (" QA/MC/h2GenPhiRapidity_afterRapcut" , " #phi-y distribution of Generated #Lambda(1520); #phi; y; Counts;" , HistType::kTHnSparseF , {axisPhi, axisRap});
402404
403- histos.add (" Result/MC/Genlambda1520pt" , " pT distribution of True MC #Lambda(1520)0" , kTHnSparseF , {axisMClabel, axisPt, axisMult});
404- histos.add (" Result/MC/Genantilambda1520pt" , " pT distribution of True MC Anti-#Lambda(1520)0" , kTHnSparseF , {axisMClabel, axisPt, axisMult});
405+ histos.add (" Result/MC/Genlambda1520pt" , " pT distribution of True MC #Lambda(1520)0" , kTH3F , {axisMClabel, axisPt, axisMult});
406+ histos.add (" Result/MC/Genantilambda1520pt" , " pT distribution of True MC Anti-#Lambda(1520)0" , kTH3F , {axisMClabel, axisPt, axisMult});
405407 }
406408 if (doprocessMC) {
407409 histos.add (" QA/MC/h2RecoEtaPt_after" , " #eta-#it{p}_{T} distribution of Reconstructed #Lambda(1520); #eta; #it{p}_{T}; Counts;" , HistType::kTHnSparseF , {axisEta, axisPt});
@@ -474,16 +476,7 @@ struct Lambda1520analysisinpp {
474476 bool trackCut (const TrackType track)
475477 {
476478 // basic track cuts
477- if (std::abs (track.pt ()) < configTracks.cMinPtcut )
478- return false ;
479- if (configTracks.cDCAr7SigCut ) {
480- if (std::abs (track.dcaXY ()) > (0 .004f + 0 .013f / (track.pt ()))) // 7 - Sigma cut
481- return false ;
482- } else {
483- if (std::abs (track.dcaXY ()) > configTracks.cMaxDCArToPVcut )
484- return false ;
485- }
486- if (std::abs (track.dcaZ ()) > configTracks.cMaxDCAzToPVcut )
479+ if (configTracks.cDCAr7SigCut && std::abs (track.dcaXY ()) > (0 .004f + 0 .013f / (track.pt ()))) // 7 - Sigma cut
487480 return false ;
488481 if (configTracks.cTPCNClsFound && (track.tpcNClsFound () < configTracks.cMinTPCNClsFound ))
489482 return false ;
@@ -499,10 +492,6 @@ struct Lambda1520analysisinpp {
499492 return false ;
500493 if (configTracks.cfgGlobalTrack && !track.isGlobalTrack ())
501494 return false ;
502- if (configTracks.cfgUseITSRefit && !track.passedITSRefit ())
503- return false ;
504- if (configTracks.cfgUseTPCRefit && !track.passedTPCRefit ())
505- return false ;
506495
507496 return true ;
508497 }
@@ -734,28 +723,30 @@ struct Lambda1520analysisinpp {
734723 // // QA plots before the selection
735724 // --- Track QA all
736725 if constexpr (IsData) {
737- histos.fill (HIST (" QA/QAbefore/Track/TPC_Nsigma_pr_all" ), centrality, trk1ptPr, trk1NSigmaPrTPC);
738- if (isTrk1hasTOF) {
739- histos.fill (HIST (" QA/QAbefore/Track/TOF_Nsigma_pr_all" ), centrality, trk1ptPr, trk1NSigmaPrTOF);
740- histos.fill (HIST (" QA/QAbefore/Track/TOF_TPC_Map_pr_all" ), trk1NSigmaPrTOF, trk1NSigmaPrTPC);
741- }
742- if (!isTrk1hasTOF) {
743- histos.fill (HIST (" QA/QAbefore/Track/TPConly_Nsigma_pr" ), trk1ptPr, trk1NSigmaPrTPC);
744- }
745- histos.fill (HIST (" QA/QAbefore/Track/TPC_Nsigma_ka_all" ), centrality, trk2ptKa, trk2NSigmaKaTPC);
746- if (isTrk2hasTOF) {
747- histos.fill (HIST (" QA/QAbefore/Track/TOF_Nsigma_ka_all" ), centrality, trk2ptKa, trk2NSigmaKaTOF);
748- histos.fill (HIST (" QA/QAbefore/Track/TOF_TPC_Map_ka_all" ), trk2NSigmaKaTOF, trk2NSigmaKaTPC);
749- }
750- if (!isTrk2hasTOF) {
751- histos.fill (HIST (" QA/QAbefore/Track/TPConly_Nsigma_ka" ), trk2ptKa, trk2NSigmaKaTPC);
752- }
726+ if (cFillTrackQA) {
727+ histos.fill (HIST (" QA/QAbefore/Track/TPC_Nsigma_pr_all" ), centrality, trk1ptPr, trk1NSigmaPrTPC);
728+ if (isTrk1hasTOF) {
729+ histos.fill (HIST (" QA/QAbefore/Track/TOF_Nsigma_pr_all" ), centrality, trk1ptPr, trk1NSigmaPrTOF);
730+ histos.fill (HIST (" QA/QAbefore/Track/TOF_TPC_Map_pr_all" ), trk1NSigmaPrTOF, trk1NSigmaPrTPC);
731+ }
732+ if (!isTrk1hasTOF) {
733+ histos.fill (HIST (" QA/QAbefore/Track/TPConly_Nsigma_pr" ), trk1ptPr, trk1NSigmaPrTPC);
734+ }
735+ histos.fill (HIST (" QA/QAbefore/Track/TPC_Nsigma_ka_all" ), centrality, trk2ptKa, trk2NSigmaKaTPC);
736+ if (isTrk2hasTOF) {
737+ histos.fill (HIST (" QA/QAbefore/Track/TOF_Nsigma_ka_all" ), centrality, trk2ptKa, trk2NSigmaKaTOF);
738+ histos.fill (HIST (" QA/QAbefore/Track/TOF_TPC_Map_ka_all" ), trk2NSigmaKaTOF, trk2NSigmaKaTPC);
739+ }
740+ if (!isTrk2hasTOF) {
741+ histos.fill (HIST (" QA/QAbefore/Track/TPConly_Nsigma_ka" ), trk2ptKa, trk2NSigmaKaTPC);
742+ }
753743
754- histos.fill (HIST (" QA/QAbefore/Track/dcaZ" ), trk1ptPr, trk1.dcaZ ());
755- histos.fill (HIST (" QA/QAbefore/Track/dcaXY" ), trk1ptPr, trk1.dcaXY ());
756- histos.fill (HIST (" QA/QAbefore/Track/TPC_CR" ), trk1ptPr, trk1.tpcNClsCrossedRows ());
757- histos.fill (HIST (" QA/QAbefore/Track/pT" ), trk1ptPr);
758- histos.fill (HIST (" QA/QAbefore/Track/eta" ), trk1etaPr);
744+ histos.fill (HIST (" QA/QAbefore/Track/dcaZ" ), trk1ptPr, trk1.dcaZ ());
745+ histos.fill (HIST (" QA/QAbefore/Track/dcaXY" ), trk1ptPr, trk1.dcaXY ());
746+ histos.fill (HIST (" QA/QAbefore/Track/TPC_CR" ), trk1ptPr, trk1.tpcNClsCrossedRows ());
747+ histos.fill (HIST (" QA/QAbefore/Track/pT" ), trk1ptPr);
748+ histos.fill (HIST (" QA/QAbefore/Track/eta" ), trk1etaPr);
749+ }
759750 if (cFilldeltaEtaPhiPlots) {
760751 histos.fill (HIST (" QAbefore/deltaEta" ), deltaEta);
761752 histos.fill (HIST (" QAbefore/deltaPhi" ), deltaPhi);
0 commit comments