Skip to content

Commit 1d45984

Browse files
njacazioalibuild
andauthored
[PWGCF] Add PID with ITS to STS (#8441)
Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent 3c4912d commit 1d45984

File tree

2 files changed

+78
-10
lines changed

2 files changed

+78
-10
lines changed

PWGCF/Femto3D/DataModel/singletrackselector.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,15 +208,35 @@ DECLARE_SOA_COLUMN(StoredTPCNSigmaHe, storedTpcNSigmaHe, binning::nsigma::binned
208208

209209
DECLARE_SOA_COLUMN(StoredTOFNSigmaPi_v1, storedTofNSigmaPi_v1, binning::nsigma::binned_t); // (v1)
210210
DECLARE_SOA_COLUMN(StoredTPCNSigmaPi_v1, storedTpcNSigmaPi_v1, binning::nsigma::binned_t); // (v1)
211+
211212
DECLARE_SOA_COLUMN(StoredTOFNSigmaKa_v1, storedTofNSigmaKa_v1, binning::nsigma::binned_t); // (v1)
212213
DECLARE_SOA_COLUMN(StoredTPCNSigmaKa_v1, storedTpcNSigmaKa_v1, binning::nsigma::binned_t); // (v1)
214+
213215
DECLARE_SOA_COLUMN(StoredTOFNSigmaPr_v1, storedTofNSigmaPr_v1, binning::nsigma::binned_t); // (v1)
214216
DECLARE_SOA_COLUMN(StoredTPCNSigmaPr_v1, storedTpcNSigmaPr_v1, binning::nsigma::binned_t); // (v1)
217+
215218
DECLARE_SOA_COLUMN(StoredTOFNSigmaDe_v1, storedTofNSigmaDe_v1, binning::nsigma::binned_t); // (v1)
216219
DECLARE_SOA_COLUMN(StoredTPCNSigmaDe_v1, storedTpcNSigmaDe_v1, binning::nsigma::binned_t); // (v1)
220+
217221
DECLARE_SOA_COLUMN(StoredTOFNSigmaHe_v1, storedTofNSigmaHe_v1, binning::nsigma::binned_t); // (v1)
218222
DECLARE_SOA_COLUMN(StoredTPCNSigmaHe_v1, storedTpcNSigmaHe_v1, binning::nsigma::binned_t); // (v1)
219223

224+
DECLARE_SOA_COLUMN(StoredITSNSigmaPi_v1, storedItsNSigmaPi_v1, binning::nsigma::binned_t); // (v1)
225+
DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaPi_v1, itsNSigmaPi,
226+
[](binning::nsigma_v1::binned_t nsigma_binned) -> float { return singletrackselector::unPackSymmetric<binning::nsigma_v1>(nsigma_binned); });
227+
DECLARE_SOA_COLUMN(StoredITSNSigmaKa_v1, storedItsNSigmaKa_v1, binning::nsigma::binned_t); // (v1)
228+
DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaKa_v1, itsNSigmaKa,
229+
[](binning::nsigma_v1::binned_t nsigma_binned) -> float { return singletrackselector::unPackSymmetric<binning::nsigma_v1>(nsigma_binned); });
230+
DECLARE_SOA_COLUMN(StoredITSNSigmaPr_v1, storedItsNSigmaPr_v1, binning::nsigma::binned_t); // (v1)
231+
DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaPr_v1, itsNSigmaPr,
232+
[](binning::nsigma_v1::binned_t nsigma_binned) -> float { return singletrackselector::unPackSymmetric<binning::nsigma_v1>(nsigma_binned); });
233+
DECLARE_SOA_COLUMN(StoredITSNSigmaDe_v1, storedItsNSigmaDe_v1, binning::nsigma::binned_t); // (v1)
234+
DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaDe_v1, itsNSigmaDe,
235+
[](binning::nsigma_v1::binned_t nsigma_binned) -> float { return singletrackselector::unPackSymmetric<binning::nsigma_v1>(nsigma_binned); });
236+
DECLARE_SOA_COLUMN(StoredITSNSigmaHe_v1, storedItsNSigmaHe_v1, binning::nsigma::binned_t); // (v1)
237+
DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaHe_v1, itsNSigmaHe,
238+
[](binning::nsigma_v1::binned_t nsigma_binned) -> float { return singletrackselector::unPackSymmetric<binning::nsigma_v1>(nsigma_binned); });
239+
220240
DECLARE_SOA_DYNAMIC_COLUMN(Energy, energy, [](float p, float mass) -> float { return sqrt(p * p + mass * mass); });
221241
DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, [](float p, float eta) -> float { return p / std::cosh(eta); });
222242
DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float p, float eta, float phi) -> float { return (p / std::cosh(eta)) * std::sin(phi); });
@@ -487,6 +507,18 @@ DECLARE_SOA_TABLE(SinglePIDEls, "AOD", "SINGLEPIDEL",
487507
singletrackselector::StoredTPCNSigmaEl,
488508
singletrackselector::TPCNSigmaEl<singletrackselector::StoredTPCNSigmaEl>);
489509

