Skip to content

Commit 7718812

Browse files
committed
Merge remote-tracking branch 'upstream/master' into spincorr254
2 parents 5aaa41f + e0237f6 commit 7718812

File tree

21 files changed

+1018
-527
lines changed

21 files changed

+1018
-527
lines changed

Common/Tools/TrackPropagationModule.h

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,20 +113,35 @@ class TrackPropagationModule
113113
fillTracksDCA = isTableRequiredInWorkflow(initContext, "TracksDCA");
114114
fillTracksDCACov = isTableRequiredInWorkflow(initContext, "TracksDCACov");
115115

116+
// enable Tracks in case Tracks have been requested
117+
if (fillTracksDCA) {
118+
LOGF(info, "******************************************************************");
119+
LOGF(info, " There is no task subscribed to Tracks, but I have detected a");
120+
LOGF(info, " subscription to TracksDCA. Now enabling tracks as algorithmic");
121+
LOGF(info, " dependency. Note: please be sure this is intentional! For");
122+
LOGF(info, " secondary analyses, the proper DCA to test against is the DCA");
123+
LOGF(info, " that the V0 or Cascade is assigned to and not necessarily the");
124+
LOGF(info, " the one that the Track is assigned to (if any). ");
125+
LOGF(info, "******************************************************************");
126+
fillTracks = true;
127+
}
128+
116129
if (!fillTracks) {
117130
LOGF(info, "Track propagation to PV not required. Suppressing all further processing and logs.");
118131
}
119132

