@@ -254,12 +254,18 @@ namespace pidtofsignal
254254DECLARE_SOA_COLUMN (TOFSignal, tofSignal, float ); // ! TOF signal from track time
255255DECLARE_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
260265DECLARE_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
264270namespace 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
412438namespace pidtof_tiny
413439{
0 commit comments