510+
DECLARE_SOA_TABLE(SinglePIDsITSPi, "AOD", "STSPIDITSPI",
511+
singletrackselector::StoredITSNSigmaPi_v1,
512+
singletrackselector::ITSNSigmaPi_v1<singletrackselector::StoredITSNSigmaPi_v1>);
513+
514+
DECLARE_SOA_TABLE(SinglePIDsITSKa, "AOD", "STSPIDITSKA",
515+
singletrackselector::StoredITSNSigmaKa_v1,
516+
singletrackselector::ITSNSigmaKa_v1<singletrackselector::StoredITSNSigmaKa_v1>);
517+
518+
DECLARE_SOA_TABLE(SinglePIDsITSPr, "AOD", "STSPIDITSPR",
519+
singletrackselector::StoredITSNSigmaPr_v1,
520+
singletrackselector::ITSNSigmaPr_v1<singletrackselector::StoredITSNSigmaPr_v1>);
521+
490522
namespace singletrackselector
491523
{
492524
DECLARE_SOA_COLUMN(PdgCode, pdgCode, int);

PWGCF/Femto3D/TableProducer/singleTrackSelector.cxx

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#include <Framework/AnalysisDataModel.h>
1818

1919
#include <vector>
20+
#include <string>
21+
#include <utility>
2022

2123
#include "EventFiltering/Zorro.h"
2224
#include "EventFiltering/ZorroSummary.h"
@@ -30,6 +32,7 @@
3032
#include "Common/DataModel/TrackSelectionTables.h"
3133
#include "Common/DataModel/EventSelection.h"
3234
#include "Common/DataModel/Centrality.h"
35+
#include "Common/DataModel/PIDResponseITS.h"
3336
#include "Common/CCDB/ctpRateFetcher.h"
3437

3538
#include "DetectorsBase/Propagator.h"
@@ -98,6 +101,9 @@ struct singleTrackSelector {
98101
Produces<o2::aod::SingleTrackSels> tableRow;
99102
Produces<o2::aod::SingleTrkExtras> tableRowExtra;
100103
Produces<o2::aod::SinglePIDEls> tableRowPIDEl;
104+
Produces<o2::aod::SinglePIDsITSPi> tableRowPIDITSPi;
105+
Produces<o2::aod::SinglePIDsITSKa> tableRowPIDITSKa;
106+
Produces<o2::aod::SinglePIDsITSPr> tableRowPIDITSPr;
101107
Produces<o2::aod::SingleTrkMCs> tableRowMC;
102108

103109
Filter eventFilter = (applyEvSel.node() == 0) ||
@@ -187,8 +193,8 @@ struct singleTrackSelector {
187193
d_bz = 0.1 * d_bz;
188194
}
189195

190-
template <bool isMC, typename Trks>
191-
inline void fillTrackTables(Trks const& tracks)
196+
template <bool isMC, typename TracksType>
197+
inline void fillTrackTables(TracksType const& tracks)
192198
{
193199
bool skip_track = false; // flag used for track rejection
194200

@@ -248,6 +254,9 @@ struct singleTrackSelector {
248254
track.beta());
249255

250256
tableRowPIDEl(singletrackselector::packSymmetric<singletrackselector::binning::nsigma>(track.tpcNSigmaEl()));
257+
tableRowPIDITSPi(singletrackselector::packSymmetric<singletrackselector::binning::nsigma>(track.itsNSigmaPi()));
258+
tableRowPIDITSKa(singletrackselector::packSymmetric<singletrackselector::binning::nsigma>(track.itsNSigmaKa()));
259+
tableRowPIDITSPr(singletrackselector::packSymmetric<singletrackselector::binning::nsigma>(track.itsNSigmaPr()));
251260

252261
if constexpr (isMC) {
253262
int origin = -1;
@@ -274,8 +283,15 @@ struct singleTrackSelector {
274283
}
275284
}
276285

277-
void processDataRun2(soa::Filtered<CollRun2>::iterator const& collision, soa::Filtered<Trks> const& tracks, aod::BCsWithTimestamps const&)
286+
void processDataRun2(soa::Filtered<CollRun2>::iterator const& collision,
287+
soa::Filtered<Trks> const& tracks,
288+
aod::BCsWithTimestamps const&)
278289
{
290+
291+
auto tracksWithITSPid = soa::Attach<Trks,
292+
aod::pidits::ITSNSigmaPi,
293+
aod::pidits::ITSNSigmaKa,
294+
aod::pidits::ITSNSigmaPr>(tracks);
279295
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
280296
initCCDB(bc);
281297

@@ -304,13 +320,19 @@ struct singleTrackSelector {
304320
collision.posZ(),
305321
d_bz);
306322

307-
fillTrackTables<false>(tracks);
323+
fillTrackTables<false>(tracksWithITSPid);
308324
}
309325
}
310326
PROCESS_SWITCH(singleTrackSelector, processDataRun2, "process data Run2", false);
311327

312-
void processDataRun3(soa::Filtered<CollRun3>::iterator const& collision, soa::Filtered<Trks> const& tracks, aod::BCsWithTimestamps const&)
328+
void processDataRun3(soa::Filtered<CollRun3>::iterator const& collision,
329+
soa::Filtered<Trks> const& tracks,
330+
aod::BCsWithTimestamps const&)
313331
{
332+
auto tracksWithITSPid = soa::Attach<Trks,
333+
aod::pidits::ITSNSigmaPi,
334+
aod::pidits::ITSNSigmaKa,
335+
aod::pidits::ITSNSigmaPr>(tracks);
314336
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
315337
initCCDB(bc);
316338

@@ -381,13 +403,20 @@ struct singleTrackSelector {
381403
hadronicRate,
382404
occupancy);
383405

384-
fillTrackTables<false>(tracks);
406+
fillTrackTables<false>(tracksWithITSPid);
385407
}
386408
}
387409
PROCESS_SWITCH(singleTrackSelector, processDataRun3, "process data Run3", true);
388410

389-
void processMCRun2(soa::Filtered<CollRun2>::iterator const& collision, soa::Filtered<soa::Join<Trks, aod::McTrackLabels>> const& tracks, aod::McParticles const&, aod::BCsWithTimestamps const&)
411+
void processMCRun2(soa::Filtered<CollRun2>::iterator const& collision,
412+
soa::Filtered<soa::Join<Trks, aod::McTrackLabels>> const& tracks,
413+
aod::McParticles const&, aod::BCsWithTimestamps const&)
390414
{
415+
416+
auto tracksWithITSPid = soa::Attach<soa::Join<Trks, aod::McTrackLabels>,
417+
aod::pidits::ITSNSigmaPi,
418+
aod::pidits::ITSNSigmaKa,
419+
aod::pidits::ITSNSigmaPr>(tracks);
391420
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
392421
initCCDB(bc);
393422

@@ -415,13 +444,20 @@ struct singleTrackSelector {
415444
collision.posZ(),
416445
d_bz);
417446

418-
fillTrackTables<true>(tracks);
447+
fillTrackTables<true>(tracksWithITSPid);
419448
}
420449
}
421450
PROCESS_SWITCH(singleTrackSelector, processMCRun2, "process MC Run2", false);
422451