120133
LOGF(info, " Track propagation table detection results:");
121-
LOGF(info, " ---> Will generate Tracks table.");
134+
if (fillTracks) {
135+
LOGF(info, " ---> Will generate Tracks table.");
136+
}
122137
if (fillTracksCov) {
123-
LOGF(info, "---> Will generate TracksCov table.");
138+
LOGF(info, " ---> Will generate TracksCov table.");
124139
}
125140
if (fillTracksDCA) {
126-
LOGF(info, "---> Will generate TracksDCA table.");
141+
LOGF(info, " ---> Will generate TracksDCA table.");
127142
}
128143
if (fillTracksDCACov) {
129-
LOGF(info, "---> Will generate TracksDCACov table.");
144+
LOGF(info, " ---> Will generate TracksDCACov table.");
130145
}
131146
if (fillTracksCov) {
132147
LOGF(info, "**************************************************************");

DPG/Tasks/AOTTrack/derivedDataCreatorD0Calibration.cxx

Lines changed: 65 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,14 @@ struct DerivedDataCreatorD0Calibration {
168168
selectorKaon = selectorPion;
169169
}
170170

171-
void process(CollisionsWEvSel const& collisions,
172-
aod::TrackAssoc const& trackIndices,
173-
TracksWCovExtraPid const&,
174-
aod::BCsWithTimestamps const&,
175-
TrackMeanOccs const&,
176-
aod::TracksQAVersion const&)
171+
// main function
172+
template <bool withTrackQa, typename TTrackQa>
173+
void runDataCreation(CollisionsWEvSel const& collisions,
174+
aod::TrackAssoc const& trackIndices,
175+
TracksWCovExtraPid const&,
176+
aod::BCsWithTimestamps const&,
177+
TrackMeanOccs const&,
178+
TTrackQa const&)
177179
{
178180
std::map<int, int> selectedCollisions; // map with indices of selected collisions (key: original AOD Collision table index, value: D0 collision index)
179181
std::map<int, int> selectedTracks; // map with indices of selected tracks (key: original AOD Track table index, value: D0 daughter track index)
@@ -419,7 +421,9 @@ struct DerivedDataCreatorD0Calibration {
419421
// apply BDT models
420422
if (cfgMl.apply) {
421423
std::vector<float> featuresCandD0 = {dcaPos.getY(), dcaNeg.getY(), chi2PCA, cosPaD0, cosPaXYD0, decLenXYD0, decLenD0, dcaPos.getY() * dcaNeg.getY(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaPi(), trackPos.tofNSigmaPi()), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaKa(), trackNeg.tofNSigmaKa()), trackPos.tpcNSigmaPi(), trackPos.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaKa(), trackPos.tofNSigmaKa()), trackNeg.tpcNSigmaPi(), trackNeg.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaPi(), trackNeg.tofNSigmaPi())};
422-
mlResponse.isSelectedMl(featuresCandD0, ptD0, bdtScoresD0);
424+
if (!mlResponse.isSelectedMl(featuresCandD0, ptD0, bdtScoresD0)) {
425+
massHypo -= D0MassHypo::D0;
426+
}
423427
}
424428
}
425429
}
@@ -432,7 +436,9 @@ struct DerivedDataCreatorD0Calibration {
432436
// apply BDT models
433437
if (cfgMl.apply) {
434438
std::vector<float> featuresCandD0bar = {dcaPos.getY(), dcaNeg.getY(), chi2PCA, cosPaD0, cosPaXYD0, decLenXYD0, decLenD0, dcaPos.getY() * dcaNeg.getY(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaPi(), trackNeg.tofNSigmaPi()), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaKa(), trackPos.tofNSigmaKa()), trackNeg.tpcNSigmaPi(), trackNeg.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaKa(), trackNeg.tofNSigmaKa()), trackPos.tpcNSigmaPi(), trackPos.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaPi(), trackPos.tofNSigmaPi())};
435-
mlResponse.isSelectedMl(featuresCandD0bar, ptD0, bdtScoresD0bar);
439+
if (!mlResponse.isSelectedMl(featuresCandD0bar, ptD0, bdtScoresD0bar)) {
440+
massHypo -= D0MassHypo::D0Bar;
441+
}
436442
}
437443
}
438444
}
@@ -515,33 +521,35 @@ struct DerivedDataCreatorD0Calibration {
515521
int8_t deltaRefGloParamQ2Pt{0};
516522
int8_t deltaTOFdX{0};
517523
int8_t deltaTOFdZ{0};
518-
if (trackPos.has_trackQA()) {
519-
auto trackQA = trackPos.trackQA_as<aod::TracksQAVersion>(); // obtain track QA
520-
tpcTime0 = trackQA.tpcTime0();
521-
tpcdEdxNorm = trackQA.tpcdEdxNorm();
522-
tpcDcaR = trackQA.tpcdcaR();
523-
tpcDcaZ = trackQA.tpcdcaZ();
524-
tpcClusterByteMask = trackQA.tpcClusterByteMask();
525-
tpcdEdxMax0R = trackQA.tpcdEdxMax0R();
526-
tpcdEdxMax1R = trackQA.tpcdEdxMax1R();
527-
tpcdEdxMax2R = trackQA.tpcdEdxMax2R();
528-
tpcdEdxMax3R = trackQA.tpcdEdxMax3R();
529-
tpcdEdxTot0R = trackQA.tpcdEdxTot0R();
530-
tpcdEdxTot1R = trackQA.tpcdEdxTot1R();
531-
tpcdEdxTot2R = trackQA.tpcdEdxTot2R();
532-
tpcdEdxTot3R = trackQA.tpcdEdxTot3R();
533-
deltaRefContParamY = trackQA.deltaRefContParamY();
534-
deltaRefITSParamZ = trackQA.deltaRefITSParamZ();
535-
deltaRefContParamSnp = trackQA.deltaRefContParamSnp();
536-
deltaRefContParamTgl = trackQA.deltaRefContParamTgl();
537-
deltaRefContParamQ2Pt = trackQA.deltaRefContParamQ2Pt();
538-
deltaRefGloParamY = trackQA.deltaRefGloParamY();
539-
deltaRefGloParamZ = trackQA.deltaRefGloParamZ();
540-
deltaRefGloParamSnp = trackQA.deltaRefGloParamSnp();
541-
deltaRefGloParamTgl = trackQA.deltaRefGloParamTgl();
542-
deltaRefGloParamQ2Pt = trackQA.deltaRefGloParamQ2Pt();
543-
deltaTOFdX = trackQA.deltaTOFdX();
544-
deltaTOFdZ = trackQA.deltaTOFdZ();
524+
if constexpr (withTrackQa) {
525+
if (trackPos.has_trackQA()) {
526+
auto trackQA = trackPos.template trackQA_as<TTrackQa>(); // obtain track QA
527+
tpcTime0 = trackQA.tpcTime0();
528+
tpcdEdxNorm = trackQA.tpcdEdxNorm();
529+
tpcDcaR = trackQA.tpcdcaR();
530+
tpcDcaZ = trackQA.tpcdcaZ();
531+
tpcClusterByteMask = trackQA.tpcClusterByteMask();
532+
tpcdEdxMax0R = trackQA.tpcdEdxMax0R();
533+
tpcdEdxMax1R = trackQA.tpcdEdxMax1R();
534+
tpcdEdxMax2R = trackQA.tpcdEdxMax2R();
535+
tpcdEdxMax3R = trackQA.tpcdEdxMax3R();
536+
tpcdEdxTot0R = trackQA.tpcdEdxTot0R();
537+
tpcdEdxTot1R = trackQA.tpcdEdxTot1R();
538+
tpcdEdxTot2R = trackQA.tpcdEdxTot2R();
539+
tpcdEdxTot3R = trackQA.tpcdEdxTot3R();
540+
deltaRefContParamY = trackQA.deltaRefContParamY();
541+
deltaRefITSParamZ = trackQA.deltaRefITSParamZ();
542+
deltaRefContParamSnp = trackQA.deltaRefContParamSnp();
543+
deltaRefContParamTgl = trackQA.deltaRefContParamTgl();
544+
deltaRefContParamQ2Pt = trackQA.deltaRefContParamQ2Pt();
545+
deltaRefGloParamY = trackQA.deltaRefGloParamY();
546+
deltaRefGloParamZ = trackQA.deltaRefGloParamZ();
547+
deltaRefGloParamSnp = trackQA.deltaRefGloParamSnp();
548+
deltaRefGloParamTgl = trackQA.deltaRefGloParamTgl();
549+
deltaRefGloParamQ2Pt = trackQA.deltaRefGloParamQ2Pt();
550+
deltaTOFdX = trackQA.deltaTOFdX();
551+
deltaTOFdZ = trackQA.deltaTOFdZ();
552+
}
545553
}
546554

547555
trackTable(selectedCollisions[collision.globalIndex()], // stored at PV
@@ -821,6 +829,28 @@ struct DerivedDataCreatorD0Calibration {
821829
} // end loop over positive tracks
822830
} // end loop over collisions tracks
823831
}
832+
833+
// process functions
834+
void processWithTrackQa(CollisionsWEvSel const& collisions,
835+
aod::TrackAssoc const& trackIndices,
836+
TracksWCovExtraPid const& tracks,
837+
aod::BCsWithTimestamps const& bcs,
838+
TrackMeanOccs const& occ,
839+
aod::TracksQAVersion const& trackQa)
840+
{
841+
runDataCreation<true>(collisions, trackIndices, tracks, bcs, occ, trackQa);
842+
}
843+
PROCESS_SWITCH(DerivedDataCreatorD0Calibration, processWithTrackQa, "Process with trackQA enabled", false);
844+
845+
void processNoTrackQa(CollisionsWEvSel const& collisions,
846+
aod::TrackAssoc const& trackIndices,
847+
TracksWCovExtraPid const& tracks,
848+
aod::BCsWithTimestamps const& bcs,
849+
TrackMeanOccs const& occ)
850+
{
851+
runDataCreation<false>(collisions, trackIndices, tracks, bcs, occ, nullptr);
852+
}
853+
PROCESS_SWITCH(DerivedDataCreatorD0Calibration, processNoTrackQa, "Process without trackQA enabled", true);
824854
};
825855

