11#ifndef O2_FRAMEWORK_ANALYSISDATAMODEL_H_
12#define O2_FRAMEWORK_ANALYSISDATAMODEL_H_
44 bc::RunNumber, bc::GlobalBC,
48 bc::RunNumber, bc::GlobalBC,
49 bc::TriggerMask, bc::InputMask);
54using BC = BCs::iterator;
62 timestamp::Timestamp);
94 collision::PosX, collision::PosY, collision::PosZ,
95 collision::CovXX, collision::CovXY, collision::CovXZ, collision::CovYY, collision::CovYZ, collision::CovZZ,
96 collision::Flags, collision::Chi2, collision::NumContrib,
97 collision::CollisionTime, collision::CollisionTimeRes);
101 collision::PosX, collision::PosY, collision::PosZ,
102 collision::CovXX, collision::CovXY, collision::CovYY, collision::CovXZ, collision::CovYZ, collision::CovZZ,
103 collision::Flags, collision::Chi2, collision::NumContrib,
104 collision::CollisionTime, collision::CollisionTimeRes);
129 nasin(aod::track::snp) + aod::track::alpha)));
137 [](
float signed1Pt) ->
short {
return (signed1Pt > 0) ? 1 : -1; });
139 [](
float signed1Pt,
float snp,
float alpha) ->
float {
140 auto pt = 1.f / std::abs(signed1Pt);
143 auto r = std::sqrt((1.f - snp) * (1.f + snp));
144 return pt * (
r * cs - snp * sn);
147 [](
float signed1Pt,
float snp,
float alpha) ->
float {
148 auto pt = 1.f / std::abs(signed1Pt);
151 auto r = std::sqrt((1.f - snp) * (1.f + snp));
152 return pt * (snp * cs +
r * sn);
155 [](
float signed1Pt,
float tgl) ->
float {
156 auto pt = 1.f / std::abs(signed1Pt);
160 [](
float signed1Pt,
float snp,
float alpha,
float tgl) -> std::array<float, 3> {
161 const auto pt = 1.f / std::abs(signed1Pt);
163 const float cs = cosf(
alpha), sn = sinf(
alpha);
164 const auto r = std::sqrt((1.f - snp) * (1.f + snp));
165 const auto px = pt * (
r * cs - snp * sn);
166 const auto py = pt * (snp * cs +
r * sn);
167 const auto pz = pt * tgl;
168 return std::array<float, 3>{px, py, pz};
173 [](
float signed1Pt,
float tgl,
float mass) ->
float {
174 const auto pt = 1.f / std::abs(signed1Pt);
176 return std::sqrt(p * p + mass * mass);
179 [](
float signed1Pt,
float tgl,
float mass) ->
float {
180 const auto pt = 1.f / std::abs(signed1Pt);
181 const auto pz = pt * tgl;
183 const auto energy = std::sqrt(p * p + mass * mass);
184 return 0.5f * std::log((energy + pz) / (energy - pz));
205 aod::track::sigmaY* aod::track::sigmaY);
207 (aod::track::rhoZY / 128.f) * (aod::track::sigmaZ * aod::track::sigmaY));
209 aod::track::sigmaZ* aod::track::sigmaZ);
211 (aod::track::rhoSnpY / 128.f) * (aod::track::sigmaSnp * aod::track::sigmaY));
213 (aod::track::rhoSnpZ / 128.f) * (aod::track::sigmaSnp * aod::track::sigmaZ));
215 aod::track::sigmaSnp* aod::track::sigmaSnp);
217 (aod::track::rhoTglY / 128.f) * (aod::track::sigmaTgl * aod::track::sigmaY));
219 (aod::track::rhoTglZ / 128.f) * (aod::track::sigmaTgl * aod::track::sigmaZ));
221 (aod::track::rhoTglSnp / 128.f) * (aod::track::sigmaTgl * aod::track::sigmaSnp));
223 aod::track::sigmaTgl* aod::track::sigmaTgl);
225 (aod::track::rho1PtY / 128.f) * (aod::track::sigma1Pt * aod::track::sigmaY));
227 (aod::track::rho1PtZ / 128.f) * (aod::track::sigma1Pt * aod::track::sigmaZ));
229 (aod::track::rho1PtSnp / 128.f) * (aod::track::sigma1Pt * aod::track::sigmaSnp));
231 (aod::track::rho1PtTgl / 128.f) * (aod::track::sigma1Pt * aod::track::sigmaTgl));
233 aod::track::sigma1Pt* aod::track::sigma1Pt);
270 [](
float length,
float tofExpMom) ->
float {
276 [](
float length,
float tofExpMom) ->
float {
282 [](
float length,
float tofExpMom) ->
float {
288 [](
float length,
float tofExpMom) ->
float {
294 [](
float length,
float tofExpMom) ->
float {
300 [](
float length,
float tofExpMom) ->
float {
306 [](
float length,
float tofExpMom) ->
float {
312 [](
float length,
float tofExpMom) ->
float {
318 [](
float length,
float tofExpMom) ->
float {
331 [](uint32_t itsClusterSizes) ->
uint8_t {
334 if ((itsClusterSizes >> (
layer * 4)) & 0xf) {
335 clmap |= (1 <<
layer);
341 [](uint32_t itsClusterSizes) ->
uint8_t {
344 if ((itsClusterSizes >> (
layer * 4)) & 0xf)
350 [](uint32_t itsClusterSizes) ->
uint8_t {
351 uint8_t itsNclsInnerBarrel = 0;
353 if ((itsClusterSizes >> (
layer * 4)) & 0xf)
354 itsNclsInnerBarrel++;
356 return itsNclsInnerBarrel;
363 return (itsClusterSizes >> (
layer * 4)) & 0xf;
367 [](
uint8_t detectorMap,
float itsChi2Ncl) ->
bool {
375 [](
float timeErr, uint32_t trackType) ->
float {
385 [](
float timeErr, uint32_t trackType) ->
float {
390 p.encoding.timeErr = timeErr;
391 return p.getDeltaTBwd();
408 [](uint32_t
flags) -> uint32_t {
return flags >> 28; });
410 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) -> int16_t {
return (int16_t)tpcNClsFindable - tpcNClsFindableMinusFound; });
412 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusPID) -> int16_t {
return (int16_t)tpcNClsFindable - tpcNClsFindableMinusPID; });
414 [](
uint8_t tpcNClsFindable, int8_t TPCNClsFindableMinusCrossedRows) -> int16_t {
return (int16_t)tpcNClsFindable - TPCNClsFindableMinusCrossedRows; });
427 uint8_t itsNclsInnerBarrel = 0;
431 itsNclsInnerBarrel++;
433 return itsNclsInnerBarrel;
440 if (itsSharedClusterMap & (
bit <<
layer))
446 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) ->
float {
447 int16_t tpcNClsFound = (int16_t)tpcNClsFindable - tpcNClsFindableMinusFound;
448 return (
float)tpcNClsFound / (float)tpcNClsFindable;
452 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusCrossedRows) ->
float {
453 int16_t tpcNClsCrossedRows = (int16_t)tpcNClsFindable - tpcNClsFindableMinusCrossedRows;
454 return (
float)tpcNClsCrossedRows / (float)tpcNClsFindable;
458 [](
uint8_t tpcNClsShared,
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) ->
float {
459 int16_t tpcNClsFound = (int16_t)tpcNClsFindable - tpcNClsFindableMinusFound;
460 return (
float)tpcNClsShared / (float)tpcNClsFound;
470 [](
uint8_t trdPattern) -> std::size_t {
return std::bitset<6>(trdPattern).count(); });
475 track::X, track::Alpha,
476 track::Y, track::Z, track::Snp, track::Tgl,
477 track::Signed1Pt, track::IsWithinBeamPipe<track::X>,
478 track::Px<track::Signed1Pt, track::Snp, track::Alpha>,
479 track::Py<track::Signed1Pt, track::Snp, track::Alpha>,
480 track::Pz<track::Signed1Pt, track::Tgl>,
481 track::PVector<track::Signed1Pt, track::Snp, track::Alpha, track::Tgl>,
482 track::Energy<track::Signed1Pt, track::Tgl>,
483 track::Rapidity<track::Signed1Pt, track::Tgl>,
484 track::Sign<track::Signed1Pt>,
495 track::X, track::Alpha,
496 track::Y, track::Z, track::Snp, track::Tgl,
497 track::Signed1Pt, track::IsWithinBeamPipe<track::X>,
498 track::Px<track::Signed1Pt, track::Snp, track::Alpha>,
499 track::Py<track::Signed1Pt, track::Snp, track::Alpha>,
500 track::Pz<track::Signed1Pt, track::Tgl>,
501 track::PVector<track::Signed1Pt, track::Snp, track::Alpha, track::Tgl>,
502 track::Energy<track::Signed1Pt, track::Tgl>,
503 track::Rapidity<track::Signed1Pt, track::Tgl>,
504 track::Sign<track::Signed1Pt>,
514 track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt,
515 track::RhoZY, track::RhoSnpY, track::RhoSnpZ, track::RhoTglY, track::RhoTglZ,
516 track::RhoTglSnp, track::Rho1PtY, track::Rho1PtZ, track::Rho1PtSnp, track::Rho1PtTgl,
o2::soa::Marker<1>);
533 aod::track::C1Pt21Pt2);
536 track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt,
537 track::RhoZY, track::RhoSnpY, track::RhoSnpZ, track::RhoTglY, track::RhoTglZ,
538 track::RhoTglSnp, track::Rho1PtY, track::Rho1PtZ, track::Rho1PtSnp, track::Rho1PtTgl,
o2::soa::Marker<2>);
555 aod::track::C1Pt21Pt2);
558 track::TPCInnerParam, track::Flags, track::ITSClusterMap,
559 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows,
560 track::TPCNClsShared, track::TRDPattern, track::ITSChi2NCl,
561 track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
562 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
563 track::PIDForTracking<track::Flags>,
564 track::IsPVContributor<track::Flags>,
565 track::HasITS<track::DetectorMap>, track::HasTPC<track::DetectorMap>,
566 track::HasTRD<track::DetectorMap>, track::HasTOF<track::DetectorMap>,
567 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
568 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
569 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
570 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
571 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
572 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
573 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
574 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
575 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
576 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
577 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
578 track::ITSNCls<track::ITSClusterMap>, track::ITSNClsInnerBarrel<track::ITSClusterMap>,
579 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
580 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
581 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
582 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
585 track::TPCInnerParam, track::Flags, track::ITSClusterSizes,
586 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows,
587 track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd<track::TrackTimeRes, track::Flags>, track::v001::extensions::TPCDeltaTBwd<track::TrackTimeRes, track::Flags>,
588 track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
589 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
590 track::PIDForTracking<track::Flags>,
591 track::IsPVContributor<track::Flags>,
592 track::HasITS<track::v001::DetectorMap>, track::HasTPC<track::v001::DetectorMap>,
593 track::HasTRD<track::v001::DetectorMap>, track::HasTOF<track::v001::DetectorMap>,
594 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
595 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
596 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
597 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
598 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
599 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
600 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
601 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
602 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
603 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
604 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
605 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
606 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
607 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
608 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
609 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
610 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
611 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
614 track::TPCInnerParam, track::Flags, track::ITSClusterSizes,
615 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusPID, track::TPCNClsFindableMinusCrossedRows,
616 track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd<track::TrackTimeRes, track::Flags>, track::v001::extensions::TPCDeltaTBwd<track::TrackTimeRes, track::Flags>,
617 track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
618 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
619 track::PIDForTracking<track::Flags>,
620 track::IsPVContributor<track::Flags>,
621 track::HasITS<track::v001::DetectorMap>, track::HasTPC<track::v001::DetectorMap>,
622 track::HasTRD<track::v001::DetectorMap>, track::HasTOF<track::v001::DetectorMap>,
623 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
624 track::TPCNClsPID<track::TPCNClsFindable, track::TPCNClsFindableMinusPID>,
625 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
626 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
627 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
628 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
629 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
630 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
631 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
632 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
633 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
634 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
635 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
636 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
637 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
638 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
639 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
640 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
641 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
646 track::v001::DetectorMap);
648 track::v001::DetectorMap);
653 track::ITSSignal, track::ITSSharedClusterMap,
654 track::ITSNSharedCls<track::ITSSharedClusterMap>);
710 [](int8_t cY, int8_t cZ, int8_t cSnp, int8_t cTgl, int8_t cQ2Pt, int8_t gY, int8_t gZ, int8_t gSnp, int8_t gTgl, int8_t gQ2Pt) ->
bool {
711 constexpr int8_t
m = std::numeric_limits<int8_t>::min();
712 return (cY ==
m && cZ ==
m && cSnp ==
m && cTgl ==
m && cQ2Pt ==
m && gY ==
m && gZ ==
m && gSnp ==
m && gTgl ==
m && gQ2Pt ==
m);
717 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
718 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
719 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R);
723 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
724 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
725 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
726 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
727 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
728 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
729 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
732 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
733 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
734 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
735 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
736 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
737 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
738 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
739 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
742 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCdEdxNorm, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
743 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
744 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
745 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
746 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
747 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
748 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
749 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
780 [](
float signed1Pt) ->
short {
return (signed1Pt > 0) ? 1 : -1; });
782 [](uint64_t mftClusterSizesAndTrackFlags) ->
bool {
return mftClusterSizesAndTrackFlags & (0x1ULL << 60); });
790 [](
float pt,
float phi) ->
float {
791 return pt * std::cos(phi);
794 [](
float pt,
float phi) ->
float {
795 return pt * std::sin(phi);
798 [](
float pt,
float tgl) ->
float {
802 [](uint32_t midBoards) ->
int {
803 return static_cast<int>(midBoards & 0xFF);
806 [](uint32_t midBoards) ->
int {
807 return static_cast<int>((midBoards >> 8) & 0xFF);
810 [](uint32_t midBoards) ->
int {
811 return static_cast<int>((midBoards >> 16) & 0xFF);
814 [](uint32_t midBoards) ->
int {
815 return static_cast<int>((midBoards >> 24) & 0xFF);
821 [](uint64_t mftClusterSizesAndTrackFlags) -> int8_t {
824 if ((mftClusterSizesAndTrackFlags >> (
layer * 6)) & 0x3F) {
850 aod::fwdtrack::sigmaX* aod::fwdtrack::sigmaX);
852 (aod::fwdtrack::rhoXY / 128.f) * (aod::fwdtrack::sigmaX * aod::fwdtrack::sigmaY));
854 aod::fwdtrack::sigmaY* aod::fwdtrack::sigmaY);
856 (aod::fwdtrack::rhoPhiX / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaX));
858 (aod::fwdtrack::rhoPhiY / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaY));
860 aod::fwdtrack::sigmaPhi* aod::fwdtrack::sigmaPhi);
862 (aod::fwdtrack::rhoTglX / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaX));
864 (aod::fwdtrack::rhoTglY / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaY));
866 (aod::fwdtrack::rhoTglPhi / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaPhi));
868 aod::fwdtrack::sigmaTgl* aod::fwdtrack::sigmaTgl);
870 (aod::fwdtrack::rho1PtY / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaY));
872 (aod::fwdtrack::rho1PtX / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaX));
874 (aod::fwdtrack::rho1PtPhi / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaPhi));
876 (aod::fwdtrack::rho1PtTgl / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaTgl));
878 aod::fwdtrack::sigma1Pt* aod::fwdtrack::sigma1Pt);
884 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
885 fwdtrack::Signed1Pt, fwdtrack::NClusters,
886 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
887 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
888 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
889 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
890 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
894 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
895 fwdtrack::Signed1Pt, fwdtrack::v001::NClusters<fwdtrack::MFTClusterSizesAndTrackFlags>, fwdtrack::MFTClusterSizesAndTrackFlags, fwdtrack::IsCA<fwdtrack::MFTClusterSizesAndTrackFlags>,
896 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
897 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
898 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
899 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
900 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
925 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
926 fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd,
927 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
928 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
929 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
930 fwdtrack::Sign<fwdtrack::Signed1Pt>,
931 fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT,
932 fwdtrack::MatchScoreMCHMFT, fwdtrack::MFTTrackId, fwdtrack::MCHTrackId,
933 fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards,
934 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
942 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
943 fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
944 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
950 aod::fwdtrack::CPhiX,
951 aod::fwdtrack::CPhiY,
952 aod::fwdtrack::CPhiPhi,
953 aod::fwdtrack::CTglX,
954 aod::fwdtrack::CTglY,
955 aod::fwdtrack::CTglPhi,
956 aod::fwdtrack::CTglTgl,
957 aod::fwdtrack::C1PtX,
958 aod::fwdtrack::C1PtY,
959 aod::fwdtrack::C1PtPhi,
960 aod::fwdtrack::C1PtTgl,
961 aod::fwdtrack::C1Pt21Pt2);
968 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
969 fwdtrack::RhoXY, fwdtrack::RhoPhiX, fwdtrack::RhoPhiY, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
970 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
976 aod::fwdtrack::CPhiX,
977 aod::fwdtrack::CPhiY,
978 aod::fwdtrack::CPhiPhi,
979 aod::fwdtrack::CTglX,
980 aod::fwdtrack::CTglY,
981 aod::fwdtrack::CTglPhi,
982 aod::fwdtrack::CTglTgl,
983 aod::fwdtrack::C1PtX,
984 aod::fwdtrack::C1PtY,
985 aod::fwdtrack::C1PtPhi,
986 aod::fwdtrack::C1PtTgl,
987 aod::fwdtrack::C1Pt21Pt2);
989using MFTTrack = MFTTracks::iterator;
995extern template struct JoinFull<
o2::aod::Hash<
"JOIN/0"_h>, aod::FwdTracks, aod::FwdTracksCov>;
1045 fwdtrkcl::FwdTrackId,
1050 fwdtrkcl::DEId<fwdtrkcl::ClInfo>,
1051 fwdtrkcl::IsGoodX<fwdtrkcl::ClInfo>,
1052 fwdtrkcl::IsGoodY<fwdtrkcl::ClInfo>);
1077 hmpid::HMPIDDistance,
1078 hmpid::HMPIDNPhotons,
1089 hmpid::HMPIDNPhotons,
1091 hmpid::HMPIDClusSize,
1093 hmpid::HMPIDPhotsCharge);
1110 calo::Time, calo::CellType, calo::CaloType);
1113namespace calotrigger
1124 calotrigger::LnAmplitude, calotrigger::TriggerBits, calotrigger::CaloType);
1135 return status & 0b00011111;
1138 return 2 + ((status & 0b01100000) >> 5);
1141 return (status & 0b01100000) >> 7;
1146 o2::soa::Index<>, cpvcluster::BCId, cpvcluster::PosX, cpvcluster::PosZ, cpvcluster::Amplitude,
1147 cpvcluster::ClusterStatus, cpvcluster::PadMult<cpvcluster::ClusterStatus>,
1148 cpvcluster::ModuleNumber<cpvcluster::ClusterStatus>, cpvcluster::IsUnfolded<cpvcluster::ClusterStatus>);
1178 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1180 auto thisenergy = -std::numeric_limits<float>::infinity();
1181 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1190 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1191 auto thisenergy = -std::numeric_limits<float>::infinity();
1192 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1201 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1202 auto thisenergy = -std::numeric_limits<float>::infinity();
1203 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1212 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1213 auto thisenergy = -std::numeric_limits<float>::infinity();
1214 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1223 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1224 auto thisenergy = -std::numeric_limits<float>::infinity();
1225 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1234 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1235 auto thisenergy = -std::numeric_limits<float>::infinity();
1236 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1245 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1247 -std::numeric_limits<float>::infinity(),
1248 -std::numeric_limits<float>::infinity(),
1249 -std::numeric_limits<float>::infinity(),
1250 -std::numeric_limits<float>::infinity()};
1264 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1266 -std::numeric_limits<float>::infinity(),
1267 -std::numeric_limits<float>::infinity(),
1268 -std::numeric_limits<float>::infinity(),
1269 -std::numeric_limits<float>::infinity()};
1270 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1283 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1285 -std::numeric_limits<float>::infinity(),
1286 -std::numeric_limits<float>::infinity(),
1287 -std::numeric_limits<float>::infinity(),
1288 -std::numeric_limits<float>::infinity()};
1289 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1302 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1304 -std::numeric_limits<float>::infinity(),
1305 -std::numeric_limits<float>::infinity(),
1306 -std::numeric_limits<float>::infinity(),
1307 -std::numeric_limits<float>::infinity()};
1308 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1321 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1322 auto thistime = -std::numeric_limits<float>::infinity();
1323 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1325 thistime =
time[ie];
1332 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1333 auto thistime = -std::numeric_limits<float>::infinity();
1334 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1336 thistime =
time[ie];
1343 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1344 auto thistime = -std::numeric_limits<float>::infinity();
1345 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1347 thistime =
time[ie];
1354 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1355 auto thistime = -std::numeric_limits<float>::infinity();
1356 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1358 thistime =
time[ie];
1365 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1366 auto thistime = -std::numeric_limits<float>::infinity();
1367 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1369 thistime =
time[ie];
1376 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1377 auto thistime = -std::numeric_limits<float>::infinity();
1378 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1380 thistime =
time[ie];
1388 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1389 auto thisamplitude = -std::numeric_limits<float>::infinity();
1390 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1392 thisamplitude = amplitude[ie];
1396 return thisamplitude;
1399 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1400 auto thisamplitude = -std::numeric_limits<float>::infinity();
1401 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1403 thisamplitude = amplitude[ie];
1407 return thisamplitude;
1410 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1411 auto thisamplitude = -std::numeric_limits<float>::infinity();
1412 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1414 thisamplitude = amplitude[ie];
1418 return thisamplitude;
1421 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1422 auto thisamplitude = -std::numeric_limits<float>::infinity();
1423 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1425 thisamplitude = amplitude[ie];
1429 return thisamplitude;
1432 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1433 auto thisamplitude = -std::numeric_limits<float>::infinity();
1434 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1436 thisamplitude = amplitude[ie];
1440 return thisamplitude;
1443 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1444 auto thisamplitude = -std::numeric_limits<float>::infinity();
1445 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1447 thisamplitude = amplitude[ie];
1451 return thisamplitude;
1457 zdc::EnergyCommonZNA, zdc::EnergyCommonZNC, zdc::EnergyCommonZPA, zdc::EnergyCommonZPC,
1458 zdc::EnergySectorZNA, zdc::EnergySectorZNC, zdc::EnergySectorZPA, zdc::EnergySectorZPC,
1459 zdc::TimeZEM1, zdc::TimeZEM2, zdc::TimeZNA, zdc::TimeZNC, zdc::TimeZPA, zdc::TimeZPC);
1463 o2::soa::Index<>, zdc::BCId, zdc::Energy, zdc::ChannelE, zdc::Amplitude, zdc::Time, zdc::ChannelT,
1464 zdc::DyEnergyZEM1<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyZEM2<zdc::ChannelE, zdc::Energy>,
1465 zdc::DyEnergyCommonZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZNC<zdc::ChannelE, zdc::Energy>,
1466 zdc::DyEnergyCommonZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZPC<zdc::ChannelE, zdc::Energy>,
1467 zdc::DyEnergySectorZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZNC<zdc::ChannelE, zdc::Energy>,
1468 zdc::DyEnergySectorZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZPC<zdc::ChannelE, zdc::Energy>,
1469 zdc::DyTimeZEM1<zdc::ChannelT, zdc::Time>, zdc::DyTimeZEM2<zdc::ChannelT, zdc::Time>,
1470 zdc::DyTimeZNA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZNC<zdc::ChannelT, zdc::Time>,
1471 zdc::DyTimeZPA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZPC<zdc::ChannelT, zdc::Time>,
1472 zdc::DyAmplitudeZEM1<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZEM2<zdc::ChannelT, zdc::Amplitude>,
1473 zdc::DyAmplitudeZNA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZNC<zdc::ChannelT, zdc::Amplitude>,
1474 zdc::DyAmplitudeZPA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZPC<zdc::ChannelT, zdc::Amplitude>);
1489 o2::soa::Index<>, fv0a::BCId, fv0a::Amplitude, fv0a::Channel, fv0a::Time, fv0a::TriggerMask);
1530 [](
float timeA) ->
bool {
1531 return timeA < 30.f;
1534 [](
float timeC) ->
bool {
1535 return timeC < 30.f;
1542 [](gsl::span<const float> vecAmpA) ->
float {
1543 return std::accumulate(vecAmpA.begin(), vecAmpA.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1546 [](gsl::span<const float> vecAmpC) ->
float {
1547 return std::accumulate(vecAmpC.begin(), vecAmpC.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1554 ft0::AmplitudeA, ft0::ChannelA, ft0::AmplitudeC, ft0::ChannelC, ft0::TimeA, ft0::TimeC,
1555 ft0::TriggerMask, ft0::PosZ<ft0::TimeA, ft0::TimeC>, ft0::CollTime<ft0::TimeA, ft0::TimeC>,
1556 ft0::IsValidTimeA<ft0::TimeA>, ft0::IsValidTimeC<ft0::TimeC>, ft0::IsValidTime<ft0::TimeA, ft0::TimeC>,
1557 ft0::SumAmpA<ft0::AmplitudeA>, ft0::SumAmpC<ft0::AmplitudeC>);
1562 ft0::TimeFT0A, ft0::TimeFT0C);
1584 fdd::AmplitudeA, fdd::AmplitudeC,
1585 fdd::TimeA, fdd::TimeC,
1591 fdd::ChargeA, fdd::ChargeC,
1592 fdd::TimeA, fdd::TimeC,
1600 fdd::TimeFDDA, fdd::TimeFDDC);
1611 [](uint8_t V0Type) ->
bool {
return V0Type == 1; });
1613 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 1); });
1615 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 2); });
1621 v0::PosTrackId, v0::NegTrackId);
1624 v0::PosTrackId, v0::NegTrackId);
1627 v0::PosTrackId, v0::NegTrackId,
1629 v0::IsStandardV0<v0::V0Type>,
1630 v0::IsPhotonV0<v0::V0Type>,
1631 v0::IsCollinearV0<v0::V0Type>);
1646 o2::soa::Index<>, cascade::CollisionId, cascade::V0Id, cascade::BachelorId);
1660 o2::soa::Index<>, decay3body::CollisionId, decay3body::Track0Id, decay3body::Track1Id, decay3body::Track2Id);
1665namespace strangenesstracking
1689 strangenesstracking::TrackId,
1690 strangenesstracking::ITSTrackId,
1691 strangenesstracking::CascadeId,
1692 strangenesstracking::DecayX,
1693 strangenesstracking::DecayY,
1694 strangenesstracking::DecayZ,
1695 strangenesstracking::XiMass,
1696 strangenesstracking::OmegaMass,
1697 strangenesstracking::MatchingChi2,
1698 strangenesstracking::TopologyChi2,
1699 strangenesstracking::ITSclsSize);
1703 strangenesstracking::TrackId,
1704 strangenesstracking::ITSTrackId,
1705 strangenesstracking::V0Id,
1706 strangenesstracking::DecayX,
1707 strangenesstracking::DecayY,
1708 strangenesstracking::DecayZ,
1709 strangenesstracking::H3Lmass,
1710 strangenesstracking::H4Lmass,
1711 strangenesstracking::MatchingChi2,
1712 strangenesstracking::TopologyChi2,
1713 strangenesstracking::ITSclsSize);
1717 strangenesstracking::TrackId,
1718 strangenesstracking::ITSTrackId,
1719 strangenesstracking::Decay3BodyId,
1720 strangenesstracking::DecayX,
1721 strangenesstracking::DecayY,
1722 strangenesstracking::DecayZ,
1723 strangenesstracking::H3Lmass,
1724 strangenesstracking::He4Lmass,
1725 strangenesstracking::MatchingChi2,
1726 strangenesstracking::TopologyChi2,
1727 strangenesstracking::ITSclsSize);
1802 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1803 run2::SPDClustersL0, run2::SPDClustersL1,
1804 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1805 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1806 run2::V0TriggerChargeA, run2::V0TriggerChargeC);
1810 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1811 run2::SPDClustersL0, run2::SPDClustersL1,
1812 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1813 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1814 run2::V0TriggerChargeA, run2::V0TriggerChargeC,
1815 run2::NTPCClusters, run2::NSDDSSDClusters);
1822 run2::oftv0::CollisionId, run2::oftv0::PosTrackId, run2::oftv0::NegTrackId,
1823 run2::oftv0::Px, run2::oftv0::Py, run2::oftv0::Pz, run2::oftv0::E,
1824 run2::oftv0::Qt, run2::oftv0::Alpha,
1825 run2::oftv0::X, run2::oftv0::Y, run2::oftv0::Z,
1826 run2::oftv0::Chi2NDF, run2::oftv0::PsiPair,
1827 run2::oftv0::DCAr, run2::oftv0::DCAz,
1828 run2::oftv0::MassInMeV);
1834 run2::pmd::Z, run2::pmd::CluADC, run2::pmd::CluPID, run2::pmd::Det,
1835 run2::pmd::Ncell, run2::pmd::Smn, run2::pmd::TrackNo, run2::pmd::TrackPid,
1836 run2::pmd::SigX, run2::pmd::SigY, run2::pmd::ClMatching);
1841namespace mccollision
1863 mccollision::GeneratorsID,
1864 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1865 mccollision::T, mccollision::Weight,
1866 mccollision::ImpactParameter,
1867 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1868 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1869 mccollision::GetSourceId<mccollision::GeneratorsID>);
1872 mccollision::GeneratorsID,
1873 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1874 mccollision::T, mccollision::Weight,
1875 mccollision::ImpactParameter,
1876 mccollision::EventPlaneAngle,
1877 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1878 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1879 mccollision::GetSourceId<mccollision::GeneratorsID>);
1918 [](
float px,
float py,
float pz) -> std::array<float, 3> {
return std::array<float, 3>{px, py, pz}; });
1923 ifnode((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1924 aod::mcparticle::py * aod::mcparticle::py +
1925 aod::mcparticle::pz * aod::mcparticle::pz) -
1926 aod::mcparticle::pz) <
static_cast<float>(1e-7),
1927 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1928 0.5f * nlog((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1929 aod::mcparticle::py * aod::mcparticle::py +
1930 aod::mcparticle::pz * aod::mcparticle::pz) +
1931 aod::mcparticle::pz) /
1932 (nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1933 aod::mcparticle::py * aod::mcparticle::py +
1934 aod::mcparticle::pz * aod::mcparticle::pz) -
1935 aod::mcparticle::pz))));
1937 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1938 aod::mcparticle::py * aod::mcparticle::py));
1940 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1941 aod::mcparticle::py * aod::mcparticle::py +
1942 aod::mcparticle::pz * aod::mcparticle::pz));
1944 ifnode((aod::mcparticle::e - aod::mcparticle::pz) <
static_cast<float>(1e-7),
1945 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1946 0.5f * nlog((aod::mcparticle::e + aod::mcparticle::pz) /
1947 (aod::mcparticle::e - aod::mcparticle::pz))));
1952 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1953 mcparticle::Mother0Id, mcparticle::Mother1Id,
1954 mcparticle::Daughter0Id, mcparticle::Daughter1Id, mcparticle::Weight,
1955 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1956 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1957 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1958 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1959 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1960 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1961 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1962 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1963 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
1967 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1968 mcparticle::MothersIds, mcparticle::DaughtersIdSlice, mcparticle::Weight,
1969 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1970 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1971 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1972 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1973 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1974 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1975 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1976 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1977 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
2017namespace mctracklabel
2024 mctracklabel::McParticleId, mctracklabel::McMask);
2027namespace mcmfttracklabel
2034 mcmfttracklabel::McParticleId, mcmfttracklabel::McMask);
2037namespace mcfwdtracklabel
2044 mcfwdtracklabel::McParticleId, mcfwdtracklabel::McMask);
2047namespace mccalolabel
2056 mccalolabel::McParticleId, mccalolabel::McMask);
2058 mccalolabel::McParticleIds, mccalolabel::AmplitudeA);
2062namespace mccollisionlabel
2069 mccollisionlabel::McCollisionId, mccollisionlabel::McMask);
2073namespace hepmcxsection
2087 o2::soa::Index<>, hepmcxsection::McCollisionId, hepmcxsection::GeneratorsID,
2088 hepmcxsection::Accepted, hepmcxsection::Attempted, hepmcxsection::XsectGen,
2089 hepmcxsection::XsectErr, hepmcxsection::PtHard, hepmcxsection::NMPI, hepmcxsection::ProcessId);
2092namespace hepmcpdfinfo
2109 hepmcpdfinfo::Id1, hepmcpdfinfo::Id2,
2110 hepmcpdfinfo::PdfId1, hepmcpdfinfo::PdfId2,
2111 hepmcpdfinfo::X1, hepmcpdfinfo::X2,
2112 hepmcpdfinfo::ScalePdf, hepmcpdfinfo::Pdf1, hepmcpdfinfo::Pdf2);
2115namespace hepmcheavyion
2136 o2::soa::Index<>, hepmcheavyion::McCollisionId, hepmcheavyion::GeneratorsID,
2137 hepmcheavyion::NcollHard, hepmcheavyion::NpartProj, hepmcheavyion::NpartTarg,
2138 hepmcheavyion::Ncoll, hepmcheavyion::NNwoundedCollisions, hepmcheavyion::NwoundedNCollisions,
2139 hepmcheavyion::NwoundedNwoundedCollisions, hepmcheavyion::SpectatorNeutrons,
2140 hepmcheavyion::SpectatorProtons, hepmcheavyion::ImpactParameter, hepmcheavyion::EventPlaneAngle,
2141 hepmcheavyion::Eccentricity, hepmcheavyion::SigmaInelNN, hepmcheavyion::Centrality);
2159#define INDEX_LIST_RUN2 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId
2163#define INDEX_LIST_RUN3 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId
2169 indices::BCId, indices::CollisionId);
2171 indices::BCId, indices::CollisionId);
2174 indices::BCId, indices::CollisionIds);
2176 indices::BCId, indices::CollisionIds);
2179 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2181 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2184 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId);
#define DECLARE_SOA_ARRAY_INDEX_COLUMN(_Name_, _Getter_)
#define DECLARE_SOA_SELF_INDEX_COLUMN_FULL(_Name_, _Getter_, _Type_, _Label_)
#define DECLARE_SOA_SLICE_INDEX_COLUMN(_Name_, _Getter_)
#define DECLARE_SOA_DYNAMIC_COLUMN(_Name_, _Getter_,...)
#define DECLARE_SOA_TABLE(_Name_, _Origin_, _Desc_,...)
#define DECLARE_SOA_EXPRESSION_COLUMN(_Name_, _Getter_, _Type_, _Expression_)
#define DECLARE_SOA_COLUMN(_Name_, _Getter_, _Type_)
#define DECLARE_SOA_INDEX_COLUMN_FULL(_Name_, _Getter_, _Type_, _Table_, _Suffix_)
#define DECLARE_EQUIVALENT_FOR_INDEX(_Base_, _Equiv_)
#define DECLARE_SOA_SELF_SLICE_INDEX_COLUMN(_Name_, _Getter_)
#define DECLARE_SOA_TABLE_FULL(_Name_, _Label_, _Origin_, _Desc_,...)
#define DECLARE_EQUIVALENT_FOR_INDEX_NG(_Base_, _Equiv_)
#define DECLARE_SOA_TABLE_VERSIONED(_Name_, _Origin_, _Desc_, _Version_,...)
#define DECLARE_SOA_INDEX_COLUMN(_Name_, _Getter_)
#define DECLARE_SOA_TABLE_FULL_VERSIONED(_Name_, _Label_, _Origin_, _Desc_, _Version_,...)
#define DECLARE_SOA_EXTENDED_TABLE(_Name_, _Table_, _Description_, _Version_,...)
#define DECLARE_SOA_INDEX_TABLE_EXCLUSIVE(_Name_, _Key_, _Description_,...)
#define DECLARE_SOA_INDEX_TABLE(_Name_, _Key_, _Description_,...)
#define DECLARE_SOA_SELF_ARRAY_INDEX_COLUMN(_Name_, _Getter_)
TOF PID utilities to work with the information stored in the AO2D.
Some ALICE geometry constants of common interest.
Header to collect physics constants.
Some ZDC constants shared between O2 and O2Physics.
float sum(float s, o2::dcs::DataPointValue v)
GLfloat GLfloat GLfloat alpha
GLuint GLfloat GLfloat GLfloat x1
GLuint GLuint GLfloat weight
GLuint GLsizei GLsizei * length
GLsizei GLenum const void * indices
GLenum GLuint GLint GLint layer
GLdouble GLdouble GLdouble z
o2::constants::math::PI natan2(-1.0f *aod::mcparticle::py, -1.0f *aod::mcparticle::px))
uint8_t itsSharedClusterMap uint8_t
ifnode(nasin(aod::track::snp)+aod::track::alpha< 0.0f, nasin(aod::track::snp)+aod::track::alpha+o2::constants::math::TwoPI, ifnode(nasin(aod::track::snp)+aod::track::alpha >=o2::constants::math::TwoPI, nasin(aod::track::snp)+aod::track::alpha - o2::constants::math::TwoPI, nasin(aod::track::snp)+aod::track::alpha)))
(sign of charge)/Pt in c/GeV. Use pt() and sign() instead
gsl::span< const uint8_t > channelE
McParticles::iterator McParticle
StoredMcParticles_001 StoredMcParticles
TrackedV0s::iterator TrackedV0
FT0sExtra::iterator FT0Extra
McParticles_001 McParticles
FullTracks::iterator FullTrack
FDDsExtra::iterator FDDExtra
HepMCHeavyIons::iterator HepMCHeavyIon
Tracked3Bodys Tracked3Bodys
TracksExtra::iterator TrackExtra
TrackedCascades TrackedCascades
McCollisions_001 McCollisions
AmbiguousMFTTracks::iterator AmbiguousMFTTrack
Zdcs::iterator Zdc
new version
TracksQA_003 TracksQAVersion
FDDs::iterator FDD
this defines the current default version
AmbiguousFwdTracks::iterator AmbiguousFwdTrack
Run2OTFV0s::iterator Run2OTFV0
FV0AsExtra::iterator FV0AExtra
StoredTracksExtra_002 StoredTracksExtra
HepMCXSections::iterator HepMCXSection
McFwdTrackLabels::iterator McFwdTrackLabel
McCaloLabels::iterator McCaloLabel
Run2TrackExtras::iterator Run2TrackExtra
McCollisions::iterator McCollision
FwdTracksCov::iterator FwdTrackCovFwd
Collisions_001 Collisions
soa::Join< Collisions, Run2MatchedSparse >::iterator CollisionMatchedRun2Sparse
AmbiguousTracks::iterator AmbiguousTrack
TracksQAVersion::iterator TracksQA
FwdTrkCls::iterator FwdTrkCl
Run2TrackExtras_001 Run2TrackExtras
CPVClusters::iterator CPVCluster
McCollisionLabels::iterator McCollisionLabel
FwdTracks::iterator FwdTrack
TracksIU::iterator TrackIU
Cascades::iterator Cascade
this defines the current default version
McMFTTrackLabels::iterator McMFTTrackLabel
TracksCov::iterator TrackCov
HepMCPdfInfos::iterator HepMCPdfInfo
TracksExtra_002 TracksExtra
StoredMFTTracks_001 StoredMFTTracks
Decay3Bodys::iterator Decay3Body
this defines the current default version
FullFwdTracks::iterator FullFwdTrack
TracksCovIU::iterator TrackCovIU
Run2BCInfos::iterator Run2BCInfo
McCaloLabels_000 McCaloLabels
soa::Join< Collisions, Run3MatchedSparse >::iterator CollisionMatchedRun3Sparse
CaloTriggers::iterator CaloTrigger
Tracked3Bodys::iterator Tracked3body
McTrackLabels::iterator McTrackLabel
MFTTracksCov::iterator MFTTrackCovFwd
Run2BCInfos_001 Run2BCInfos
TrackedCascades::iterator TrackedCascade
Collisions::iterator Collision
MFTTracks::iterator MFTTrack
constexpr float XBeamPipeOuterRef
inner radius of the beam pipe
constexpr float PIQuarter
constexpr double MassHelium3
constexpr double MassTriton
constexpr double MassMuon
constexpr double MassKaonCharged
constexpr float LightSpeedCm2NS
constexpr double MassDeuteron
constexpr double MassAlpha
constexpr double MassElectron
constexpr double MassProton
constexpr double MassPionCharged
float MassToExpTime(float tofExpMom, float length, float massSquared)
Compute the expected time of flight for a given momentum, length and massSquared.
int getSourceId(short encoded)
int getGeneratorId(short encoded)
int getSubGeneratorId(short encoded)
int getGenStatusCode(MCGenStatusEncoding enc)
int getHepMCStatusCode(MCGenStatusEncoding enc)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
float getDeltaTFwd() const
static constexpr float invalidValue
union o2::aod::track::extensions::TPCTimeErrEncoding::TPCDeltaTime encoding
table_t::template iterator_template< DefaultIndexPolicy, self_t, Ts... > iterator