Skip to content

Commit d614c35

Browse files
committed
treeCreatorPidTpcQa: mainly working version
1 parent 89be51e commit d614c35

2 files changed

Lines changed: 44 additions & 7 deletions

File tree

DPG/Tasks/AOTTrack/PID/TPC/treeCreatorPidTpcQa.cxx

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include <ReconstructionDataFormats/PID.h>
3939

4040
#include <cmath>
41+
#include <cstdint>
4142
#include <string>
4243

4344
using namespace o2;
@@ -122,7 +123,7 @@ struct treeCreatorPidTpcQa {
122123
ccdb->setFatalWhenNull(false);
123124
}
124125

125-
template <o2::track::PID::ID Id, typename TrackType>
126+
template <o2::track::PID::ID Id, bool IsFullTable, bool IsTofTable, typename TrackType>
126127
void processSingleParticle(CollisionsExtra const& collisions,
127128
TrackType const& tracks)
128129
{
@@ -162,12 +163,30 @@ struct treeCreatorPidTpcQa {
162163
continue;
163164
}
164165

165-
const int nClNormalized = std::sqrt(nClNorm / track.tpcNClsFound());
166+
const float nClNormalized = std::sqrt(nClNorm / track.tpcNClsFound());
166167
const float phi = track.phi();
167168
const float tgl = track.tgl();
168169
const float tpcInnerParam = track.tpcInnerParam();
170+
const int16_t trackSign = track.sign();
171+
const float nSigmaTpc = o2::aod::pidutils::tpcNSigma<Id>(track);
169172

170-
rowPidTpcQa(Id, ft0Occ, hadronicRate, multTPC, nClNormalized, phi, tgl, tpcInnerParam, rapidity);
173+
float dedxDiff{UndefValueFloat};
174+
float dedxExpected{UndefValueFloat};
175+
float expSigma{UndefValueFloat};
176+
177+
if constexpr (IsFullTable) {
178+
dedxDiff = o2::aod::pidutils::tpcExpSignalDiff<Id>(track);
179+
dedxExpected = track.tpcSignal() - dedxDiff;
180+
expSigma = o2::aod::pidutils::tpcExpSigma<Id>(track);
181+
}
182+
183+
float nSigmaTof{UndefValueFloat};
184+
185+
if constexpr (IsTofTable) {
186+
nSigmaTof = o2::aod::pidutils::tofNSigma<Id>(track);
187+
}
188+
189+
rowPidTpcQa(Id, ft0Occ, hadronicRate, multTPC, nClNormalized, phi, tgl, tpcInnerParam, rapidity, trackSign, nSigmaTpc, dedxExpected, dedxDiff, expSigma, nSigmaTof);
171190
} // tracksFromCollision
172191
} // collisions
173192
}
@@ -178,7 +197,7 @@ struct treeCreatorPidTpcQa {
178197
soa::Join<TrackCandidates, PidTableTPC> const& tracks, \
179198
aod::BCsWithTimestamps const&) \
180199
{ \
181-
processSingleParticle<PID::ParticleId>(collisions, tracks); \
200+
processSingleParticle<PID::ParticleId, false, false>(collisions, tracks); \
182201
} \
183202
PROCESS_SWITCH(treeCreatorPidTpcQa, process##ParticleId, Form("Process for the %s hypothesis for TPC NSigma QA", #ParticleId), false);
184203

@@ -199,7 +218,7 @@ struct treeCreatorPidTpcQa {
199218
soa::Join<TrackCandidates, PidTableTPC> const& tracks, \
200219
aod::BCsWithTimestamps const&) \
201220
{ \
202-
processSingleParticle<PID::ParticleId>(collisions, tracks); \
221+
processSingleParticle<PID::ParticleId, true, false>(collisions, tracks); \
203222
} \
204223
PROCESS_SWITCH(treeCreatorPidTpcQa, processFull##ParticleId, Form("Process for the %s hypothesis for full TPC PID QA", #ParticleId), false);
205224

@@ -220,7 +239,7 @@ struct treeCreatorPidTpcQa {
220239
soa::Join<TrackCandidates, PidTableTPC, PidTableTOF> const& tracks, \
221240
aod::BCsWithTimestamps const&) \
222241
{ \
223-
processSingleParticle<PID::ParticleId>(collisions, tracks); \
242+
processSingleParticle<PID::ParticleId, true, true>(collisions, tracks); \
224243
} \
225244
PROCESS_SWITCH(treeCreatorPidTpcQa, processFullWithTOF##ParticleId, Form("Process for the %s hypothesis for full TPC PID QA with the TOF info added", #ParticleId), false);
226245

DPG/Tasks/AOTTrack/PID/TPC/treeCreatorPidTpcQa.h

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,20 @@
2222
#include <Framework/ASoA.h>
2323
#include <Framework/AnalysisDataModel.h>
2424

25+
#include <cstdint>
26+
2527
namespace o2::aod
2628
{
29+
namespace dpg_tpcpidqa
30+
{
31+
DECLARE_SOA_COLUMN(Sign, sign, int16_t);
32+
DECLARE_SOA_COLUMN(NSigmaTpc, nSigmaTpc, float);
33+
DECLARE_SOA_COLUMN(DedxExpected, dedxTpc, float);
34+
DECLARE_SOA_COLUMN(DedxDiff, dedxDiff, float);
35+
DECLARE_SOA_COLUMN(ExpSigma, expSigma, float);
36+
DECLARE_SOA_COLUMN(NSigmaTof, nSigmaTof, float);
37+
} // namespace dpg_tpcpidqa
38+
2739
DECLARE_SOA_TABLE(QaPidTpc, "AOD", "QAPIDTPC",
2840
tpcskims::PidIndex,
2941
tpcskims::Ft0Occ,
@@ -33,7 +45,13 @@ DECLARE_SOA_TABLE(QaPidTpc, "AOD", "QAPIDTPC",
3345
o2::aod::track::Phi,
3446
o2::aod::track::Tgl,
3547
o2::aod::track::TPCInnerParam,
36-
o2::aod::track::Y)
48+
o2::aod::track::Y,
49+
dpg_tpcpidqa::Sign,
50+
dpg_tpcpidqa::NSigmaTpc,
51+
dpg_tpcpidqa::DedxExpected,
52+
dpg_tpcpidqa::DedxDiff,
53+
dpg_tpcpidqa::ExpSigma,
54+
dpg_tpcpidqa::NSigmaTof)
3755
} // namespace o2::aod
3856

3957
#endif // DPG_TASKS_AOTTRACK_PID_TPC_TREECREATORPIDTPCQA_H_

0 commit comments

Comments
 (0)