Skip to content

Commit 8f4a8bf

Browse files
committed
[PID] add QA for TOF dynamic columns
1 parent 8b445f6 commit 8f4a8bf

File tree

3 files changed

+878
-24
lines changed

3 files changed

+878
-24
lines changed

Common/DataModel/PIDResponseTOF.h

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,18 @@ namespace pidtofsignal
254254
DECLARE_SOA_COLUMN(TOFSignal, tofSignal, float); //! TOF signal from track time
255255
DECLARE_SOA_DYNAMIC_COLUMN(EventCollisionTime, eventCollisionTime, //! Event collision time used for the track. Needs the TOF
256256
[](float signal, float tMinusTexp, float texp) -> float { return texp + tMinusTexp - signal; });
257+
DECLARE_SOA_DYNAMIC_COLUMN(TOFSignalInAnotherBC, tofSignalInAnotherBC, //! TOF signal but computed in another Bunch Crossing. Needs the original globalBC and the new globalBC to compute the delta time to apply to the signal.
258+
[](float signal, int64_t originalGlobalBC, int64_t newGlobalBC) -> float {
259+
const int64_t deltaBcPos = originalGlobalBC - newGlobalBC;
260+
return signal + o2::constants::lhc::LHCBunchSpacingNS * deltaBcPos * 1000.0f;
261+
});
257262

258263
} // namespace pidtofsignal
259264

260265
DECLARE_SOA_TABLE(TOFSignal, "AOD", "TOFSignal", //! Table of the TOF signal
261266
pidtofsignal::TOFSignal,
262-
pidtofsignal::EventCollisionTime<pidtofsignal::TOFSignal>);
267+
pidtofsignal::EventCollisionTime<pidtofsignal::TOFSignal>,
268+
pidtofsignal::TOFSignalInAnotherBC<pidtofsignal::TOFSignal>);
263269

