Skip to content

Commit 12f3903

Browse files
authored
PWGEM/Dilepton: add single electron QA task (#6997)
1 parent 10701e9 commit 12f3903

9 files changed

Lines changed: 1131 additions & 550 deletions

File tree

PWGEM/Dilepton/Tasks/CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,26 @@ o2physics_add_dpl_workflow(table-reader-barrel
4040
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase O2Physics::AnalysisCore O2Physics::PWGDQCore
4141
COMPONENT_NAME Analysis)
4242

43+
o2physics_add_dpl_workflow(single-electron-qc
44+
SOURCES singleElectronQC.cxx
45+
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::MLCore O2Physics::PWGEMDileptonCore
46+
COMPONENT_NAME Analysis)
47+
4348
o2physics_add_dpl_workflow(single-electron-qc-mc
4449
SOURCES singleElectronQCMC.cxx
4550
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::MLCore O2Physics::PWGEMDileptonCore
4651
COMPONENT_NAME Analysis)
4752

53+
o2physics_add_dpl_workflow(single-muon-qc
54+
SOURCES singleMuonQC.cxx
55+
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::PWGEMDileptonCore
56+
COMPONENT_NAME Analysis)
57+
58+
o2physics_add_dpl_workflow(single-muon-qc-mc
59+
SOURCES singleMuonQCMC.cxx
60+
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::PWGEMDileptonCore
61+
COMPONENT_NAME Analysis)
62+
4863
o2physics_add_dpl_workflow(dielectron-qc
4964
SOURCES dielectronQC.cxx
5065
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::MLCore O2::DCAFitter O2Physics::PWGEMDileptonCore

PWGEM/Dilepton/Tasks/dielectronQC.cxx

Lines changed: 39 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ struct dielectronQC {
102102
Configurable<int> cfgOccupancyMax{"cfgOccupancyMax", 1000000000, "max. occupancy"};
103103
} eventcuts;
104104

105-
DielectronCut fDielectonCut;
105+
DielectronCut fDielectronCut;
106106
struct : ConfigurableGroup {
107107
std::string prefix = "dielectroncut_group";
108108
Configurable<float> cfg_min_mass{"cfg_min_mass", 0.0, "min mass"};
@@ -175,6 +175,14 @@ struct dielectronQC {
175175

176176
void init(InitContext& /*context*/)
177177
{
178+
mRunNumber = 0;
179+
d_bz = 0;
180+
181+
ccdb->setURL(ccdburl);
182+
ccdb->setCaching(true);
183+
ccdb->setLocalObjectValidityChecking();
184+
ccdb->setFatalWhenNull(false);
185+
178186
zvtx_bin_edges = std::vector<float>(ConfVtxBins.value.begin(), ConfVtxBins.value.end());
179187
zvtx_bin_edges.erase(zvtx_bin_edges.begin());
180188

@@ -194,14 +202,6 @@ struct dielectronQC {
194202
DefineDileptonCut();
195203
addhistograms();
196204

197-
mRunNumber = 0;
198-
d_bz = 0;
199-
200-
ccdb->setURL(ccdburl);
201-
ccdb->setCaching(true);
202-
ccdb->setLocalObjectValidityChecking();
203-
ccdb->setFatalWhenNull(false);
204-
205205
// fitter.setPropagateToPCA(true);
206206
// fitter.setMaxR(5.f);
207207
// fitter.setMinParamChange(1e-3);
@@ -359,38 +359,6 @@ struct dielectronQC {
359359
fRegistry.addClone("Pair/same/", "Pair/mix/");
360360
}
361361

362-
// for track info
363-
fRegistry.add("Track/hPt", "pT;p_{T} (GeV/c)", kTH1F, {{1000, 0.0f, 10}}, false);
364-
fRegistry.add("Track/hQoverPt", "q/pT;q/p_{T} (GeV/c)^{-1}", kTH1F, {{400, -20, 20}}, false);
365-
fRegistry.add("Track/hEtaPhi", "#eta vs. #varphi;#varphi (rad.);#eta", kTH2F, {{180, 0, 2 * M_PI}, {40, -2.0f, 2.0f}}, false);
366-
fRegistry.add("Track/hDCAxyz", "DCA xy vs. z;DCA_{xy} (cm);DCA_{z} (cm)", kTH2F, {{200, -1.0f, 1.0f}, {200, -1.0f, 1.0f}}, false);
367-
fRegistry.add("Track/hDCAxyzSigma", "DCA xy vs. z;DCA_{xy} (#sigma);DCA_{z} (#sigma)", kTH2F, {{200, -10.0f, 10.0f}, {200, -10.0f, 10.0f}}, false);
368-
fRegistry.add("Track/hDCA3DSigma", "DCA 3D;DCA_{3D} (#sigma);", kTH1F, {{100, 0.0f, 10.0f}}, false);
369-
fRegistry.add("Track/hDCAxyRes_Pt", "DCA_{xy} resolution vs. pT;p_{T} (GeV/c);DCA_{xy} resolution (#mum)", kTH2F, {{1000, 0, 10}, {500, 0., 500}}, false);
370-
fRegistry.add("Track/hDCAzRes_Pt", "DCA_{z} resolution vs. pT;p_{T} (GeV/c);DCA_{z} resolution (#mum)", kTH2F, {{1000, 0, 10}, {500, 0., 500}}, false);
371-
fRegistry.add("Track/hNclsTPC", "number of TPC clusters", kTH1F, {{161, -0.5, 160.5}}, false);
372-
fRegistry.add("Track/hNcrTPC", "number of TPC crossed rows", kTH1F, {{161, -0.5, 160.5}}, false);
373-
fRegistry.add("Track/hChi2TPC", "chi2/number of TPC clusters", kTH1F, {{100, 0, 10}}, false);
374-
fRegistry.add("Track/hTPCdEdx", "TPC dE/dx;p_{in} (GeV/c);TPC dE/dx (a.u.)", kTH2F, {{1000, 0, 10}, {200, 0, 200}}, false);
375-
fRegistry.add("Track/hTPCNsigmaEl", "TPC n sigma el;p_{in} (GeV/c);n #sigma_{e}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
376-
fRegistry.add("Track/hTPCNsigmaMu", "TPC n sigma mu;p_{in} (GeV/c);n #sigma_{#mu}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
377-
fRegistry.add("Track/hTPCNsigmaPi", "TPC n sigma pi;p_{in} (GeV/c);n #sigma_{#pi}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
378-
fRegistry.add("Track/hTPCNsigmaKa", "TPC n sigma ka;p_{in} (GeV/c);n #sigma_{K}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
379-
fRegistry.add("Track/hTPCNsigmaPr", "TPC n sigma pr;p_{in} (GeV/c);n #sigma_{p}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
380-
fRegistry.add("Track/hTOFbeta", "TOF beta;p_{in} (GeV/c);#beta", kTH2F, {{1000, 0, 10}, {600, 0, 1.2}}, false);
381-
fRegistry.add("Track/h1overTOFbeta", "TOF beta;p_{in} (GeV/c);#beta", kTH2F, {{1000, 0, 10}, {1000, 0.8, 1.8}}, false);
382-
fRegistry.add("Track/hTOFNsigmaEl", "TOF n sigma el;p_{in} (GeV/c);n #sigma_{e}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
383-
fRegistry.add("Track/hTOFNsigmaMu", "TOF n sigma mu;p_{in} (GeV/c);n #sigma_{#mu}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
384-
fRegistry.add("Track/hTOFNsigmaPi", "TOF n sigma pi;p_{in} (GeV/c);n #sigma_{#pi}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
385-
fRegistry.add("Track/hTOFNsigmaKa", "TOF n sigma ka;p_{in} (GeV/c);n #sigma_{K}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
386-
fRegistry.add("Track/hTOFNsigmaPr", "TOF n sigma pr;p_{in} (GeV/c);n #sigma_{p}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
387-
fRegistry.add("Track/hTPCNcr2Nf", "TPC Ncr/Nfindable", kTH1F, {{200, 0, 2}}, false);
388-
fRegistry.add("Track/hTPCNcls2Nf", "TPC Ncls/Nfindable", kTH1F, {{200, 0, 2}}, false);
389-
fRegistry.add("Track/hNclsITS", "number of ITS clusters", kTH1F, {{8, -0.5, 7.5}}, false);
390-
fRegistry.add("Track/hChi2ITS", "chi2/number of ITS clusters", kTH1F, {{100, 0, 10}}, false);
391-
fRegistry.add("Track/hITSClusterMap", "ITS cluster map", kTH1F, {{128, -0.5, 127.5}}, false);
392-
fRegistry.add("Track/hMeanClusterSizeITS", "mean cluster size ITS;<cluster size> on ITS #times cos(#lambda)", kTH1F, {{32, 0, 16}}, false);
393-
394362
// event info
395363
if (nmod == 2) {
396364
o2::aod::pwgem::dilepton::utils::eventhistogram::addEventHistograms<2>(&fRegistry);
@@ -422,38 +390,38 @@ struct dielectronQC {
422390
o2::ml::OnnxModel* eid_bdt = nullptr;
423391
void DefineDileptonCut()
424392
{
425-
fDielectonCut = DielectronCut("fDielectonCut", "fDielectonCut");
393+
fDielectronCut = DielectronCut("fDielectronCut", "fDielectronCut");
426394

427395
// for pair
428-
fDielectonCut.SetMeeRange(dielectroncuts.cfg_min_mass, dielectroncuts.cfg_max_mass);
429-
fDielectonCut.SetMaxPhivPairMeeDep([&](float mll) { return (mll - dielectroncuts.cfg_phiv_intercept) / dielectroncuts.cfg_phiv_slope; });
430-
fDielectonCut.SetPairDCARange(dielectroncuts.cfg_min_pair_dca3d, dielectroncuts.cfg_max_pair_dca3d); // in sigma
431-
fDielectonCut.ApplyPhiV(dielectroncuts.cfg_apply_phiv);
432-
fDielectonCut.ApplyPrefilter(dielectroncuts.cfg_apply_pf);
433-
fDielectonCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
434-
fDielectonCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
396+
fDielectronCut.SetMeeRange(dielectroncuts.cfg_min_mass, dielectroncuts.cfg_max_mass);
397+
fDielectronCut.SetMaxPhivPairMeeDep([&](float mll) { return (mll - dielectroncuts.cfg_phiv_intercept) / dielectroncuts.cfg_phiv_slope; });
398+
fDielectronCut.SetPairDCARange(dielectroncuts.cfg_min_pair_dca3d, dielectroncuts.cfg_max_pair_dca3d); // in sigma
399+
fDielectronCut.ApplyPhiV(dielectroncuts.cfg_apply_phiv);
400+
fDielectronCut.ApplyPrefilter(dielectroncuts.cfg_apply_pf);
401+
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
402+
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
435403

436404
// for track
437-
fDielectonCut.SetTrackPtRange(dielectroncuts.cfg_min_pt_track, 1e+10f);
438-
fDielectonCut.SetTrackEtaRange(-dielectroncuts.cfg_max_eta_track, +dielectroncuts.cfg_max_eta_track);
439-
fDielectonCut.SetMinNClustersTPC(dielectroncuts.cfg_min_ncluster_tpc);
440-
fDielectonCut.SetMinNCrossedRowsTPC(dielectroncuts.cfg_min_ncrossedrows);
441-
fDielectonCut.SetMinNCrossedRowsOverFindableClustersTPC(0.8);
442-
fDielectonCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
443-
fDielectonCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
444-
fDielectonCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
445-
fDielectonCut.SetMeanClusterSizeITSob(0, 16);
446-
fDielectonCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
447-
fDielectonCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);
405+
fDielectronCut.SetTrackPtRange(dielectroncuts.cfg_min_pt_track, 1e+10f);
406+
fDielectronCut.SetTrackEtaRange(-dielectroncuts.cfg_max_eta_track, +dielectroncuts.cfg_max_eta_track);
407+
fDielectronCut.SetMinNClustersTPC(dielectroncuts.cfg_min_ncluster_tpc);
408+
fDielectronCut.SetMinNCrossedRowsTPC(dielectroncuts.cfg_min_ncrossedrows);
409+
fDielectronCut.SetMinNCrossedRowsOverFindableClustersTPC(0.8);
410+
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
411+
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
412+
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
413+
fDielectronCut.SetMeanClusterSizeITSob(0, 16);
414+
fDielectronCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
415+
fDielectronCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);
448416

449417
// for eID
450-
fDielectonCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);
451-
fDielectonCut.SetTPCNsigmaElRange(dielectroncuts.cfg_min_TPCNsigmaEl, dielectroncuts.cfg_max_TPCNsigmaEl);
452-
fDielectonCut.SetTPCNsigmaMuRange(dielectroncuts.cfg_min_TPCNsigmaMu, dielectroncuts.cfg_max_TPCNsigmaMu);
453-
fDielectonCut.SetTPCNsigmaPiRange(dielectroncuts.cfg_min_TPCNsigmaPi, dielectroncuts.cfg_max_TPCNsigmaPi);
454-
fDielectonCut.SetTPCNsigmaKaRange(dielectroncuts.cfg_min_TPCNsigmaKa, dielectroncuts.cfg_max_TPCNsigmaKa);
455-
fDielectonCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
456-
fDielectonCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
418+
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);
419+
fDielectronCut.SetTPCNsigmaElRange(dielectroncuts.cfg_min_TPCNsigmaEl, dielectroncuts.cfg_max_TPCNsigmaEl);
420+
fDielectronCut.SetTPCNsigmaMuRange(dielectroncuts.cfg_min_TPCNsigmaMu, dielectroncuts.cfg_max_TPCNsigmaMu);
421+
fDielectronCut.SetTPCNsigmaPiRange(dielectroncuts.cfg_min_TPCNsigmaPi, dielectroncuts.cfg_max_TPCNsigmaPi);
422+
fDielectronCut.SetTPCNsigmaKaRange(dielectroncuts.cfg_min_TPCNsigmaKa, dielectroncuts.cfg_max_TPCNsigmaKa);
423+
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
424+
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
457425

458426
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
459427
eid_bdt = new o2::ml::OnnxModel();
@@ -470,7 +438,7 @@ struct dielectronQC {
470438
eid_bdt->initModel(dielectroncuts.BDTLocalPathGamma.value, dielectroncuts.enableOptimizations.value);
471439
}
472440

473-
fDielectonCut.SetPIDModel(eid_bdt);
441+
fDielectronCut.SetPIDModel(eid_bdt);
474442
} // end of PID ML
475443
}
476444

@@ -505,17 +473,17 @@ struct dielectronQC {
505473

506474
if constexpr (ev_id == 0) {
507475
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) {
508-
if (!fDielectonCut.IsSelectedTrack<true>(t1, collision) || !fDielectonCut.IsSelectedTrack<true>(t2, collision)) {
476+
if (!fDielectronCut.IsSelectedTrack<true>(t1, collision) || !fDielectronCut.IsSelectedTrack<true>(t2, collision)) {
509477
return false;
510478
}
511479
} else { // cut-based
512-
if (!fDielectonCut.IsSelectedTrack(t1) || !fDielectonCut.IsSelectedTrack(t2)) {
480+
if (!fDielectronCut.IsSelectedTrack(t1) || !fDielectronCut.IsSelectedTrack(t2)) {
513481
return false;
514482
}
515483
}
516484
}
517485

518-
if (!fDielectonCut.IsSelectedPair(t1, t2, d_bz)) {
486+
if (!fDielectronCut.IsSelectedPair(t1, t2, d_bz)) {
519487
return false;
520488
}
521489

@@ -719,7 +687,6 @@ struct dielectronQC {
719687

720688
if (std::find(used_trackIds.begin(), used_trackIds.end(), pair_tmp_id1) == used_trackIds.end()) {
721689
used_trackIds.emplace_back(pair_tmp_id1);
722-
fillTrackInfo(t1);
723690
if (cfgDoMix) {
724691
if (t1.sign() > 0) {
725692
emh_pos->AddTrackToEventPool(key_df_collision, EMTrackWithCov(t1.globalIndex(), collision.globalIndex(), t1.trackId(), t1.pt(), t1.eta(), t1.phi(), o2::constants::physics::MassElectron, t1.sign(), t1.dcaXY(), t1.dcaZ(), possibleIds1,
@@ -734,7 +701,6 @@ struct dielectronQC {
734701
}
735702
if (std::find(used_trackIds.begin(), used_trackIds.end(), pair_tmp_id2) == used_trackIds.end()) {
736703
used_trackIds.emplace_back(pair_tmp_id2);
737-
fillTrackInfo(t2);
738704
if (cfgDoMix) {
739705
if (t2.sign() > 0) {
740706
emh_pos->AddTrackToEventPool(key_df_collision, EMTrackWithCov(t2.globalIndex(), collision.globalIndex(), t2.trackId(), t2.pt(), t2.eta(), t2.phi(), o2::constants::physics::MassElectron, t2.sign(), t2.dcaXY(), t2.dcaZ(), possibleIds1,
@@ -751,42 +717,6 @@ struct dielectronQC {
751717
return true;
752718
}
753719

754-
template <typename TTrack>
755-
void fillTrackInfo(TTrack const& track)
756-
{
757-
float dca_3d = dca3DinSigma(track);
758-
fRegistry.fill(HIST("Track/hPt"), track.pt());
759-
fRegistry.fill(HIST("Track/hQoverPt"), track.sign() / track.pt());
760-
fRegistry.fill(HIST("Track/hEtaPhi"), track.phi(), track.eta());
761-
fRegistry.fill(HIST("Track/hDCAxyz"), track.dcaXY(), track.dcaZ());
762-
fRegistry.fill(HIST("Track/hDCAxyzSigma"), track.dcaXY() / sqrt(track.cYY()), track.dcaZ() / sqrt(track.cZZ()));
763-
fRegistry.fill(HIST("Track/hDCA3DSigma"), dca_3d);
764-
fRegistry.fill(HIST("Track/hDCAxyRes_Pt"), track.pt(), sqrt(track.cYY()) * 1e+4); // convert cm to um
765-
fRegistry.fill(HIST("Track/hDCAzRes_Pt"), track.pt(), sqrt(track.cZZ()) * 1e+4); // convert cm to um
766-
fRegistry.fill(HIST("Track/hNclsITS"), track.itsNCls());
767-
fRegistry.fill(HIST("Track/hNclsTPC"), track.tpcNClsFound());
768-
fRegistry.fill(HIST("Track/hNcrTPC"), track.tpcNClsCrossedRows());
769-
fRegistry.fill(HIST("Track/hTPCNcr2Nf"), track.tpcCrossedRowsOverFindableCls());
770-
fRegistry.fill(HIST("Track/hTPCNcls2Nf"), track.tpcFoundOverFindableCls());
771-
fRegistry.fill(HIST("Track/hChi2TPC"), track.tpcChi2NCl());
772-
fRegistry.fill(HIST("Track/hChi2ITS"), track.itsChi2NCl());
773-
fRegistry.fill(HIST("Track/hITSClusterMap"), track.itsClusterMap());
774-
fRegistry.fill(HIST("Track/hMeanClusterSizeITS"), track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())));
775-
fRegistry.fill(HIST("Track/hTPCdEdx"), track.tpcInnerParam(), track.tpcSignal());
776-
fRegistry.fill(HIST("Track/hTPCNsigmaEl"), track.tpcInnerParam(), track.tpcNSigmaEl());
777-
fRegistry.fill(HIST("Track/hTPCNsigmaMu"), track.tpcInnerParam(), track.tpcNSigmaMu());
778-
fRegistry.fill(HIST("Track/hTPCNsigmaPi"), track.tpcInnerParam(), track.tpcNSigmaPi());
779-
fRegistry.fill(HIST("Track/hTPCNsigmaKa"), track.tpcInnerParam(), track.tpcNSigmaKa());
780-
fRegistry.fill(HIST("Track/hTPCNsigmaPr"), track.tpcInnerParam(), track.tpcNSigmaPr());
781-
fRegistry.fill(HIST("Track/hTOFbeta"), track.tpcInnerParam(), track.beta());
782-
fRegistry.fill(HIST("Track/h1overTOFbeta"), track.tpcInnerParam(), 1. / track.beta());
783-
fRegistry.fill(HIST("Track/hTOFNsigmaEl"), track.tpcInnerParam(), track.tofNSigmaEl());
784-
fRegistry.fill(HIST("Track/hTOFNsigmaMu"), track.tpcInnerParam(), track.tofNSigmaMu());
785-
fRegistry.fill(HIST("Track/hTOFNsigmaPi"), track.tpcInnerParam(), track.tofNSigmaPi());
786-
fRegistry.fill(HIST("Track/hTOFNsigmaKa"), track.tpcInnerParam(), track.tofNSigmaKa());
787-
fRegistry.fill(HIST("Track/hTOFNsigmaPr"), track.tpcInnerParam(), track.tofNSigmaPr());
788-
}
789-
790720
Filter collisionFilter_centrality = (cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < cfgCentMax);
791721
using FilteredMyCollisions = soa::Filtered<MyCollisions>;
792722

0 commit comments

Comments
 (0)