423-
void processMCRun3(soa::Filtered<CollRun3MC>::iterator const& collision, aod::McCollisions const&, soa::Filtered<soa::Join<Trks, aod::McTrackLabels>> const& tracks, aod::McParticles const& mcParticles, aod::BCsWithTimestamps const&)
452+
void processMCRun3(soa::Filtered<CollRun3MC>::iterator const& collision, aod::McCollisions const&,
453+
soa::Filtered<soa::Join<Trks, aod::McTrackLabels>> const& tracks,
454+
aod::McParticles const& mcParticles,
455+
aod::BCsWithTimestamps const&)
424456
{
457+
auto tracksWithITSPid = soa::Attach<soa::Join<Trks, aod::McTrackLabels>,
458+
aod::pidits::ITSNSigmaPi,
459+
aod::pidits::ITSNSigmaKa,
460+
aod::pidits::ITSNSigmaPr>(tracks);
425461
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
426462
initCCDB(bc);
427463
double hadronicRate = 0.;
@@ -483,7 +519,7 @@ struct singleTrackSelector {
483519
hadronicRate,
484520
occupancy);
485521

486-
fillTrackTables<true>(tracks);
522+
fillTrackTables<true>(tracksWithITSPid);
487523

488524
if (!enable_gen_info) {
489525
return;

0 commit comments

Comments
 (0)