Skip to content

Commit 9204373

Browse files
prchakraalibuild
andauthored
[PWGCF] FemtoUniverse: Add ITS PID table in DataModel, fill related PIDNsigmas and QA plots (AliceO2Group#15772)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent bbfac97 commit 9204373

5 files changed

Lines changed: 302 additions & 21 deletions

File tree

PWGCF/FemtoUniverse/Core/FemtoUniverseParticleHisto.h

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class FemtoUniverseParticleHisto
7070

7171
// comment
7272
template <o2::aod::femtouniverse_mc_particle::MCType mc, typename T>
73-
void init_debug(std::string folderName, T& tempFitVarMomAxis) // o2-linter: disable=name/function-variable
73+
void init_debug(std::string folderName, T& tempFitVarMomAxis, bool isFillITSNsigma) // o2-linter: disable=name/function-variable
7474
{
7575
std::string folderSuffix = static_cast<std::string>(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]).c_str();
7676
if constexpr (mParticleType == o2::aod::femtouniverseparticle::ParticleType::kTrack || mParticleType == o2::aod::femtouniverseparticle::ParticleType::kV0Child || mParticleType == o2::aod::femtouniverseparticle::ParticleType::kCascadeBachelor || mParticleType == o2::aod::femtouniverseparticle::ParticleType::kMCTruthTrack) {
@@ -102,6 +102,18 @@ class FemtoUniverseParticleHisto
102102
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaComb_K").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{comb}^{K}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
103103
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaComb_p").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{comb}^{p}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
104104
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaComb_d").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{comb}^{d}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
105+
if (isFillITSNsigma) {
106+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaITS_el").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{e}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
107+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaITS_pi").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{#pi}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
108+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaITS_K").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{K}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
109+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaITS_p").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{p}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
110+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaITS_d").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{d}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
111+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaCombITSTPC_el").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITSTPC}^{e}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
112+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaCombITSTPC_pi").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITSTPC}^{#pi}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
113+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaCombITSTPC_K").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITSTPC}^{K}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
114+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaCombITSTPC_p").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITSTPC}^{p}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
115+
mHistogramRegistry->add((folderName + folderSuffix + "/nSigmaCombITSTPC_d").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITSTPC}^{d}", kTH2F, {{tempFitVarMomAxis}, {100, 0, 5}});
116+
}
105117
} else if constexpr (mParticleType == o2::aod::femtouniverseparticle::ParticleType::kV0) {
106118
mHistogramRegistry->add((folderName + folderSuffix + "/hDaughDCA").c_str(), "; DCA^{daugh} (cm); Entries", kTH1F, {{1000, 0, 10}});
107119
mHistogramRegistry->add((folderName + folderSuffix + "/hTransRadius").c_str(), "; #it{r}_{xy} (cm); Entries", kTH1F, {{1500, 0, 150}});
@@ -208,7 +220,7 @@ class FemtoUniverseParticleHisto
208220
/// \param tempFitVarBins binning of the tempFitVar (DCA_xy in case of tracks, CPA in case of V0s, etc.)
209221
/// \param isMC add Monte Carlo truth histograms to the output file
210222
template <typename T>
211-
void init(HistogramRegistry* registry, T& tempFitVarpTBins, T& tempFitVarBins, bool isMC, int pdgCode, bool isDebug = false, std::optional<std::string> flexibleFolder = std::nullopt)
223+
void init(HistogramRegistry* registry, T& tempFitVarpTBins, T& tempFitVarBins, bool isMC, int pdgCode, bool isDebug = false, std::optional<std::string> flexibleFolder = std::nullopt, bool isFillITSNsigma = false)
212224
{
213225
mPDG = pdgCode;
214226
if (registry) {
@@ -247,7 +259,7 @@ class FemtoUniverseParticleHisto
247259
// Fill here the actual histogramms by calling init_base and init_MC
248260
init_base<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(folderName, tempFitVarAxisTitle, tempFitVarpTAxis, tempFitVarAxis);
249261
if (isDebug) {
250-
init_debug<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(folderName, tempFitVarMomAxis);
262+
init_debug<o2::aod::femtouniverse_mc_particle::MCType::kRecon>(folderName, tempFitVarMomAxis, isFillITSNsigma);
251263
}
252264
if (isMC) {
253265
init_base<o2::aod::femtouniverse_mc_particle::MCType::kTruth>(folderName, tempFitVarAxisTitle, tempFitVarpTAxis, tempFitVarAxis);
@@ -512,6 +524,28 @@ class FemtoUniverseParticleHisto
512524
}
513525
}
514526

527+
template <typename T>
528+
void fillQAITSPID(T const& part)
529+
{
530+
fillQABaseITSPID<T>(part, HIST(o2::aod::femtouniverseparticle::ParticleTypeName[mParticleType]) + HIST(mFolderSuffix[mFolderSuffixType]));
531+
}
532+
533+
template <typename T, typename H>
534+
void fillQABaseITSPID(T const& part, H const& histFolder)
535+
{
536+
// std::string tempFitVarName;
537+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaITS_el"), part.p(), part.itsNSigmaEl());
538+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaITS_pi"), part.p(), part.itsNSigmaPi());
539+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaITS_K"), part.p(), part.itsNSigmaKa());
540+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaITS_p"), part.p(), part.itsNSigmaPr());
541+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaITS_d"), part.p(), part.itsNSigmaDe());
542+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaCombITSTPC_el"), part.p(), std::sqrt(part.tpcNSigmaEl() * part.tpcNSigmaEl() + part.itsNSigmaEl() * part.itsNSigmaEl()));
543+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaCombITSTPC_pi"), part.p(), std::sqrt(part.tpcNSigmaPi() * part.tpcNSigmaPi() + part.itsNSigmaPi() * part.itsNSigmaPi()));
544+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaCombITSTPC_K"), part.p(), std::sqrt(part.tpcNSigmaKa() * part.tpcNSigmaKa() + part.itsNSigmaKa() * part.itsNSigmaKa()));
545+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaCombITSTPC_p"), part.p(), std::sqrt(part.tpcNSigmaPr() * part.tpcNSigmaPr() + part.itsNSigmaPr() * part.itsNSigmaPr()));
546+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[o2::aod::femtouniverse_mc_particle::MCType::kRecon]) + HIST("/nSigmaCombITSTPC_d"), part.p(), std::sqrt(part.tpcNSigmaDe() * part.tpcNSigmaDe() + part.itsNSigmaDe() * part.itsNSigmaDe()));
547+
}
548+
515549
/// Templated function to fill particle histograms for data/ Monte Carlo reconstructed and Monte Carlo truth
516550
/// Always calls fillQA_base fill histogramms with data/ Monte Carlo reconstructed
517551
/// In case of Monte Carlo, calls fillQA_base with Monte Carlo truth info and specialized function fillQA_MC for additional histogramms

PWGCF/FemtoUniverse/Core/FemtoUniverseTrackSelection.h

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
#include "Common/Core/TrackSelection.h"
2525
#include "Common/Core/TrackSelectionDefaults.h"
26+
#include "Common/DataModel/PIDResponseITS.h"
2627
#include "Common/DataModel/PIDResponseTOF.h"
2728
#include "Common/DataModel/PIDResponseTPC.h"
2829
#include "Common/DataModel/TrackSelectionTables.h"
@@ -135,6 +136,14 @@ class FemtoUniverseTrackSelection : public FemtoUniverseObjectSelection<float, f
135136
template <typename T>
136137
auto getNsigmaTOF(T const& track, o2::track::PID pid);
137138

139+
/// Computes the n_sigma for a track and a particle-type hypothesis in the TOF
140+
/// \tparam T Data type of the track
141+
/// \param track Track for which PID is evaluated
142+
/// \param pid Particle species for which PID is evaluated
143+
/// \return Value of n_{sigma, TOF}
144+
template <typename T>
145+
auto getNsigmaITS(T const& track, o2::track::PID pid);
146+
138147
/// Checks whether the most open combination of all selection criteria is fulfilled
139148
/// \tparam T Data type of the track
140149
/// \param track Track
@@ -151,6 +160,18 @@ class FemtoUniverseTrackSelection : public FemtoUniverseObjectSelection<float, f
151160
template <typename CutContainerType, typename T>
152161
std::array<CutContainerType, 2> getCutContainer(T const& track);
153162

163+
/// Obtain the bit-wise container for the selections
164+
/// \todo For the moment, PID is separated from the other selections, hence
165+
/// instead of a single value an std::array of size two is returned
166+
/// \tparam CutContainerType Data type of the bit-wise container for the
167+
/// selections
168+
/// \tparam T Data type of the track
169+
/// \param track Track
170+
/// \return The bit-wise container for the selections, separately with all
171+
/// selection criteria, and the PID
172+
template <typename CutContainerType, typename T>
173+
std::array<CutContainerType, 2> getCutContainerWithITS(T const& track);
174+
154175
/// Some basic QA histograms
155176
/// \tparam part Type of the particle for proper naming of the folders for QA
156177
/// \tparam tracktype Type of track (track, positive child, negative child) for proper naming of the folders for QA
@@ -329,6 +350,11 @@ void FemtoUniverseTrackSelection::init(HistogramRegistry* registry)
329350
mHistogramRegistry->add((folderName + "/hDCAz").c_str(), "; #it{p}_{T} (GeV/#it{c}); DCA_{z} (cm)", kTH2F, {{100, 0, 10}, {500, -5, 5}});
330351
mHistogramRegistry->add((folderName + "/hDCA").c_str(), "; #it{p}_{T} (GeV/#it{c}); DCA (cm)", kTH2F, {{100, 0, 10}, {301, 0., 1.5}});
331352
mHistogramRegistry->add((folderName + "/hTPCdEdX").c_str(), "; #it{p} (GeV/#it{c}); TPC Signal", kTH2F, {{100, 0, 10}, {1000, 0, 1000}});
353+
mHistogramRegistry->add((folderName + "/nSigmaITS_el").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{e}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
354+
mHistogramRegistry->add((folderName + "/nSigmaITS_pi").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{#pi}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
355+
mHistogramRegistry->add((folderName + "/nSigmaITS_K").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{K}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
356+
mHistogramRegistry->add((folderName + "/nSigmaITS_p").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{p}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
357+
mHistogramRegistry->add((folderName + "/nSigmaITS_d").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{ITS}^{d}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
332358
mHistogramRegistry->add((folderName + "/nSigmaTPC_el").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{TPC}^{e}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
333359
mHistogramRegistry->add((folderName + "/nSigmaTPC_pi").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{TPC}^{#pi}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
334360
mHistogramRegistry->add((folderName + "/nSigmaTPC_K").c_str(), "; #it{p} (GeV/#it{c}); n#sigma_{TPC}^{K}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
@@ -394,6 +420,24 @@ auto FemtoUniverseTrackSelection::getNsigmaTOF(T const& track, o2::track::PID pi
394420
return o2::aod::pidutils::tofNSigma(pid, track);
395421
}
396422

423+
template <typename T>
424+
auto FemtoUniverseTrackSelection::getNsigmaITS(T const& track, o2::track::PID pid)
425+
{
426+
if (pid == o2::track::PID::Electron) {
427+
return track.itsNSigmaEl();
428+
} else if (pid == o2::track::PID::Pion) {
429+
return track.itsNSigmaPi();
430+
} else if (pid == o2::track::PID::Kaon) {
431+
return track.itsNSigmaKa();
432+
} else if (pid == o2::track::PID::Proton) {
433+
return track.itsNSigmaPr();
434+
} else if (pid == o2::track::PID::Deuteron) {
435+
return track.itsNSigmaDe();
436+
}
437+
// if nothing matched, return default value
438+
return -999.f;
439+
}
440+
397441
template <typename T>
398442
bool FemtoUniverseTrackSelection::isSelectedMinimal(T const& track)
399443
{
@@ -565,6 +609,101 @@ std::array<CutContainerType, 2> FemtoUniverseTrackSelection::getCutContainer(T c
565609
return {output, outputPID};
566610
}
567611

612+
template <typename CutContainerType, typename T>
613+
std::array<CutContainerType, 2>
614+
FemtoUniverseTrackSelection::getCutContainerWithITS(T const& track)
615+
{
616+
CutContainerType output = 0;
617+
size_t counter = 0;
618+
CutContainerType outputPID = 0;
619+
const auto sign = track.sign();
620+
const auto pT = track.pt();
621+
const auto eta = track.eta();
622+
const auto tpcNClsF = track.tpcNClsFound();
623+
const auto tpcRClsC = track.tpcCrossedRowsOverFindableCls();
624+
const auto tpcNClsC = track.tpcNClsCrossedRows();
625+
const auto tpcNClsS = track.tpcNClsShared();
626+
const auto tpcNClsFracS = track.tpcFractionSharedCls();
627+
const auto itsNCls = track.itsNCls();
628+
const auto itsNClsIB = track.itsNClsInnerBarrel();
629+
const auto dcaXY = track.dcaXY();
630+
const auto dcaZ = track.dcaZ();
631+
const auto dca = std::sqrt(std::pow(dcaXY, 2.) + std::pow(dcaZ, 2.));
632+
633+
std::vector<float> pidTPC, pidTOF, pidITS;
634+
for (auto it : kPIDspecies) {
635+
pidTPC.push_back(getNsigmaTPC(track, it));
636+
pidTOF.push_back(getNsigmaTOF(track, it));
637+
pidITS.push_back(getNsigmaITS(track, it));
638+
}
639+
640+
float observable = 0.;
641+
for (auto& sel : mSelections) {
642+
const auto selVariable = sel.getSelectionVariable();
643+
if (selVariable == femto_universe_track_selection::kPIDnSigmaMax) {
644+
/// PID needs to be handled a bit differently since we may need more than
645+
/// one species
646+
for (size_t i = 0; i < kPIDspecies.size(); ++i) {
647+
auto pidITSVal = pidITS.at(i);
648+
auto pidTPCVal = pidTPC.at(i) - nSigmaPIDOffsetTPC;
649+
auto pidTOFVal = pidTOF.at(i) - nSigmaPIDOffsetTOF;
650+
auto pidComb = std::sqrt(pidTPCVal * pidTPCVal + pidTOFVal * pidTOFVal);
651+
sel.checkSelectionSetBitPID(pidTPCVal, outputPID);
652+
sel.checkSelectionSetBitPID(pidComb, outputPID);
653+
sel.checkSelectionSetBitPID(pidITSVal, outputPID);
654+
}
655+
} else {
656+
/// for the rest it's all the same
657+
switch (selVariable) {
658+
case (femto_universe_track_selection::kSign):
659+
observable = sign;
660+
break;
661+
case (femto_universe_track_selection::kpTMin):
662+
case (femto_universe_track_selection::kpTMax):
663+
observable = pT;
664+
break;
665+
case (femto_universe_track_selection::kEtaMax):
666+
observable = eta;
667+
break;
668+
case (femto_universe_track_selection::kTPCnClsMin):
669+
observable = tpcNClsF;
670+
break;
671+
case (femto_universe_track_selection::kTPCfClsMin):
672+
observable = tpcRClsC;
673+
break;
674+
case (femto_universe_track_selection::kTPCcRowsMin):
675+
observable = tpcNClsC;
676+
break;
677+
case (femto_universe_track_selection::kTPCsClsMax):
678+
observable = tpcNClsS;
679+
break;
680+
case (femto_universe_track_selection::kTPCfracsClsMax):
681+
observable = tpcNClsFracS;
682+
break;
683+
case (femto_universe_track_selection::kITSnClsMin):
684+
observable = itsNCls;
685+
break;
686+
case (femto_universe_track_selection::kITSnClsIbMin):
687+
observable = itsNClsIB;
688+
break;
689+
case (femto_universe_track_selection::kDCAxyMax):
690+
observable = dcaXY;
691+
break;
692+
case (femto_universe_track_selection::kDCAzMax):
693+
observable = dcaZ;
694+
break;
695+
case (femto_universe_track_selection::kDCAMin):
696+
observable = dca;
697+
break;
698+
case (femto_universe_track_selection::kPIDnSigmaMax):
699+
break;
700+
}
701+
sel.checkSelectionSetBit(observable, output, counter);
702+
}
703+
}
704+
return {output, outputPID};
705+
}
706+
568707
template <o2::aod::femtouniverseparticle::ParticleType part, o2::aod::femtouniverseparticle::TrackType tracktype, typename T>
569708
void FemtoUniverseTrackSelection::fillQA(T const& track)
570709
{

PWGCF/FemtoUniverse/DataModel/FemtoDerived.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,15 @@ DECLARE_SOA_DYNAMIC_COLUMN(P, p, //! Compute the overall momentum in GeV/c
123123
[](float pt, float eta) -> float {
124124
return pt * std::cosh(eta);
125125
});
126+
127+
DECLARE_SOA_COLUMN(ITSNSigmaEl, itsNSigmaEl, float); //! Nsigma separation with the Its detector for electron
128+
DECLARE_SOA_COLUMN(ITSNSigmaPi, itsNSigmaPi, float); //! Nsigma separation with the Its detector for pion
129+
DECLARE_SOA_COLUMN(ITSNSigmaKa, itsNSigmaKa, float); //! Nsigma separation with the Its detector for kaon
130+
DECLARE_SOA_COLUMN(ITSNSigmaPr, itsNSigmaPr, float); //! Nsigma separation with the Its detector for proton
131+
DECLARE_SOA_COLUMN(ITSNSigmaDe, itsNSigmaDe, float); //! Nsigma separation with the Its detector for deuteron
132+
DECLARE_SOA_COLUMN(ITSNSigmaTr, itsNSigmaTr, float); //! Nsigma separation with the Its detector for triton
133+
DECLARE_SOA_COLUMN(ITSNSigmaHe, itsNSigmaHe, float); //! Nsigma separation with the Its detector for helium3
134+
126135
// debug variables
127136
DECLARE_SOA_COLUMN(Sign, sign, int8_t); //! Sign of the track charge
128137
DECLARE_SOA_COLUMN(TpcNClsFound, tpcNClsFound, uint8_t); //! Number of TPC clusters
@@ -222,6 +231,14 @@ DECLARE_SOA_TABLE(FDExtParticles, "AOD", "FDEXTPARTICLE",
222231
pidtof_tiny::TOFNSigmaDe<pidtof_tiny::TOFNSigmaStoreDe>);
223232
using FDFullParticle = FDExtParticles::iterator;
224233

234+
DECLARE_SOA_TABLE(FDItsParticles, "AOD", "FDITSPARTICLE",
235+
femtouniverseparticle::ITSNSigmaEl,
236+
femtouniverseparticle::ITSNSigmaPi,
237+
femtouniverseparticle::ITSNSigmaKa,
238+
femtouniverseparticle::ITSNSigmaPr,
239+
femtouniverseparticle::ITSNSigmaDe);
240+
using FDItsParticle = FDItsParticles::iterator;
241+
225242
DECLARE_SOA_TABLE(FDCascParticles, "AOD", "FDCASCPARTICLE",
226243
o2::soa::Index<>,
227244
femtouniverseparticle::FdCollisionId,

0 commit comments

Comments
 (0)