264270
namespace pidtofevtime
265271
{
@@ -335,10 +341,10 @@ DECLARE_SOA_COLUMN(TOFNSigmaAl, tofNSigmaAl, float); //! Nsigma separation with
335341
//! Expected resolution with the TOF detector for electron (computed on the fly)
336342
#define PERSPECIES_TOF_SIGMA_COLUMN(name, id) \
337343
DECLARE_SOA_DYNAMIC_COLUMN(TOFExpSigma##name##Imp, tofExpSigmaDyn##name, \
338-
[](float tofSignal, \
339-
float tofExpMom, \
344+
[](float tofExpMom, \
340345
float momentum, \
341346
float eta, \
347+
float tofSignal, \
342348
float tofEvTimeErr) -> float { \
343349
return o2::pid::tof::TOFResponseImpl::expectedSigma<id>(tofSignal, \
344350
tofExpMom, \
@@ -360,11 +366,11 @@ PERSPECIES_TOF_SIGMA_COLUMN(Al, o2::track::PID::Alpha);
360366

361367
#define PERSPECIES_TOF_SEPARATION_COLUMN(name, id) \
362368
DECLARE_SOA_DYNAMIC_COLUMN(TOFNSigma##name##Imp, tofNSigmaDyn##name, \
363-
[](const float tofSignal, \
364-
const float tofExpMom, \
369+
[](const float tofExpMom, \
365370
const float length, \
366371
const float momentum, \
367372
const float eta, \
373+
const float tofSignal, \
368374
const float tofEvTime, \
369375
const float tofEvTimeErr) -> float { \
370376
return o2::pid::tof::TOFResponseImpl::nSigma<id>(tofSignal, \
@@ -389,25 +395,45 @@ PERSPECIES_TOF_SEPARATION_COLUMN(Al, o2::track::PID::Alpha);
389395

390396
} // namespace pidtof
391397

392-
using TOFExpSigmaDynEl = pidtof::TOFExpSigmaElImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
393-
using TOFExpSigmaDynMu = pidtof::TOFExpSigmaMuImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
394-
using TOFExpSigmaDynPi = pidtof::TOFExpSigmaPiImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
395-
using TOFExpSigmaDynKa = pidtof::TOFExpSigmaKaImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
396-
using TOFExpSigmaDynPr = pidtof::TOFExpSigmaPrImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
397-
using TOFExpSigmaDynDe = pidtof::TOFExpSigmaDeImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
398-
using TOFExpSigmaDynTr = pidtof::TOFExpSigmaTrImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
399-
using TOFExpSigmaDynHe = pidtof::TOFExpSigmaHeImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
400-
using TOFExpSigmaDynAl = pidtof::TOFExpSigmaAlImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::P, track::Eta, pidtofevtime::TOFEvTimeErr>;
401-
402-
using TOFNSigmaDynEl = pidtof::TOFNSigmaElImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
403-
using TOFNSigmaDynMu = pidtof::TOFNSigmaMuImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
404-
using TOFNSigmaDynPi = pidtof::TOFNSigmaPiImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
405-
using TOFNSigmaDynKa = pidtof::TOFNSigmaKaImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
406-
using TOFNSigmaDynPr = pidtof::TOFNSigmaPrImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
407-
using TOFNSigmaDynDe = pidtof::TOFNSigmaDeImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
408-
using TOFNSigmaDynTr = pidtof::TOFNSigmaTrImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
409-
using TOFNSigmaDynHe = pidtof::TOFNSigmaHeImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
410-
using TOFNSigmaDynAl = pidtof::TOFNSigmaAlImp<pidtofsignal::TOFSignal, track::TOFExpMom, track::Length, track::P, track::Eta, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
398+
using TOFExpSigmaDynEl = pidtof::TOFExpSigmaElImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
399+
using TOFExpSigmaDynMu = pidtof::TOFExpSigmaMuImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
400+
using TOFExpSigmaDynPi = pidtof::TOFExpSigmaPiImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
401+
using TOFExpSigmaDynKa = pidtof::TOFExpSigmaKaImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
402+
using TOFExpSigmaDynPr = pidtof::TOFExpSigmaPrImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
403+
using TOFExpSigmaDynDe = pidtof::TOFExpSigmaDeImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
404+
using TOFExpSigmaDynTr = pidtof::TOFExpSigmaTrImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
405+
using TOFExpSigmaDynHe = pidtof::TOFExpSigmaHeImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
406+
using TOFExpSigmaDynAl = pidtof::TOFExpSigmaAlImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
407+
408+
using TOFNSigmaDynEl = pidtof::TOFNSigmaElImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
409+
using TOFNSigmaDynMu = pidtof::TOFNSigmaMuImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
410+
using TOFNSigmaDynPi = pidtof::TOFNSigmaPiImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
411+
using TOFNSigmaDynKa = pidtof::TOFNSigmaKaImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
412+
using TOFNSigmaDynPr = pidtof::TOFNSigmaPrImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
413+
using TOFNSigmaDynDe = pidtof::TOFNSigmaDeImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
414+
using TOFNSigmaDynTr = pidtof::TOFNSigmaTrImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
415+
using TOFNSigmaDynHe = pidtof::TOFNSigmaHeImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
416+
using TOFNSigmaDynAl = pidtof::TOFNSigmaAlImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
417+
418+
using TOFExpSigmaDynEvTimeEl = pidtof::TOFExpSigmaElImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
419+
using TOFExpSigmaDynEvTimeMu = pidtof::TOFExpSigmaMuImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
420+
using TOFExpSigmaDynEvTimePi = pidtof::TOFExpSigmaPiImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
421+
using TOFExpSigmaDynEvTimeKa = pidtof::TOFExpSigmaKaImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
422+
using TOFExpSigmaDynEvTimePr = pidtof::TOFExpSigmaPrImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
423+
using TOFExpSigmaDynEvTimeDe = pidtof::TOFExpSigmaDeImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
424+
using TOFExpSigmaDynEvTimeTr = pidtof::TOFExpSigmaTrImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
425+
using TOFExpSigmaDynEvTimeHe = pidtof::TOFExpSigmaHeImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
426+
using TOFExpSigmaDynEvTimeAl = pidtof::TOFExpSigmaAlImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal>;
427+
428+
using TOFNSigmaDynEvTimeEl = pidtof::TOFNSigmaElImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
429+
using TOFNSigmaDynEvTimeMu = pidtof::TOFNSigmaMuImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
430+
using TOFNSigmaDynEvTimePi = pidtof::TOFNSigmaPiImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
431+
using TOFNSigmaDynEvTimeKa = pidtof::TOFNSigmaKaImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
432+
using TOFNSigmaDynEvTimePr = pidtof::TOFNSigmaPrImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
433+
using TOFNSigmaDynEvTimeDe = pidtof::TOFNSigmaDeImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
434+
using TOFNSigmaDynEvTimeTr = pidtof::TOFNSigmaTrImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
435+
using TOFNSigmaDynEvTimeHe = pidtof::TOFNSigmaHeImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
436+
using TOFNSigmaDynEvTimeAl = pidtof::TOFNSigmaAlImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal>;
411437

412438
namespace pidtof_tiny
413439
{

DPG/Tasks/AOTTrack/PID/TOF/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ o2physics_add_dpl_workflow(pid-tof-qa
1515
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
1616
COMPONENT_NAME Analysis)
1717

18+
o2physics_add_dpl_workflow(pid-tof-qa-dynamic
19+
SOURCES qaPIDTOFDynamic.cxx
20+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
21+
COMPONENT_NAME Analysis)
22+
1823
o2physics_add_dpl_workflow(pid-tof-qa-beta
1924
SOURCES qaPIDTOFBeta.cxx
2025
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore

0 commit comments

Comments
 (0)