Skip to content

Commit 909352f

Browse files
committed
AOD TrackQA stores 100/track.dEdxAlt.dEdxTPCTot used for its dEdx info normalization
The ratio is stored with the same precision as the nominal dEdxAlt.dEdxTPCTot in the extraInfo.TPCSignal.
1 parent 2dc461b commit 909352f

File tree

3 files changed

+30
-13
lines changed

3 files changed

+30
-13
lines changed

Detectors/AOD/include/AODProducerWorkflow/AODProducerWorkflowSpec.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ class AODProducerWorkflowDPL : public Task
413413
struct TrackQA {
414414
GID trackID;
415415
float tpcTime0{};
416+
float tpcdEdxNorm{};
416417
int16_t tpcdcaR{};
417418
int16_t tpcdcaZ{};
418419
uint8_t tpcClusterByteMask{};

Detectors/AOD/src/AODProducerWorkflowSpec.cxx

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ void AODProducerWorkflowDPL::addToTracksQATable(TracksQACursorType& tracksQACurs
362362
tracksQACursor(
363363
trackQAInfoHolder.trackID,
364364
truncateFloatFraction(trackQAInfoHolder.tpcTime0, mTPCTime0),
365+
truncateFloatFraction(trackQAInfoHolder.tpcdEdxNorm, mTrackSignal),
365366
trackQAInfoHolder.tpcdcaR,
366367
trackQAInfoHolder.tpcdcaZ,
367368
trackQAInfoHolder.tpcClusterByteMask,
@@ -2542,14 +2543,15 @@ AODProducerWorkflowDPL::TrackExtraInfo AODProducerWorkflowDPL::processBarrelTrac
25422543
if (contributorsGID[GIndex::Source::TPC].isIndexSet()) {
25432544
const auto& tpcOrig = data.getTPCTrack(contributorsGID[GIndex::TPC]);
25442545
const auto& tpcClData = mTPCCounters[contributorsGID[GIndex::TPC]];
2546+
const auto& dEdx = tpcOrig.getdEdx();
25452547
extraInfoHolder.tpcInnerParam = tpcOrig.getP() / tpcOrig.getAbsCharge();
25462548
extraInfoHolder.tpcChi2NCl = tpcOrig.getNClusters() ? tpcOrig.getChi2() / tpcOrig.getNClusters() : 0;
2547-
extraInfoHolder.tpcSignal = tpcOrig.getdEdx().dEdxTotTPC;
2549+
extraInfoHolder.tpcSignal = dEdx.dEdxTotTPC;
25482550
extraInfoHolder.tpcNClsFindable = tpcOrig.getNClusters();
25492551
extraInfoHolder.tpcNClsFindableMinusFound = tpcOrig.getNClusters() - tpcClData.found;
25502552
extraInfoHolder.tpcNClsFindableMinusCrossedRows = tpcOrig.getNClusters() - tpcClData.crossed;
25512553
extraInfoHolder.tpcNClsShared = tpcClData.shared;
2552-
uint32_t clsUsedForPID = tpcOrig.getdEdx().NHitsIROC + tpcOrig.getdEdx().NHitsOROC1 + tpcOrig.getdEdx().NHitsOROC2 + tpcOrig.getdEdx().NHitsOROC3;
2554+
uint32_t clsUsedForPID = dEdx.NHitsIROC + dEdx.NHitsOROC1 + dEdx.NHitsOROC2 + dEdx.NHitsOROC3;
25532555
extraInfoHolder.tpcNClsFindableMinusPID = tpcOrig.getNClusters() - clsUsedForPID;
25542556
if (src == GIndex::TPC) { // standalone TPC track should set its time from their timebins range
25552557
if (needBCSlice) {
@@ -2625,16 +2627,18 @@ AODProducerWorkflowDPL::TrackQA AODProducerWorkflowDPL::processBarrelTrackQA(int
26252627
}
26262628
trackQAHolder.tpcTime0 = tpcOrig.getTime0();
26272629
trackQAHolder.tpcClusterByteMask = byteMask;
2628-
const float dEdxNorm = (tpcOrig.getdEdx().dEdxTotTPC > 0) ? 100. / tpcOrig.getdEdx().dEdxTotTPC : 0;
2629-
trackQAHolder.tpcdEdxMax0R = uint8_t(tpcOrig.getdEdx().dEdxMaxIROC * dEdxNorm);
2630-
trackQAHolder.tpcdEdxMax1R = uint8_t(tpcOrig.getdEdx().dEdxMaxOROC1 * dEdxNorm);
2631-
trackQAHolder.tpcdEdxMax2R = uint8_t(tpcOrig.getdEdx().dEdxMaxOROC2 * dEdxNorm);
2632-
trackQAHolder.tpcdEdxMax3R = uint8_t(tpcOrig.getdEdx().dEdxMaxOROC3 * dEdxNorm);
2630+
const auto& dEdxInfoAlt = tpcOrig.getdEdxAlt(); // tpcOrig.getdEdx()
2631+
const float dEdxNorm = (dEdxInfoAlt.dEdxTotTPC > 0) ? 100. / dEdxInfoAlt.dEdxTotTPC : 0;
2632+
trackQAHolder.tpcdEdxNorm = dEdxNorm;
2633+
trackQAHolder.tpcdEdxMax0R = uint8_t(dEdxInfoAlt.dEdxMaxIROC * dEdxNorm);
2634+
trackQAHolder.tpcdEdxMax1R = uint8_t(dEdxInfoAlt.dEdxMaxOROC1 * dEdxNorm);
2635+
trackQAHolder.tpcdEdxMax2R = uint8_t(dEdxInfoAlt.dEdxMaxOROC2 * dEdxNorm);
2636+
trackQAHolder.tpcdEdxMax3R = uint8_t(dEdxInfoAlt.dEdxMaxOROC3 * dEdxNorm);
26332637
//
2634-
trackQAHolder.tpcdEdxTot0R = uint8_t(tpcOrig.getdEdx().dEdxTotIROC * dEdxNorm);
2635-
trackQAHolder.tpcdEdxTot1R = uint8_t(tpcOrig.getdEdx().dEdxTotOROC1 * dEdxNorm);
2636-
trackQAHolder.tpcdEdxTot2R = uint8_t(tpcOrig.getdEdx().dEdxTotOROC2 * dEdxNorm);
2637-
trackQAHolder.tpcdEdxTot3R = uint8_t(tpcOrig.getdEdx().dEdxTotOROC3 * dEdxNorm);
2638+
trackQAHolder.tpcdEdxTot0R = uint8_t(dEdxInfoAlt.dEdxTotIROC * dEdxNorm);
2639+
trackQAHolder.tpcdEdxTot1R = uint8_t(dEdxInfoAlt.dEdxTotOROC1 * dEdxNorm);
2640+
trackQAHolder.tpcdEdxTot2R = uint8_t(dEdxInfoAlt.dEdxTotOROC2 * dEdxNorm);
2641+
trackQAHolder.tpcdEdxTot3R = uint8_t(dEdxInfoAlt.dEdxTotOROC3 * dEdxNorm);
26382642
///
26392643
float scaleTOF{0};
26402644
auto contributorsGIDA = data.getSingleDetectorRefs(trackIndex);
@@ -2705,6 +2709,7 @@ AODProducerWorkflowDPL::TrackQA AODProducerWorkflowDPL::processBarrelTrackQA(int
27052709
<< "scaleGlo3=" << scaleGlo(3)
27062710
<< "scaleGlo4=" << scaleGlo(4)
27072711
<< "trackQAHolder.tpcTime0=" << trackQAHolder.tpcTime0
2712+
<< "trackQAHolder.tpcdEdxNorm=" << trackQAHolder.tpcdEdxNorm
27082713
<< "trackQAHolder.tpcdcaR=" << trackQAHolder.tpcdcaR
27092714
<< "trackQAHolder.tpcdcaZ=" << trackQAHolder.tpcdcaZ
27102715
<< "trackQAHolder.tpcdcaClusterByteMask=" << trackQAHolder.tpcClusterByteMask

Framework/Core/include/Framework/AnalysisDataModel.h

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,10 +680,11 @@ namespace trackqa
680680
// TRACKQA TABLE COLUMNS
681681
DECLARE_SOA_INDEX_COLUMN(Track, track); //! track to which this QA information belongs
682682
DECLARE_SOA_COLUMN(TPCTime0, tpcTime0, float); //! tpc only time0 (mTime0 in TPC track)
683+
DECLARE_SOA_COLUMN(TPCdEdxNorm, tpcdEdxNorm, float); //! 100/TrackTPC.mdEdxAlt used to normalize dEdX...values below
683684
DECLARE_SOA_COLUMN(TPCDCAR, tpcdcaR, int16_t); //! tpc only DCAr
684685
DECLARE_SOA_COLUMN(TPCDCAZ, tpcdcaZ, int16_t); //! tpc only DCAz
685686
DECLARE_SOA_COLUMN(TPCClusterByteMask, tpcClusterByteMask, uint8_t); //! tracklet bitmask - track defining 8 tracklets (152=8*19 rows) bit set if nCluster>thr (default 5)
686-
DECLARE_SOA_COLUMN(TPCdEdxMax0R, tpcdEdxMax0R, uint8_t); //! TPC dEdxQMax -ROC0/dEdx
687+
DECLARE_SOA_COLUMN(TPCdEdxMax0R, tpcdEdxMax0R, uint8_t); //! TPC dEdxQMax -ROC0/dEdx from TrackTPC.mdEdxAlt
687688
DECLARE_SOA_COLUMN(TPCdEdxMax1R, tpcdEdxMax1R, uint8_t); //! TPC dEdxQMax -ROC1/dEdx
688689
DECLARE_SOA_COLUMN(TPCdEdxMax2R, tpcdEdxMax2R, uint8_t); //! TPC dEdxQMax -ROC2/dEdx
689690
DECLARE_SOA_COLUMN(TPCdEdxMax3R, tpcdEdxMax3R, uint8_t); //! TPC dEdxQMax -ROC3/dEdx
@@ -736,7 +737,17 @@ DECLARE_SOA_TABLE_VERSIONED(TracksQA_002, "AOD", "TRACKQA", 2, //! trackQA infor
736737
trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
737738
trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
738739

739-
using TracksQAVersion = TracksQA_002;
740+
DECLARE_SOA_TABLE_VERSIONED(TracksQA_003, "AOD", "TRACKQA", 3, //! trackQA information - version 3 - including alternative dedx normalization
741+
o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCdEdxNorm, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
742+
trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
743+
trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
744+
trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
745+
trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
746+
trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
747+
trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
748+
trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
749+
750+
using TracksQAVersion = TracksQA_003;
740751
using TracksQA = TracksQAVersion::iterator;
741752

742753
namespace fwdtrack

0 commit comments

Comments
 (0)