826856
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

PWGCF/Core/CorrelationContainer.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ CorrelationContainer::CorrelationContainer(const char* name, const char* objTitl
115115
triggerAxis.insert(triggerAxis.end(), userAxis.begin(), userAxis.end());
116116
mTriggerHist = HistFactory::createHist<StepTHnF>({"mTriggerHist", "d^{2}N_{ch}/d#varphid#eta", {HistType::kStepTHnF, triggerAxis, fgkCFSteps}}).release();
117117

118-
mTrackHistEfficiency = HistFactory::createHist<StepTHnD>({"mTrackHistEfficiency", "Tracking efficiency", {HistType::kStepTHnD, {efficiencyAxis[0], efficiencyAxis[1], {5, -0.5, 4.5, "species"}, correlationAxis[3], efficiencyAxis[2]}, fgkCFSteps}}).release();
118+
mTrackHistEfficiency = HistFactory::createHist<StepTHnF>({"mTrackHistEfficiency", "Tracking efficiency", {HistType::kStepTHnF, {efficiencyAxis[0], efficiencyAxis[1], {5, -0.5, 4.5, "species"}, correlationAxis[3], efficiencyAxis[2]}, fgkCFSteps}}).release();
119119

120120
mEventCount = HistFactory::createHist<TH2F>({"mEventCount", ";step;centrality;count", {HistType::kTH2F, {{fgkCFSteps + 2, -2.5, -0.5 + fgkCFSteps, "step"}, correlationAxis[3]}}}).release();
121121
}

0 commit comments

Comments
 (0)