Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
8517b9a
[PWGEM,PWGEM-36] Speed up EMCal Rotation method (#8445)
mhemmer-cern Nov 15, 2024
a395f40
[PWGDQ] Add quarkonia to hyperon-antihyperon analysis tasks (#8342)
romainschotter Nov 15, 2024
a3e82c9
[PWGEM/Dilepton] update track propagation (#8447)
dsekihat Nov 16, 2024
28efcf1
[PWGCF] support for sequential bailout, default labels, and added few…
abilandz Nov 16, 2024
aa6cc8d
[PWGDQ] Fixing issue with updated ambiguous tables (#8450)
lucamicheletti93 Nov 16, 2024
21f3147
[PWGDQ] Adding a process function for barrel multiplicity] (#8457)
bhagyasahoo Nov 16, 2024
44c2dcc
[PWGCF] Update changes in PID and EventSelection Cuts (#8464)
TGahlaut1 Nov 16, 2024
a5312ca
[PWGHF] Resolve mass hypothesis ambiguities for D* daughters (#8460)
fgrosa Nov 17, 2024
2dfa3d8
[PWGLF] strangeness analysis update (#8467)
nepeivodaRS Nov 17, 2024
8b000bb
[PWGDQ] [PWGDQ-120] debugging of undefined histogram in AnalysisDilep…
torkjellsdatter Nov 17, 2024
bab862e
[PWGHF] Add possibility of saving z equalized multiplicities in Ds ta…
fchinu Nov 17, 2024
96e1226
[PWGDQ] REFFLOW with eta gap + fixing bug TProfile (#8483)
victorvalenciatorres Nov 17, 2024
fc09f29
[PWGLF] Fix V0 DCA cut in Lambda polarisation task (#8487)
jikim1290 Nov 17, 2024
ba800da
[PWGJE] Adding trigger selection (#8488)
dajones2 Nov 18, 2024
0b0fb0f
[PWGLF] Add lower order cumulant terms for resonance flow (#8490)
skundu692 Nov 18, 2024
dd97121
[PWGLF] Optimized phi and kstar resonance task (#8492)
sarjeetagami Nov 18, 2024
8b2d8c1
[Infrastructure] Use pipes rather than temporary files (#8463)
ktf Nov 18, 2024
2d3e217
[PWGLF] Handle kink decays in association for V0/casc labeler (#8461)
ddobrigk Nov 18, 2024
7fb7fa1
[PWGLF] added DCAV0toPV and TPCcrossed row cuts (#8498)
prottayCMT Nov 18, 2024
7b0f900
[PWGHF] choose the correct way for gen. particles loop and filling (#…
zhangbiao-phy Nov 18, 2024
1f52070
[PWGCF] Change mixing to use centrality when needed in V0 task (#8486)
alicja-pp Nov 18, 2024
efeaf6f
[PWGDQ] Modify kDeltaEtaPair2 (#8458)
Shunsuke-Kurita Nov 19, 2024
4790ecf
[PWGLF] New track and PID selection for phi in phik0sanalysis.cxx (#8…
scannito Nov 19, 2024
1581c47
[PWGLF] add EP angle to stra der data (#8482)
ddobrigk Nov 19, 2024
0d380bd
[PWGEM] add PID scenario: TPC only selection hadron rej, TOF required…
feisenhu Nov 19, 2024
52dc0bd
[PWGLF] Added Rotational Background (#8505)
hkoley Nov 19, 2024
57e7f16
[PWGLF] Change in hStrangeCorrelation.cxx (#8444)
lhusova Nov 19, 2024
425b60d
[PWGJE] Update PhotonIsolationQA.cxx (#8507)
berend01 Nov 19, 2024
3450f09
[PWGLF] Add new task for MFT Pb-Pb (#8425)
gbencedi Nov 19, 2024
2412137
[Infrastructure] Update labeler.yml tag DM changes (#8508)
njacazio Nov 19, 2024
99559b9
[PWGDQ] Adding code to process MC events in Fwd PID task (#8510)
lucamicheletti93 Nov 19, 2024
9040ae4
[PWGHF] include number of contributors histos in correlatorDMesonPair…
atavirag Nov 19, 2024
4b40cbd
[PWGEM] add collision counter for LF cocktail task (#8511)
DanielSamitz Nov 19, 2024
884d8a4
[DPG] Fix compilation warnings (#8380)
vkucera Nov 19, 2024
4c9abbb
[PWGCF] support for centrality weights (#8512)
abilandz Nov 19, 2024
9d72c0c
[PWGCF] FemtoUniverse cascade task -- added process functions for tra…
Eloviyo Nov 19, 2024
c940d60
[PWGLF] Add SP plane to strangeness derived date (#8468)
mpuccio Nov 19, 2024
80801b9
[PWGJE] [PWGJE]Add offline time calibration for data in EMCalCorrecti…
nstrangm Nov 19, 2024
9676e8d
[PWGLF] pwglf: table addition and bug fixes (#8514)
GiorgioAlbertoLucia Nov 19, 2024
5fe3706
[PWGCF] Added efficiency correction and improved the FakeV0Filter (#8…
JStaa Nov 19, 2024
5603070
[PWGHF] Fix int8_t configurables (#8519)
vkucera Nov 20, 2024
c7a22d2
[PWGHF] filling DstarTrack hist with delta Mass (#8427)
cterrevo Nov 20, 2024
fb59ee9
[PWGLF] Fix int8_t configurables (#8523)
vkucera Nov 20, 2024
74a4311
[PWGEM] Fix uint8_t configurables (#8527)
vkucera Nov 20, 2024
0efd8af
[PWGCF] Fix int8_t configurables (#8521)
vkucera Nov 20, 2024
415d37d
[PWGCF] FemtoUniverse: Adding filtered tracks in process func. (#8454)
prchakra Nov 20, 2024
68fb739
[PWGDQ] Adding REFFLOW Histograms with RUN 2 binning (#8525)
victorvalenciatorres Nov 20, 2024
f92f61d
[DPG] Adding track and ft0 occupancy in tine range variables to deriv…
amaringarcia Nov 20, 2024
5f54bab
[PWGEM/Dilepton] update MC tasks (#8496)
dsekihat Nov 20, 2024
d5bae59
[PWGLF] Adding MC daughter momenta to KF 3-body candidate output tree…
creetz16 Nov 20, 2024
a178b6d
[Tutorial] Fix int8_t configurables (#8524)
vkucera Nov 20, 2024
18eb20c
[PWGHF] Remove unnecessary load of material lut in candidate HF creat…
fgrosa Nov 20, 2024
c3fef67
[PWGDQ] Fix uint8_t configurables (#8526)
vkucera Nov 20, 2024
977bd93
[PWGDQ] Adding 5 sigma pDCA cut for Run 3 analysis (#8503)
bhagyasahoo Nov 20, 2024
9f475a1
[PWGLF] Update variable name and fix bug in the daughter track PID in…
BongHwi Nov 20, 2024
c620a21
[PWGCF] Add some selections to pt-effeciency code (#8529)
JiangTao-thu Nov 20, 2024
d1e8667
[PWGHF] Add self-contained derived-data format for B+ (#8485)
vkucera Nov 20, 2024
d48d503
[Infrastructure] Update of DPG coordinators (#8552)
chiarazampolli Nov 20, 2024
a13fdcb
[PWGLF] fixed configurable in dca selection (#8535)
chiarapinto Nov 20, 2024
0052f3a
[DPG] Update rofOccupancyQa.cxx - fixes (#8553)
altsybee Nov 20, 2024
46a28d2
[PWGHF] Add Y cut for reco candidates and fill data sparses with abs(…
mfaggin Nov 20, 2024
bc63c75
[PWGHF] added flag and histograms for direct v1 calculation for cross…
prottayCMT Nov 20, 2024
59369ab
[PWGLF] Fix logic of the number of generated particles + others (#8576)
romainschotter Nov 20, 2024
fe5032f
[PWGHF] Add a possibility to use ML selection in XicToXiPiPi candidat…
JaeYoonCHO Nov 20, 2024
4060cd1
[PWGHF,Trigger] Fix compilation warnings (#8561)
vkucera Nov 20, 2024
34dfe4c
[PWGHF] Fix compilation warnings (#8567)
vkucera Nov 20, 2024
6b31f4f
[PWGJE] Fix int8_t configurables (#8522)
vkucera Nov 20, 2024
f068ec9
[PWGJE] Fix compilation warnings (#8568)
vkucera Nov 20, 2024
155a551
[PWGLF] Add vertex reconstruction rate monitoring (#8539)
mpuccio Nov 20, 2024
4304310
[PWGLF] feat: Add PDG code of ITS track to non-prompt cascade tables …
mpuccio Nov 20, 2024
bda56b7
[PWGCF] Fix compilation warnings (#8381)
vkucera Nov 20, 2024
7a7ff3b
[PWGDQ] Implemented ConfigurableGroup for tableMaker_withAssoc, warni…
iarsene Nov 21, 2024
b1a105b
[PWGHF] Add an eta cut for finding the leading particle. (#8533)
1481014945 Nov 21, 2024
f2eee94
[PWGJE,EMCAL-670] EMCal Clusterizer - add different MinMax time setti…
mhemmer-cern Nov 21, 2024
92ca008
[PWGDQ] [PWGDQ-120] cutsLibrary.cxx: DCA cut on kaon, SPDAny->ISITSib…
torkjellsdatter Nov 21, 2024
5b39df2
[PWGCF] Adding ZDC efficiencies and histos to FlowZDCTask.cxx (#8578)
hernasab Nov 21, 2024
85fae98
[PWGHF] modified function to get EMCal matched track phi and eta (#8557)
sashingo Nov 21, 2024
a6771ec
[PWGCF] FemtoUniverse cascade task -- added pair cleaner for track-ca…
Eloviyo Nov 21, 2024
a81570f
[PWGCF] IdentifiedBf Fixes for MC particle processing (#8538)
bghanley1995 Nov 21, 2024
f30e752
[PWGLF] Changes in sigma0 tasks (#8489)
gianniliveraro Nov 21, 2024
129eb94
[PWGHF] fix the bug of mix-event setting and complete the track QA pl…
zhangbiao-phy Nov 21, 2024
6485462
[PWGUD] Add MC process for global fwd tracks in UPCCandidateProducer …
diana0x0f Nov 21, 2024
366ec57
[Common,PWGJE] Add getParticleOrigin and modified init problem (#8438)
hanseopark Nov 21, 2024
68228ac
[PWGHF] Add single-track variables in B0 reduced task (#8537)
fgrosa Nov 21, 2024
8aa0c32
[PWGDQ] Fix compilation warnings (#8569)
vkucera Nov 21, 2024
0b19905
[Common] Add the mft muon matching with real data workflow (#8562)
syano0822 Nov 21, 2024
ef7d278
[PWGCF] added QA histos and fixed getCorrection function (#8573)
cnkoster Nov 21, 2024
689bab6
[PWGLF] Add event-mixing for analysis of 3body decay (#8544)
wang-yuanzhe Nov 21, 2024
2b30012
[PWGLF] Update on spectraTOF.cxx (#8579)
mtorresc15 Nov 21, 2024
a48eb15
[PWGCF] FemtoUniverse: Linking libraries (#8548)
prchakra Nov 21, 2024
3271777
[PWGUD] update DGCandProducer to fill proper globalBC number into UDM…
pbuehler Nov 21, 2024
b2931be
[PWGLF] Update NucleiHistTask.cxx (#8541)
RafRaf11 Nov 21, 2024
dd6d40c
[PWGCF] commit the pikpcme code version_1 (#8588)
zhengqi-w Nov 21, 2024
ebe0fcf
[PWGLF] add rapidity and gap axes to histograms in UPC analysis (#8575)
nepeivodaRS Nov 21, 2024
6292a2e
[PWGDQ] Change of binning of Psi_FT0C Histograms for DQ Flow (#8542)
thakurd3 Nov 21, 2024
dabead6
[Common,PWGLF] Fix PID parametrisations and add pid to qa task (#8518)
fmazzasc Nov 21, 2024
faca8d0
[PWGCF] flow: add FlowContainer in FlowRunbyRun; add d2{4} in FlowTas…
Luzhiyongg Nov 22, 2024
4f7e715
[PWGDQ] Adding ambiguity histograms for muon (#8501)
mcoquet642 Nov 22, 2024
3931df4
[PWGCF] FemtoUniverse: Adding FDExtCollisions table (#8547)
prchakra Nov 22, 2024
78d99f0
[PWGLF] AngularCorrelationsInJets.cxx: minor histogram edits (#8549)
ljoergen Nov 22, 2024
ae38a2f
PWGJE:fixing error on unsorted JEmcalTrack table (#8551)
nzardosh Nov 22, 2024
f6af2a6
Merge branch 'master' into master
jjungIKF Nov 22, 2024
383b960
Please consider the following formatting changes
alibuild Nov 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ infrastructure:
- 'packaging/**'
- 'pyproject.toml'

datamodel:
- changed-files:
- any-glob-to-any-file: ['DataModel/**', '*/DataModel/**']

dpg:
- changed-files:
- any-glob-to-any-file: ['DPG/**']
Expand Down
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
/Common/CCDB @alibuild @jgrosseo @iarsene @ekryshen @ddobrigk
/Common/Tools/Multiplicity @alibuild @ddobrigk @victor-gonzalez
/ALICE3 @alibuild @njacazio @hscheid
/DPG @alibuild @chiarazampolli @noferini
/DPG @alibuild @chiarazampolli @alcaliva @catalinristea
/DPG/Tasks/AOTEvent @alibuild @ekryshen @strogolo @altsybee
/DPG/Tasks/AOTTrack @alibuild @mfaggin @iouribelikov @njacazio
/DPG/Tasks/TOF @alibuild @noferini @njacazio
Expand Down
113 changes: 113 additions & 0 deletions Common/Core/RecoDecay.h
Original file line number Diff line number Diff line change
Expand Up @@ -1035,6 +1035,119 @@ struct RecoDecay {
}
return OriginType::None;
}

/// based on getCharmHardronOrigin in order to extend general particle
/// Finding the origin (from charm hadronisation or beauty-hadron decay) of paritcle (b, c and others)
/// \param particlesMC table with MC particles
/// \param particle MC particle
/// \param searchUpToQuark if true tag origin based on charm/beauty quark otherwise on the presence of a b-hadron or c-hadron
/// \param idxBhadMothers optional vector of b-hadron indices (might be more than one in case of searchUpToQuark in case of beauty resonances)
/// \return an integer corresponding to the origin (0: none(others), 1: charm, 2: beauty) as in OriginType
template <typename T>
static int getParticleOrigin(const T& particlesMC,
const typename T::iterator& particle,
const bool searchUpToQuark = false,
std::vector<int>* idxBhadMothers = nullptr)
{
int stage = 0; // mother tree level (just for debugging)

// vector of vectors with mother indices; each line corresponds to a "stage"
std::vector<std::vector<int64_t>> arrayIds{};
std::vector<int64_t> initVec{particle.globalIndex()};
arrayIds.push_back(initVec); // the first vector contains the index of the original particle
auto PDGParticle = std::abs(particle.pdgCode());
bool couldBeCharm = false;
if (PDGParticle / 100 == 4 || PDGParticle / 1000 == 4) {
couldBeCharm = true;
}
while (arrayIds[-stage].size() > 0) {
// vector of mother indices for the current stage
std::vector<int64_t> arrayIdsStage{};
for (auto& iPart : arrayIds[-stage]) { // check all the particles that were the mothers at the previous stage
auto particleMother = particlesMC.rawIteratorAt(iPart - particlesMC.offset());
if (particleMother.has_mothers()) {

// we break immediately if searchUpToQuark is false and the first mother is a parton (an hadron should never be the mother of a parton)
if (!searchUpToQuark) {
auto mother = particlesMC.rawIteratorAt(particleMother.mothersIds().front() - particlesMC.offset());
auto PDGParticleIMother = std::abs(mother.pdgCode()); // PDG code of the mother
if (PDGParticleIMother < 9 || (PDGParticleIMother > 20 && PDGParticleIMother < 38)) {
auto PDGPaticle = std::abs(particleMother.pdgCode());
if (
(PDGParticleIMother / 100 == 5 || // b mesons
PDGParticleIMother / 1000 == 5) // b baryons
) {
return OriginType::NonPrompt; // beauty
}
if (
(PDGParticleIMother / 100 == 4 || // c mesons
PDGParticleIMother / 1000 == 4) // c baryons
) {
return OriginType::Prompt; // charm
}
break;
}
}

for (auto iMother = particleMother.mothersIds().front(); iMother <= particleMother.mothersIds().back(); ++iMother) { // loop over the mother particles of the analysed particle
if (std::find(arrayIdsStage.begin(), arrayIdsStage.end(), iMother) != arrayIdsStage.end()) { // if a mother is still present in the vector, do not check it again
continue;
}
auto mother = particlesMC.rawIteratorAt(iMother - particlesMC.offset());
// Check status code
auto motherStatusCode = std::abs(mother.getGenStatusCode());
auto PDGParticleIMother = std::abs(mother.pdgCode()); // PDG code of the mother
// Check mother's PDG code.
// printf("getMother: ");
// for (int i = stage; i < 0; i++) // Indent to make the tree look nice.
// printf(" ");
// printf("Stage %d: Mother PDG: %d, status: %d, Index: %d\n", stage, PDGParticleIMother, motherStatusCode, iMother);

if (searchUpToQuark) {
if (idxBhadMothers) {
if (PDGParticleIMother / 100 == 5 || // b mesons
PDGParticleIMother / 1000 == 5) // b baryons
{
idxBhadMothers->push_back(iMother);
}
}
if (PDGParticleIMother == 5) { // b quark
return OriginType::NonPrompt; // beauty
}
if (PDGParticleIMother == 4) { // c quark
return OriginType::Prompt; // charm
}
} else {
if (
(PDGParticleIMother / 100 == 5 || // b mesons
PDGParticleIMother / 1000 == 5) // b baryons
) {
if (idxBhadMothers) {
idxBhadMothers->push_back(iMother);
}
return OriginType::NonPrompt; // beauty
}
if (
(PDGParticleIMother / 100 == 4 || // c mesons
PDGParticleIMother / 1000 == 4) // c baryons
) {
couldBeCharm = true;
}
}
// add mother index in the vector for the current stage
arrayIdsStage.push_back(iMother);
}
}
}
// add vector of mother indices for the current stage
arrayIds.push_back(arrayIdsStage);
stage--;
}
if (couldBeCharm) {
return OriginType::Prompt; // charm
}
return OriginType::None;
}
};

/// Calculations using (pT, η, φ) coordinates, aka (transverse momentum, pseudorapidity, azimuth)
Expand Down
98 changes: 59 additions & 39 deletions Common/DataModel/PIDResponseITS.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
/// \since 2024-11-12
/// \author Nicolò Jacazio [email protected]
/// \author Francesco Mazzaschi [email protected]
/// \author Giorgio Alberto Lucia [email protected]
/// \brief Set of tables, tasks and utilities to provide the interface between
/// the analysis data model and the PID response of the ITS
///
Expand Down Expand Up @@ -54,19 +55,33 @@ struct ITSResponse {
static constexpr float inverseMass = 1. / o2::track::pid_constants::sMasses[id];
static constexpr float charge = static_cast<float>(o2::track::pid_constants::sCharges[id]);
const float bg = momentum * inverseMass;
return (mITSRespParams[0] / (std::pow(bg, mITSRespParams[1])) + mITSRespParams[2]) * std::pow(charge, mChargeFactor);
if (id == o2::track::PID::Helium3 || id == o2::track::PID::Alpha) {
return (mITSRespParamsZ2[0] / (std::pow(bg, mITSRespParamsZ2[1])) + mITSRespParamsZ2[2]);
}
return (mITSRespParams[0] / (std::pow(bg, mITSRespParams[1])) + mITSRespParams[2]);
}

template <o2::track::PID::ID id>
static float expResolution(const float momentum)
{
static constexpr float inverseMass = 1. / o2::track::pid_constants::sMasses[id];
static constexpr float charge = static_cast<float>(o2::track::pid_constants::sCharges[id]);
const float bg = momentum * inverseMass;
float relRes = mResolutionParams[0] * std::erf((bg - mResolutionParams[1]) / mResolutionParams[2]);
return relRes;
}

template <o2::track::PID::ID id>
static float nSigmaITS(uint32_t itsClusterSizes, float momentum)
static float nSigmaITS(uint32_t itsClusterSizes, float momentum, float eta)
{
const float exp = expSignal<id>(momentum);
const float average = averageClusterSize(itsClusterSizes);
const float resolution = mResolution * exp;
return (average - exp) / resolution;
const float coslInv = 1. / std::cosh(eta);
const float resolution = expResolution<id>(momentum) * exp;
return (average * coslInv - exp) / resolution;
};

static void setParameters(float p0, float p1, float p2, float chargeFactor, float resolution)
static void setParameters(float p0, float p1, float p2, float p0_Z2, float p1_Z2, float p2_Z2, float p0_res, float p1_res, float p2_res)
{
if (mIsInitialized) {
LOG(fatal) << "ITSResponse parameters already initialized";
Expand All @@ -75,79 +90,84 @@ struct ITSResponse {
mITSRespParams[0] = p0;
mITSRespParams[1] = p1;
mITSRespParams[2] = p2;
mChargeFactor = chargeFactor;
mResolution = resolution;
mITSRespParamsZ2[0] = p0_Z2;
mITSRespParamsZ2[1] = p1_Z2;
mITSRespParamsZ2[2] = p2_Z2;
mResolutionParams[0] = p0_res;
mResolutionParams[1] = p1_res;
mResolutionParams[2] = p2_res;
}

private:
static std::array<float, 3> mITSRespParams;
static float mChargeFactor;
static float mResolution;
static std::array<float, 3> mITSRespParamsZ2;
static std::array<float, 3> mResolutionParams;
static bool mIsInitialized;
};

std::array<float, 3> ITSResponse::mITSRespParams = {0.903, 2.014, 2.440};
float ITSResponse::mChargeFactor = 2.299999952316284f;
float ITSResponse::mResolution = 0.15f;
std::array<float, 3> ITSResponse::mITSRespParams = {1.1576, 1.684, 1.9453};
std::array<float, 3> ITSResponse::mITSRespParamsZ2 = {2.8752, 1.1246, 5.0259};
// relative resolution is modelled with an erf function: [0]*TMath::Erf((x-[1])/[2])
std::array<float, 3> ITSResponse::mResolutionParams = {0.2431, -0.3293, 1.533};
bool ITSResponse::mIsInitialized = false;

namespace pidits
{
DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaElImp, itsNSigmaEl, //! Nsigma separation with the ITS detector for electrons
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Electron>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Electron>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaMuImp, itsNSigmaMu, //! Nsigma separation with the ITS detector for muons
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Muon>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Muon>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaPiImp, itsNSigmaPi, //! Nsigma separation with the ITS detector for pions
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Pion>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Pion>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaKaImp, itsNSigmaKa, //! Nsigma separation with the ITS detector for kaons
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Kaon>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Kaon>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaPrImp, itsNSigmaPr, //! Nsigma separation with the ITS detector for protons
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Proton>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Proton>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaDeImp, itsNSigmaDe, //! Nsigma separation with the ITS detector for deuterons
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Deuteron>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Deuteron>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaTrImp, itsNSigmaTr, //! Nsigma separation with the ITS detector for tritons
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Triton>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Triton>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaHeImp, itsNSigmaHe, //! Nsigma separation with the ITS detector for helium3
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Helium3>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Helium3>(itsClusterSizes, momentum, eta);
});

DECLARE_SOA_DYNAMIC_COLUMN(ITSNSigmaAlImp, itsNSigmaAl, //! Nsigma separation with the ITS detector for alphas
[](uint32_t itsClusterSizes, float momentum) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Alpha>(itsClusterSizes, momentum);
[](uint32_t itsClusterSizes, float momentum, float eta) -> float {
return ITSResponse::nSigmaITS<o2::track::PID::Alpha>(itsClusterSizes, momentum, eta);
});

// Define user friendly names for the columns to join with the tracks
using ITSNSigmaEl = ITSNSigmaElImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaMu = ITSNSigmaMuImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaPi = ITSNSigmaPiImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaKa = ITSNSigmaKaImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaPr = ITSNSigmaPrImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaDe = ITSNSigmaDeImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaTr = ITSNSigmaTrImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaHe = ITSNSigmaHeImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaAl = ITSNSigmaAlImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P>;
using ITSNSigmaEl = ITSNSigmaElImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaMu = ITSNSigmaMuImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaPi = ITSNSigmaPiImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaKa = ITSNSigmaKaImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaPr = ITSNSigmaPrImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaDe = ITSNSigmaDeImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaTr = ITSNSigmaTrImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaHe = ITSNSigmaHeImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;
using ITSNSigmaAl = ITSNSigmaAlImp<o2::aod::track::ITSClusterSizes, o2::aod::track::P, o2::aod::track::Eta>;

} // namespace pidits
} // namespace o2::aod
Expand Down
5 changes: 5 additions & 0 deletions Common/TableProducer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,8 @@ o2physics_add_dpl_workflow(ese-table-producer
SOURCES eseTableProducer.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(mftmch-matching-data
SOURCES match-mft-mch-data.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase O2Physics::AnalysisCCDB O2Physics::PWGDQCore O2Physics::EventFilteringUtils
COMPONENT_NAME Analysis)
Loading
Loading