Skip to content

Commit 8febe43

Browse files
authored
[PWGEM/Dilepton] update treeCreatorElectronMLDDA.cxx (#10364)
1 parent 66f9e5c commit 8febe43

File tree

1 file changed

+110
-63
lines changed

1 file changed

+110
-63
lines changed

PWGEM/Dilepton/TableProducer/treeCreatorElectronMLDDA.cxx

Lines changed: 110 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include "DetectorsBase/GeometryManager.h"
3838
#include "DataFormatsParameters/GRPObject.h"
3939
#include "DataFormatsParameters/GRPMagField.h"
40+
#include "DataFormatsCalibration/MeanVertexObject.h"
4041
#include "CCDB/BasicCCDBManager.h"
4142
#include "PWGEM/Dilepton/DataModel/lmeeMLTables.h"
4243
#include "PWGEM/Dilepton/Utils/PairUtilities.h"
@@ -52,7 +53,7 @@ using namespace o2::constants::physics;
5253
using MyCollisions = soa::Join<aod::Collisions, aod::EvSels>;
5354
using MyCollision = MyCollisions::iterator;
5455

55-
using MyTracks = soa::Join<aod::Tracks, aod::TracksCov, aod::TracksExtra, aod::TracksDCA,
56+
using MyTracks = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU,
5657
aod::pidTPCFullEl, aod::pidTPCFullMu, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
5758
aod::pidTOFFullEl, aod::pidTOFFullMu, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr, aod::pidTOFbeta>;
5859
using MyTrack = MyTracks::iterator;
@@ -103,19 +104,19 @@ struct TreeCreatorElectronMLDDA {
103104
{"V0/hITSClusterSize_P_Ka", "mean ITS cluster size vs. p;p^{ITS-TPC} (GeV/c);<ITS cluster size> #times cos(#lambda)", {HistType::kTH2F, {{500, 0.f, 5.f}, {150, 0.0, 15}}}},
104105
{"V0/hITSClusterSize_P_Pr", "mean ITS cluster size vs. p;p^{ITS-TPC} (GeV/c);<ITS cluster size> #times cos(#lambda)", {HistType::kTH2F, {{500, 0.f, 5.f}, {150, 0.0, 15}}}},
105106

106-
{"PrimaryTrack/hTPCdEdx_P", "TPC dEdx vs. p;p^{ITS-TPC} (GeV/c);TPC dE/dx", {HistType::kTH2F, {{500, 0, 5}, {200, 0, 200}}}},
107-
{"PrimaryTrack/hTOFbeta_P", "TOF beta vs. p;p^{ITS-TPC} (GeV/c);TOF #beta", {HistType::kTH2F, {{500, 0, 5}, {220, 0, 1.1}}}},
108-
{"PrimaryTrack/hITSClusterSize_P", "mean ITS cluster size vs. p;p^{ITS-TPC} (GeV/c);<ITS cluster size> #times cos(#lambda)", {HistType::kTH2F, {{500, 0.f, 5.f}, {150, 0.0, 15}}}},
109-
{"PrimaryTrack/hTPCNsigmaEl_P", "TPC n#sigma_{e} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{e}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
110-
{"PrimaryTrack/hTPCNsigmaMu_P", "TPC n#sigma_{#mu} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{#mu}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
111-
{"PrimaryTrack/hTPCNsigmaPi_P", "TPC n#sigma_{#pi} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{#pi}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
112-
{"PrimaryTrack/hTPCNsigmaKa_P", "TPC n#sigma_{K} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{K}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
113-
{"PrimaryTrack/hTPCNsigmaPr_P", "TPC n#sigma_{p} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{p}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
114-
{"PrimaryTrack/hTOFNsigmaEl_P", "TOF n#sigma_{e} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{e}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
115-
{"PrimaryTrack/hTOFNsigmaMu_P", "TOF n#sigma_{#mu} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{#mu}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
116-
{"PrimaryTrack/hTOFNsigmaPi_P", "TOF n#sigma_{#pi} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{#pi}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
117-
{"PrimaryTrack/hTOFNsigmaKa_P", "TOF n#sigma_{K} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{K}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
118-
{"PrimaryTrack/hTOFNsigmaPr_P", "TOF n#sigma_{p} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{p}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
107+
// {"PrimaryTrack/hTPCdEdx_P", "TPC dEdx vs. p;p^{ITS-TPC} (GeV/c);TPC dE/dx", {HistType::kTH2F, {{500, 0, 5}, {200, 0, 200}}}},
108+
// {"PrimaryTrack/hTOFbeta_P", "TOF beta vs. p;p^{ITS-TPC} (GeV/c);TOF #beta", {HistType::kTH2F, {{500, 0, 5}, {220, 0, 1.1}}}},
109+
// {"PrimaryTrack/hITSClusterSize_P", "mean ITS cluster size vs. p;p^{ITS-TPC} (GeV/c);<ITS cluster size> #times cos(#lambda)", {HistType::kTH2F, {{500, 0.f, 5.f}, {150, 0.0, 15}}}},
110+
// {"PrimaryTrack/hTPCNsigmaEl_P", "TPC n#sigma_{e} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{e}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
111+
// {"PrimaryTrack/hTPCNsigmaMu_P", "TPC n#sigma_{#mu} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{#mu}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
112+
// {"PrimaryTrack/hTPCNsigmaPi_P", "TPC n#sigma_{#pi} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{#pi}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
113+
// {"PrimaryTrack/hTPCNsigmaKa_P", "TPC n#sigma_{K} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{K}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
114+
// {"PrimaryTrack/hTPCNsigmaPr_P", "TPC n#sigma_{p} vs. p;p^{ITS-TPC} (GeV/c);n #sigma_{p}^{TPC}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
115+
// {"PrimaryTrack/hTOFNsigmaEl_P", "TOF n#sigma_{e} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{e}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
116+
// {"PrimaryTrack/hTOFNsigmaMu_P", "TOF n#sigma_{#mu} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{#mu}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
117+
// {"PrimaryTrack/hTOFNsigmaPi_P", "TOF n#sigma_{#pi} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{#pi}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
118+
// {"PrimaryTrack/hTOFNsigmaKa_P", "TOF n#sigma_{K} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{K}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
119+
// {"PrimaryTrack/hTOFNsigmaPr_P", "TOF n#sigma_{p} vs. p;p^{ITS-TOF} (GeV/c);n #sigma_{p}^{TOF}", {HistType::kTH2F, {{500, 0.f, 5.f}, {100, -5, +5}}}},
119120

120121
{"Cascade/hRxy_Xi", "R_{xy} of cascade vs. mass;m_{#Lambda#pi};R_{xy} (cm)", {HistType::kTH2F, {{200, 1.2, 1.4}, {200, 0, 20.f}}}},
121122
{"Cascade/hRxy_Omega", "R_{xy} of cascade vs. mass;m_{#LambdaK};R_{xy} (cm)", {HistType::kTH2F, {{200, 1.6, 1.8}, {200, 0, 20.f}}}},
@@ -144,6 +145,7 @@ struct TreeCreatorElectronMLDDA {
144145
Configurable<std::string> grpmagPath{"grpmagPath", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object"};
145146
Configurable<std::string> lutPath{"lutPath", "GLO/Param/MatLUT", "Path of the Lut parametrization"};
146147
Configurable<std::string> geoPath{"geoPath", "GLO/Config/GeometryAligned", "Path of the geometry file"};
148+
Configurable<std::string> mVtxPath{"mVtxPath", "GLO/Calib/MeanVertex", "Path of the mean vertex file"};
147149
Configurable<bool> skipGRPOquery{"skipGRPOquery", true, "skip grpo query"};
148150
// Operation and minimisation criteria
149151
Configurable<double> d_bz_input{"d_bz_input", -999, "bz field, -999 is automatic"};
@@ -170,6 +172,7 @@ struct TreeCreatorElectronMLDDA {
170172
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 5.0, "max chi2/NclsTPC"};
171173
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 6.0, "max chi2/NclsITS"};
172174
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.3, "max dca XY in cm"};
175+
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.3, "max dca Z in cm"};
173176
} trackcuts;
174177

175178
struct : ConfigurableGroup {
@@ -244,7 +247,11 @@ struct TreeCreatorElectronMLDDA {
244247
int mRunNumber;
245248
float d_bz;
246249
Service<o2::ccdb::BasicCCDBManager> ccdb;
250+
o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT;
251+
o2::dataformats::VertexBase mVtx;
252+
const o2::dataformats::MeanVertexObject* mMeanVtx = nullptr;
247253
o2::base::MatLayerCylSet* lut = nullptr;
254+
o2::dataformats::DCA mDcaInfoCov;
248255

249256
std::mt19937 engine;
250257
std::uniform_real_distribution<float> dist01;
@@ -281,6 +288,14 @@ struct TreeCreatorElectronMLDDA {
281288
return;
282289
}
283290

291+
// load matLUT for this timestamp
292+
if (!lut) {
293+
LOG(info) << "Loading material look-up table for timestamp: " << bc.timestamp();
294+
lut = o2::base::MatLayerCylSet::rectifyPtrFromFile(ccdb->getForTimeStamp<o2::base::MatLayerCylSet>(lutPath, bc.timestamp()));
295+
} else {
296+
LOG(info) << "Material look-up table already in place. Not reloading.";
297+
}
298+
284299
// In case override, don't proceed, please - no CCDB access required
285300
if (d_bz_input > -990) {
286301
d_bz = d_bz_input;
@@ -289,6 +304,8 @@ struct TreeCreatorElectronMLDDA {
289304
grpmag.setL3Current(30000.f / (d_bz / 5.0f));
290305
}
291306
o2::base::Propagator::initFieldFromGRP(&grpmag);
307+
o2::base::Propagator::Instance()->setMatLUT(lut);
308+
mMeanVtx = ccdb->getForTimeStamp<o2::dataformats::MeanVertexObject>(mVtxPath, bc.timestamp());
292309
mRunNumber = bc.runNumber();
293310
return;
294311
}
@@ -300,6 +317,8 @@ struct TreeCreatorElectronMLDDA {
300317
grpo = ccdb->getForTimeStamp<o2::parameters::GRPObject>(grpPath, run3grp_timestamp);
301318
if (grpo) {
302319
o2::base::Propagator::initFieldFromGRP(grpo);
320+
o2::base::Propagator::Instance()->setMatLUT(lut);
321+
mMeanVtx = ccdb->getForTimeStamp<o2::dataformats::MeanVertexObject>(mVtxPath, bc.timestamp());
303322
// Fetch magnetic field from ccdb for current collision
304323
d_bz = grpo->getNominalL3Field();
305324
LOG(info) << "Retrieved GRP for timestamp " << run3grp_timestamp << " with magnetic field of " << d_bz << " kZG";
@@ -309,16 +328,13 @@ struct TreeCreatorElectronMLDDA {
309328
LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grp_timestamp;
310329
}
311330
o2::base::Propagator::initFieldFromGRP(grpmag);
331+
o2::base::Propagator::Instance()->setMatLUT(lut);
332+
mMeanVtx = ccdb->getForTimeStamp<o2::dataformats::MeanVertexObject>(mVtxPath, bc.timestamp());
312333
// Fetch magnetic field from ccdb for current collision
313334
d_bz = std::lround(5.f * grpmag->getL3Current() / 30000.f);
314335
LOG(info) << "Retrieved GRP for timestamp " << run3grp_timestamp << " with magnetic field of " << d_bz << " kZG";
315336
}
316337
mRunNumber = bc.runNumber();
317-
318-
if (useMatCorrType == 2) {
319-
// setMatLUT only after magfield has been initalized (setMatLUT has implicit and problematic init field call if not)
320-
o2::base::Propagator::Instance()->setMatLUT(lut);
321-
}
322338
}
323339

324340
template <int il0, int il1, typename TTrack>
@@ -339,21 +355,13 @@ struct TreeCreatorElectronMLDDA {
339355
}
340356
}
341357

342-
template <typename TTrack>
343-
bool isSelectedTrack(TTrack const& track)
358+
template <typename TCollision, typename TTrack>
359+
bool isSelectedTrack(TCollision const& collision, TTrack const& track)
344360
{
345-
if (std::fabs(track.eta()) > trackcuts.cfg_max_eta || track.pt() < trackcuts.cfg_min_pt) {
346-
return false;
347-
}
348-
349361
if (!track.hasITS() || !track.hasTPC()) {
350362
return false;
351363
}
352364

353-
if (std::fabs(track.dcaXY()) > trackcuts.cfg_max_dcaxy) {
354-
return false;
355-
}
356-
357365
if (track.itsNCls() < trackcuts.cfg_min_ncluster_its) {
358366
return false;
359367
}
@@ -379,23 +387,36 @@ struct TreeCreatorElectronMLDDA {
379387
if (track.tpcFractionSharedCls() > trackcuts.cfg_max_frac_shared_clusters_tpc) {
380388
return false;
381389
}
382-
return true;
383-
}
384390

385-
template <typename TTrack>
386-
bool isSelectedV0Leg(TTrack const& track)
387-
{
388-
if (std::fabs(track.eta()) > v0cuts.cfg_max_eta || track.pt() < v0cuts.cfg_min_pt) {
391+
mDcaInfoCov.set(999, 999, 999, 999, 999);
392+
auto track_par_cov_recalc = getTrackParCov(track);
393+
track_par_cov_recalc.setPID(track.pidForTracking());
394+
mVtx.setPos({collision.posX(), collision.posY(), collision.posZ()});
395+
mVtx.setCov(collision.covXX(), collision.covXY(), collision.covYY(), collision.covXZ(), collision.covYZ(), collision.covZZ());
396+
o2::base::Propagator::Instance()->propagateToDCABxByBz(mVtx, track_par_cov_recalc, 2.f, matCorr, &mDcaInfoCov);
397+
float dcaXY = mDcaInfoCov.getY();
398+
float dcaZ = mDcaInfoCov.getZ();
399+
400+
if (std::fabs(track_par_cov_recalc.getEta()) > trackcuts.cfg_max_eta || track_par_cov_recalc.getPt() < trackcuts.cfg_min_pt) {
389401
return false;
390402
}
391403

392-
if (!track.hasITS() || !track.hasTPC()) {
404+
if (std::fabs(dcaXY) > trackcuts.cfg_max_dcaxy) {
405+
return false;
406+
}
407+
if (std::fabs(dcaZ) > trackcuts.cfg_max_dcaz) {
393408
return false;
394409
}
395410

396-
// if (std::fabs(track.dcaXY()) < v0cuts.cfg_min_dcaxy_v0leg) { // this is applied in filter.
397-
// return false;
398-
// }
411+
return true;
412+
}
413+
414+
template <typename TCollision, typename TTrack>
415+
bool isSelectedV0Leg(TCollision const& collision, TTrack const& track)
416+
{
417+
if (!track.hasITS() || !track.hasTPC()) {
418+
return false;
419+
}
399420

400421
if (track.itsNCls() < v0cuts.cfg_min_ncluster_its) {
401422
return false;
@@ -422,6 +443,24 @@ struct TreeCreatorElectronMLDDA {
422443
if (track.tpcFractionSharedCls() > v0cuts.cfg_max_frac_shared_clusters_tpc) {
423444
return false;
424445
}
446+
447+
mDcaInfoCov.set(999, 999, 999, 999, 999);
448+
auto track_par_cov_recalc = getTrackParCov(track);
449+
track_par_cov_recalc.setPID(track.pidForTracking());
450+
mVtx.setPos({collision.posX(), collision.posY(), collision.posZ()});
451+
mVtx.setCov(collision.covXX(), collision.covXY(), collision.covYY(), collision.covXZ(), collision.covYZ(), collision.covZZ());
452+
o2::base::Propagator::Instance()->propagateToDCABxByBz(mVtx, track_par_cov_recalc, 2.f, matCorr, &mDcaInfoCov);
453+
float dcaXY = mDcaInfoCov.getY();
454+
// float dcaZ = mDcaInfoCov.getZ();
455+
456+
if (std::fabs(track_par_cov_recalc.getEta()) > v0cuts.cfg_max_eta || track_par_cov_recalc.getPt() < v0cuts.cfg_min_pt) {
457+
return false;
458+
}
459+
460+
if (std::fabs(dcaXY) < v0cuts.cfg_min_dcaxy_v0leg) { // this is applied in filter.
461+
return false;
462+
}
463+
425464
return true;
426465
}
427466

@@ -477,9 +516,18 @@ struct TreeCreatorElectronMLDDA {
477516
void fillTrackTable(TCollision const& collision, TTrack const& track, const int pidlabel, const int tracktype)
478517
{
479518
if (std::find(stored_trackIds.begin(), stored_trackIds.end(), track.globalIndex()) == stored_trackIds.end()) {
519+
mDcaInfoCov.set(999, 999, 999, 999, 999);
520+
auto track_par_cov_recalc = getTrackParCov(track);
521+
track_par_cov_recalc.setPID(track.pidForTracking());
522+
mVtx.setPos({collision.posX(), collision.posY(), collision.posZ()});
523+
mVtx.setCov(collision.covXX(), collision.covXY(), collision.covYY(), collision.covXZ(), collision.covYZ(), collision.covZZ());
524+
o2::base::Propagator::Instance()->propagateToDCABxByBz(mVtx, track_par_cov_recalc, 2.f, matCorr, &mDcaInfoCov);
525+
float dcaXY = mDcaInfoCov.getY();
526+
float dcaZ = mDcaInfoCov.getZ();
527+
480528
emprimarytracks(collision.globalIndex(), collision.posZ(), collision.numContrib(),
481529
track.pt(), track.eta(), track.phi(), track.tgl(), track.signed1Pt(),
482-
track.dcaXY(), track.dcaZ(), track.cYY(), track.cZZ(), track.cZY(),
530+
dcaXY, dcaZ, track_par_cov_recalc.getSigmaY2(), track_par_cov_recalc.getSigmaZ2(), track_par_cov_recalc.getSigmaZY(),
483531
track.tpcNClsFindable(), track.tpcNClsFound(), track.tpcNClsCrossedRows(),
484532
track.tpcChi2NCl(), track.tpcInnerParam(),
485533
track.tpcSignal(), track.tpcNSigmaEl(), track.tpcNSigmaMu(), track.tpcNSigmaPi(), track.tpcNSigmaKa(), track.tpcNSigmaPr(),
@@ -520,7 +568,7 @@ struct TreeCreatorElectronMLDDA {
520568
for (const auto& v0 : v0s_coll) {
521569
auto pos = v0.template posTrack_as<MyTracks>();
522570
auto neg = v0.template negTrack_as<MyTracks>();
523-
if (!isSelectedV0Leg(pos) || !isSelectedV0Leg(neg)) {
571+
if (!isSelectedV0Leg(collision, pos) || !isSelectedV0Leg(collision, neg)) {
524572
continue;
525573
}
526574
if (pos.sign() * neg.sign() > 0) {
@@ -596,7 +644,7 @@ struct TreeCreatorElectronMLDDA {
596644
auto posTracks_per_coll = posTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache);
597645
auto negTracks_per_coll = negTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache);
598646
for (const auto& [pos, neg] : combinations(CombinationsFullIndexPolicy(posTracks_per_coll, negTracks_per_coll))) {
599-
if (!isSelectedTrack(pos) || !isSelectedTrack(neg)) {
647+
if (!isSelectedTrack(collision, pos) || !isSelectedTrack(collision, neg)) {
600648
continue;
601649
}
602650

@@ -632,7 +680,7 @@ struct TreeCreatorElectronMLDDA {
632680
auto bachelor = cascade.template bachelor_as<MyTracks>();
633681
auto pos = cascade.template posTrack_as<MyTracks>();
634682
auto neg = cascade.template negTrack_as<MyTracks>();
635-
if (!isSelectedV0Leg(pos) || !isSelectedV0Leg(neg) || !isSelectedV0Leg(bachelor)) {
683+
if (!isSelectedV0Leg(collision, pos) || !isSelectedV0Leg(collision, neg) || !isSelectedV0Leg(collision, bachelor)) {
636684
continue;
637685
}
638686

@@ -713,26 +761,25 @@ struct TreeCreatorElectronMLDDA {
713761
}
714762
} // end of cascade loop
715763

716-
auto tracks_coll = tracks.sliceBy(perCollision_track, collision.globalIndex());
717-
for (const auto& track : tracks_coll) {
718-
if (!isSelectedTrack(track)) {
719-
continue;
720-
}
721-
722-
registry.fill(HIST("PrimaryTrack/hTPCdEdx_P"), track.p(), track.tpcSignal());
723-
registry.fill(HIST("PrimaryTrack/hTOFbeta_P"), track.p(), track.beta());
724-
registry.fill(HIST("PrimaryTrack/hITSClusterSize_P"), track.p(), meanClusterSizeITS<0, 7>(track) * std::cos(std::atan(track.tgl())));
725-
registry.fill(HIST("PrimaryTrack/hTPCNsigmaEl_P"), track.p(), track.tpcNSigmaEl());
726-
registry.fill(HIST("PrimaryTrack/hTOFNsigmaEl_P"), track.p(), track.tofNSigmaEl());
727-
registry.fill(HIST("PrimaryTrack/hTPCNsigmaMu_P"), track.p(), track.tpcNSigmaMu());
728-
registry.fill(HIST("PrimaryTrack/hTOFNsigmaMu_P"), track.p(), track.tofNSigmaMu());
729-
registry.fill(HIST("PrimaryTrack/hTPCNsigmaPi_P"), track.p(), track.tpcNSigmaPi());
730-
registry.fill(HIST("PrimaryTrack/hTOFNsigmaPi_P"), track.p(), track.tofNSigmaPi());
731-
registry.fill(HIST("PrimaryTrack/hTPCNsigmaKa_P"), track.p(), track.tpcNSigmaKa());
732-
registry.fill(HIST("PrimaryTrack/hTOFNsigmaKa_P"), track.p(), track.tofNSigmaKa());
733-
registry.fill(HIST("PrimaryTrack/hTPCNsigmaPr_P"), track.p(), track.tpcNSigmaPr());
734-
registry.fill(HIST("PrimaryTrack/hTOFNsigmaPr_P"), track.p(), track.tofNSigmaPr());
735-
} // end of track loop
764+
// auto tracks_coll = tracks.sliceBy(perCollision_track, collision.globalIndex());
765+
// for (const auto& track : tracks_coll) {
766+
// if (!isSelectedTrack(collision, track)) {
767+
// continue;
768+
// }
769+
// registry.fill(HIST("PrimaryTrack/hTPCdEdx_P"), track.p(), track.tpcSignal());
770+
// registry.fill(HIST("PrimaryTrack/hTOFbeta_P"), track.p(), track.beta());
771+
// registry.fill(HIST("PrimaryTrack/hITSClusterSize_P"), track.p(), meanClusterSizeITS<0, 7>(track) * std::cos(std::atan(track.tgl())));
772+
// registry.fill(HIST("PrimaryTrack/hTPCNsigmaEl_P"), track.p(), track.tpcNSigmaEl());
773+
// registry.fill(HIST("PrimaryTrack/hTOFNsigmaEl_P"), track.p(), track.tofNSigmaEl());
774+
// registry.fill(HIST("PrimaryTrack/hTPCNsigmaMu_P"), track.p(), track.tpcNSigmaMu());
775+
// registry.fill(HIST("PrimaryTrack/hTOFNsigmaMu_P"), track.p(), track.tofNSigmaMu());
776+
// registry.fill(HIST("PrimaryTrack/hTPCNsigmaPi_P"), track.p(), track.tpcNSigmaPi());
777+
// registry.fill(HIST("PrimaryTrack/hTOFNsigmaPi_P"), track.p(), track.tofNSigmaPi());
778+
// registry.fill(HIST("PrimaryTrack/hTPCNsigmaKa_P"), track.p(), track.tpcNSigmaKa());
779+
// registry.fill(HIST("PrimaryTrack/hTOFNsigmaKa_P"), track.p(), track.tofNSigmaKa());
780+
// registry.fill(HIST("PrimaryTrack/hTPCNsigmaPr_P"), track.p(), track.tpcNSigmaPr());
781+
// registry.fill(HIST("PrimaryTrack/hTOFNsigmaPr_P"), track.p(), track.tofNSigmaPr());
782+
// } // end of track loop
736783

737784
} // end of collision loop
738785
stored_trackIds.clear();

0 commit comments

Comments
 (0)