Skip to content

Commit 2509f9c

Browse files
authored
DPG: update qa TOF (#6297)
1 parent 1835292 commit 2509f9c

1 file changed

Lines changed: 38 additions & 7 deletions

File tree

DPG/Tasks/AOTTrack/PID/qaPIDTOFEvTime.cxx

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,19 @@ struct tofPidCollisionTimeQa {
195195
makeEfficiency("effTOFT0ACEvTime", "Efficiency of the TOF+T0AC Event Time");
196196
makeEfficiency("effT0AEvTime", "Efficiency of the T0A Event Time");
197197
makeEfficiency("effT0CEvTime", "Efficiency of the T0C Event Time");
198+
199+
if (!doprocessMC) {
200+
return;
201+
}
202+
histos.add("MC/t", "", HistType::kTH1F, {{1000, -1000, 1000, "MC time"}});
198203
}
199204

200-
using Trks = soa::Join<aod::Tracks, aod::TracksExtra, aod::TOFSignal, aod::TOFEvTime, aod::pidEvTimeFlags, aod::pidTOFbeta, aod::pidTOFmass, aod::EvTimeTOFOnly, aod::TrackSelection>;
205+
using Trks = soa::Join<aod::Tracks, aod::TracksExtra, aod::TOFSignal, aod::TOFEvTime, aod::EvTimeTOFOnly, aod::pidEvTimeFlags,
206+
aod::pidTOFbeta, aod::pidTOFmass, aod::EvTimeTOFOnly, aod::TrackSelection>;
201207
using EvTimeCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::FT0sCorrected>;
202208
// Define slice per collision
203209
Preslice<Trks> perCollision = aod::track::collisionId;
204-
void process(Trks const& tracks, EvTimeCollisions const&)
210+
void processData(Trks const& tracks, EvTimeCollisions const&)
205211
{
206212
static int ncolls = 0;
207213
int lastCollisionId = -1; // Last collision ID analysed
@@ -211,7 +217,6 @@ struct tofPidCollisionTimeQa {
211217
} else if (t.collisionId() == lastCollisionId) { // Event was already processed
212218
continue;
213219
}
214-
// Create new table for the tracks in a collision
215220
lastCollisionId = t.collisionId(); /// Cache last collision ID
216221
auto collision = t.collision_as<EvTimeCollisions>();
217222

@@ -402,9 +407,35 @@ struct tofPidCollisionTimeQa {
402407
static_cast<TEfficiency*>(listEfficiency->FindObject("effTOFT0ACEvTime"))->Fill(t.isEvTimeTOF() && collision.has_foundFT0() && collision.t0ACorrectedValid(), nTracksWithTOF);
403408
}
404409
}
410+
PROCESS_SWITCH(tofPidCollisionTimeQa, processData, "Process data", true);
411+
412+
using TrksMC = soa::Join<Trks, aod::McTrackLabels>;
413+
using EvTimeCollisionsMC = soa::Join<EvTimeCollisions, aod::McCollisionLabels>;
414+
void processMC(TrksMC const& tracks,
415+
EvTimeCollisionsMC const&,
416+
aod::McParticles const&,
417+
aod::BCs const&,
418+
aod::McCollisions const&)
419+
{
420+
// static int ncolls = 0;
421+
int lastCollisionId = -1; // Last collision ID analysed
422+
423+
for (auto& t : tracks) {
424+
if (!t.has_collision()) { // Track was not assigned to a collision
425+
continue;
426+
} else if (t.collisionId() == lastCollisionId) { // Event was already processed
427+
continue;
428+
}
429+
lastCollisionId = t.collisionId(); /// Cache last collision ID
430+
const auto& collision = t.collision_as<EvTimeCollisionsMC>();
431+
if (!collision.has_mcCollision()) {
432+
continue;
433+
}
434+
const auto& collisionMC = collision.mcCollision_as<aod::McCollisions>();
435+
histos.fill(HIST("MC/t"), collisionMC.t());
436+
}
437+
}
438+
PROCESS_SWITCH(tofPidCollisionTimeQa, processMC, "Process MC", true);
405439
};
406440

407-
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
408-
{
409-
return WorkflowSpec{adaptAnalysisTask<tofPidCollisionTimeQa>(cfgc)};
410-
}
441+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{adaptAnalysisTask<tofPidCollisionTimeQa>(cfgc)}; }

0 commit comments

Comments
 (0)