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 {
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::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
625 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
626 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
627 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
628 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
629 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
630 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
631 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
632 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
633 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
634 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
635 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
636 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
637 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
638 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
639 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
640 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
645 track::v001::DetectorMap);
647 track::v001::DetectorMap);
652 track::ITSSignal, track::ITSSharedClusterMap,
653 track::ITSNSharedCls<track::ITSSharedClusterMap>);
709 [](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 {
710 constexpr int8_t
m = std::numeric_limits<int8_t>::min();
711 return (cY ==
m && cZ ==
m && cSnp ==
m && cTgl ==
m && cQ2Pt ==
m && gY ==
m && gZ ==
m && gSnp ==
m && gTgl ==
m && gQ2Pt ==
m);
716 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
717 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
718 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R);
722 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
723 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
724 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
725 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
726 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
727 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
728 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
731 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
732 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
733 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
734 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
735 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
736 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
737 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
738 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
741 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCdEdxNorm, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
742 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
743 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
744 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
745 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
746 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
747 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
748 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
779 [](
float signed1Pt) ->
short {
return (signed1Pt > 0) ? 1 : -1; });
781 [](uint64_t mftClusterSizesAndTrackFlags) ->
bool {
return mftClusterSizesAndTrackFlags & (0x1ULL << 60); });
789 [](
float pt,
float phi) ->
float {
790 return pt * std::cos(phi);
793 [](
float pt,
float phi) ->
float {
794 return pt * std::sin(phi);
797 [](
float pt,
float tgl) ->
float {
801 [](uint32_t midBoards) ->
int {
802 return static_cast<int>(midBoards & 0xFF);
805 [](uint32_t midBoards) ->
int {
806 return static_cast<int>((midBoards >> 8) & 0xFF);
809 [](uint32_t midBoards) ->
int {
810 return static_cast<int>((midBoards >> 16) & 0xFF);
813 [](uint32_t midBoards) ->
int {
814 return static_cast<int>((midBoards >> 24) & 0xFF);
820 [](uint64_t mftClusterSizesAndTrackFlags) -> int8_t {
823 if ((mftClusterSizesAndTrackFlags >> (
layer * 6)) & 0x3F) {
849 aod::fwdtrack::sigmaX* aod::fwdtrack::sigmaX);
851 (aod::fwdtrack::rhoXY / 128.f) * (aod::fwdtrack::sigmaX * aod::fwdtrack::sigmaY));
853 aod::fwdtrack::sigmaY* aod::fwdtrack::sigmaY);
855 (aod::fwdtrack::rhoPhiX / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaX));
857 (aod::fwdtrack::rhoPhiY / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaY));
859 aod::fwdtrack::sigmaPhi* aod::fwdtrack::sigmaPhi);
861 (aod::fwdtrack::rhoTglX / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaX));
863 (aod::fwdtrack::rhoTglY / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaY));
865 (aod::fwdtrack::rhoTglPhi / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaPhi));
867 aod::fwdtrack::sigmaTgl* aod::fwdtrack::sigmaTgl);
869 (aod::fwdtrack::rho1PtY / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaY));
871 (aod::fwdtrack::rho1PtX / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaX));
873 (aod::fwdtrack::rho1PtPhi / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaPhi));
875 (aod::fwdtrack::rho1PtTgl / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaTgl));
877 aod::fwdtrack::sigma1Pt* aod::fwdtrack::sigma1Pt);
883 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
884 fwdtrack::Signed1Pt, fwdtrack::NClusters,
885 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
886 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
887 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
888 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
889 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
893 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
894 fwdtrack::Signed1Pt, fwdtrack::v001::NClusters<fwdtrack::MFTClusterSizesAndTrackFlags>, fwdtrack::MFTClusterSizesAndTrackFlags, fwdtrack::IsCA<fwdtrack::MFTClusterSizesAndTrackFlags>,
895 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
896 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
897 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
898 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
899 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
924 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
925 fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd,
926 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
927 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
928 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
929 fwdtrack::Sign<fwdtrack::Signed1Pt>,
930 fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT,
931 fwdtrack::MatchScoreMCHMFT, fwdtrack::MFTTrackId, fwdtrack::MCHTrackId,
932 fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards,
933 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
941 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
942 fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
943 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
949 aod::fwdtrack::CPhiX,
950 aod::fwdtrack::CPhiY,
951 aod::fwdtrack::CPhiPhi,
952 aod::fwdtrack::CTglX,
953 aod::fwdtrack::CTglY,
954 aod::fwdtrack::CTglPhi,
955 aod::fwdtrack::CTglTgl,
956 aod::fwdtrack::C1PtX,
957 aod::fwdtrack::C1PtY,
958 aod::fwdtrack::C1PtPhi,
959 aod::fwdtrack::C1PtTgl,
960 aod::fwdtrack::C1Pt21Pt2);
967 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
968 fwdtrack::RhoXY, fwdtrack::RhoPhiX, fwdtrack::RhoPhiY, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
969 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
975 aod::fwdtrack::CPhiX,
976 aod::fwdtrack::CPhiY,
977 aod::fwdtrack::CPhiPhi,
978 aod::fwdtrack::CTglX,
979 aod::fwdtrack::CTglY,
980 aod::fwdtrack::CTglPhi,
981 aod::fwdtrack::CTglTgl,
982 aod::fwdtrack::C1PtX,
983 aod::fwdtrack::C1PtY,
984 aod::fwdtrack::C1PtPhi,
985 aod::fwdtrack::C1PtTgl,
986 aod::fwdtrack::C1Pt21Pt2);
988using MFTTrack = MFTTracks::iterator;
994extern template struct JoinFull<
o2::aod::Hash<
"JOIN/0"_h>, aod::FwdTracks, aod::FwdTracksCov>;
1044 fwdtrkcl::FwdTrackId,
1049 fwdtrkcl::DEId<fwdtrkcl::ClInfo>,
1050 fwdtrkcl::IsGoodX<fwdtrkcl::ClInfo>,
1051 fwdtrkcl::IsGoodY<fwdtrkcl::ClInfo>);
1076 hmpid::HMPIDDistance,
1077 hmpid::HMPIDNPhotons,
1088 hmpid::HMPIDNPhotons,
1090 hmpid::HMPIDClusSize,
1092 hmpid::HMPIDPhotsCharge);
1109 calo::Time, calo::CellType, calo::CaloType);
1112namespace calotrigger
1123 calotrigger::LnAmplitude, calotrigger::TriggerBits, calotrigger::CaloType);
1134 return status & 0b00011111;
1137 return 2 + ((status & 0b01100000) >> 5);
1140 return (status & 0b01100000) >> 7;
1145 o2::soa::Index<>, cpvcluster::BCId, cpvcluster::PosX, cpvcluster::PosZ, cpvcluster::Amplitude,
1146 cpvcluster::ClusterStatus, cpvcluster::PadMult<cpvcluster::ClusterStatus>,
1147 cpvcluster::ModuleNumber<cpvcluster::ClusterStatus>, cpvcluster::IsUnfolded<cpvcluster::ClusterStatus>);
1177 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1179 auto thisenergy = -std::numeric_limits<float>::infinity();
1180 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1189 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1190 auto thisenergy = -std::numeric_limits<float>::infinity();
1191 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1200 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1201 auto thisenergy = -std::numeric_limits<float>::infinity();
1202 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1211 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1212 auto thisenergy = -std::numeric_limits<float>::infinity();
1213 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1222 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1223 auto thisenergy = -std::numeric_limits<float>::infinity();
1224 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1233 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1234 auto thisenergy = -std::numeric_limits<float>::infinity();
1235 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1244 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1246 -std::numeric_limits<float>::infinity(),
1247 -std::numeric_limits<float>::infinity(),
1248 -std::numeric_limits<float>::infinity(),
1249 -std::numeric_limits<float>::infinity()};
1263 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1265 -std::numeric_limits<float>::infinity(),
1266 -std::numeric_limits<float>::infinity(),
1267 -std::numeric_limits<float>::infinity(),
1268 -std::numeric_limits<float>::infinity()};
1269 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1282 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1284 -std::numeric_limits<float>::infinity(),
1285 -std::numeric_limits<float>::infinity(),
1286 -std::numeric_limits<float>::infinity(),
1287 -std::numeric_limits<float>::infinity()};
1288 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1301 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1303 -std::numeric_limits<float>::infinity(),
1304 -std::numeric_limits<float>::infinity(),
1305 -std::numeric_limits<float>::infinity(),
1306 -std::numeric_limits<float>::infinity()};
1307 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1320 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1321 auto thistime = -std::numeric_limits<float>::infinity();
1322 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1324 thistime =
time[ie];
1331 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1332 auto thistime = -std::numeric_limits<float>::infinity();
1333 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1335 thistime =
time[ie];
1342 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1343 auto thistime = -std::numeric_limits<float>::infinity();
1344 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1346 thistime =
time[ie];
1353 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1354 auto thistime = -std::numeric_limits<float>::infinity();
1355 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1357 thistime =
time[ie];
1364 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1365 auto thistime = -std::numeric_limits<float>::infinity();
1366 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1368 thistime =
time[ie];
1375 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1376 auto thistime = -std::numeric_limits<float>::infinity();
1377 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1379 thistime =
time[ie];
1387 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1388 auto thisamplitude = -std::numeric_limits<float>::infinity();
1389 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1391 thisamplitude = amplitude[ie];
1395 return thisamplitude;
1398 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1399 auto thisamplitude = -std::numeric_limits<float>::infinity();
1400 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1402 thisamplitude = amplitude[ie];
1406 return thisamplitude;
1409 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1410 auto thisamplitude = -std::numeric_limits<float>::infinity();
1411 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1413 thisamplitude = amplitude[ie];
1417 return thisamplitude;
1420 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1421 auto thisamplitude = -std::numeric_limits<float>::infinity();
1422 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1424 thisamplitude = amplitude[ie];
1428 return thisamplitude;
1431 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1432 auto thisamplitude = -std::numeric_limits<float>::infinity();
1433 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1435 thisamplitude = amplitude[ie];
1439 return thisamplitude;
1442 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1443 auto thisamplitude = -std::numeric_limits<float>::infinity();
1444 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1446 thisamplitude = amplitude[ie];
1450 return thisamplitude;
1456 zdc::EnergyCommonZNA, zdc::EnergyCommonZNC, zdc::EnergyCommonZPA, zdc::EnergyCommonZPC,
1457 zdc::EnergySectorZNA, zdc::EnergySectorZNC, zdc::EnergySectorZPA, zdc::EnergySectorZPC,
1458 zdc::TimeZEM1, zdc::TimeZEM2, zdc::TimeZNA, zdc::TimeZNC, zdc::TimeZPA, zdc::TimeZPC);
1462 o2::soa::Index<>, zdc::BCId, zdc::Energy, zdc::ChannelE, zdc::Amplitude, zdc::Time, zdc::ChannelT,
1463 zdc::DyEnergyZEM1<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyZEM2<zdc::ChannelE, zdc::Energy>,
1464 zdc::DyEnergyCommonZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZNC<zdc::ChannelE, zdc::Energy>,
1465 zdc::DyEnergyCommonZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZPC<zdc::ChannelE, zdc::Energy>,
1466 zdc::DyEnergySectorZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZNC<zdc::ChannelE, zdc::Energy>,
1467 zdc::DyEnergySectorZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZPC<zdc::ChannelE, zdc::Energy>,
1468 zdc::DyTimeZEM1<zdc::ChannelT, zdc::Time>, zdc::DyTimeZEM2<zdc::ChannelT, zdc::Time>,
1469 zdc::DyTimeZNA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZNC<zdc::ChannelT, zdc::Time>,
1470 zdc::DyTimeZPA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZPC<zdc::ChannelT, zdc::Time>,
1471 zdc::DyAmplitudeZEM1<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZEM2<zdc::ChannelT, zdc::Amplitude>,
1472 zdc::DyAmplitudeZNA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZNC<zdc::ChannelT, zdc::Amplitude>,
1473 zdc::DyAmplitudeZPA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZPC<zdc::ChannelT, zdc::Amplitude>);
1488 o2::soa::Index<>, fv0a::BCId, fv0a::Amplitude, fv0a::Channel, fv0a::Time, fv0a::TriggerMask);
1529 [](
float timeA) ->
bool {
1530 return timeA < 30.f;
1533 [](
float timeC) ->
bool {
1534 return timeC < 30.f;
1541 [](gsl::span<const float> vecAmpA) ->
float {
1542 return std::accumulate(vecAmpA.begin(), vecAmpA.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1545 [](gsl::span<const float> vecAmpC) ->
float {
1546 return std::accumulate(vecAmpC.begin(), vecAmpC.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1553 ft0::AmplitudeA, ft0::ChannelA, ft0::AmplitudeC, ft0::ChannelC, ft0::TimeA, ft0::TimeC,
1554 ft0::TriggerMask, ft0::PosZ<ft0::TimeA, ft0::TimeC>, ft0::CollTime<ft0::TimeA, ft0::TimeC>,
1555 ft0::IsValidTimeA<ft0::TimeA>, ft0::IsValidTimeC<ft0::TimeC>, ft0::IsValidTime<ft0::TimeA, ft0::TimeC>,
1556 ft0::SumAmpA<ft0::AmplitudeA>, ft0::SumAmpC<ft0::AmplitudeC>);
1561 ft0::TimeFT0A, ft0::TimeFT0C);
1583 fdd::AmplitudeA, fdd::AmplitudeC,
1584 fdd::TimeA, fdd::TimeC,
1590 fdd::ChargeA, fdd::ChargeC,
1591 fdd::TimeA, fdd::TimeC,
1599 fdd::TimeFDDA, fdd::TimeFDDC);
1610 [](uint8_t V0Type) ->
bool {
return V0Type == 1; });
1612 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 1); });
1614 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 2); });
1620 v0::PosTrackId, v0::NegTrackId);
1623 v0::PosTrackId, v0::NegTrackId);
1626 v0::PosTrackId, v0::NegTrackId,
1628 v0::IsStandardV0<v0::V0Type>,
1629 v0::IsPhotonV0<v0::V0Type>,
1630 v0::IsCollinearV0<v0::V0Type>);
1645 o2::soa::Index<>, cascade::CollisionId, cascade::V0Id, cascade::BachelorId);
1659 o2::soa::Index<>, decay3body::CollisionId, decay3body::Track0Id, decay3body::Track1Id, decay3body::Track2Id);
1664namespace strangenesstracking
1688 strangenesstracking::TrackId,
1689 strangenesstracking::ITSTrackId,
1690 strangenesstracking::CascadeId,
1691 strangenesstracking::DecayX,
1692 strangenesstracking::DecayY,
1693 strangenesstracking::DecayZ,
1694 strangenesstracking::XiMass,
1695 strangenesstracking::OmegaMass,
1696 strangenesstracking::MatchingChi2,
1697 strangenesstracking::TopologyChi2,
1698 strangenesstracking::ITSclsSize);
1702 strangenesstracking::TrackId,
1703 strangenesstracking::ITSTrackId,
1704 strangenesstracking::V0Id,
1705 strangenesstracking::DecayX,
1706 strangenesstracking::DecayY,
1707 strangenesstracking::DecayZ,
1708 strangenesstracking::H3Lmass,
1709 strangenesstracking::H4Lmass,
1710 strangenesstracking::MatchingChi2,
1711 strangenesstracking::TopologyChi2,
1712 strangenesstracking::ITSclsSize);
1716 strangenesstracking::TrackId,
1717 strangenesstracking::ITSTrackId,
1718 strangenesstracking::Decay3BodyId,
1719 strangenesstracking::DecayX,
1720 strangenesstracking::DecayY,
1721 strangenesstracking::DecayZ,
1722 strangenesstracking::H3Lmass,
1723 strangenesstracking::He4Lmass,
1724 strangenesstracking::MatchingChi2,
1725 strangenesstracking::TopologyChi2,
1726 strangenesstracking::ITSclsSize);
1801 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1802 run2::SPDClustersL0, run2::SPDClustersL1,
1803 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1804 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1805 run2::V0TriggerChargeA, run2::V0TriggerChargeC);
1809 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1810 run2::SPDClustersL0, run2::SPDClustersL1,
1811 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1812 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1813 run2::V0TriggerChargeA, run2::V0TriggerChargeC,
1814 run2::NTPCClusters, run2::NSDDSSDClusters);
1821 run2::oftv0::CollisionId, run2::oftv0::PosTrackId, run2::oftv0::NegTrackId,
1822 run2::oftv0::Px, run2::oftv0::Py, run2::oftv0::Pz, run2::oftv0::E,
1823 run2::oftv0::Qt, run2::oftv0::Alpha,
1824 run2::oftv0::X, run2::oftv0::Y, run2::oftv0::Z,
1825 run2::oftv0::Chi2NDF, run2::oftv0::PsiPair,
1826 run2::oftv0::DCAr, run2::oftv0::DCAz,
1833 run2::pmd::Z, run2::pmd::CluADC, run2::pmd::CluPID, run2::pmd::Det,
1834 run2::pmd::Ncell, run2::pmd::Smn, run2::pmd::TrackNo, run2::pmd::TrackPid,
1835 run2::pmd::SigX, run2::pmd::SigY, run2::pmd::ClMatching);
1840namespace mccollision
1862 mccollision::GeneratorsID,
1863 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1864 mccollision::T, mccollision::Weight,
1865 mccollision::ImpactParameter,
1866 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1867 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1868 mccollision::GetSourceId<mccollision::GeneratorsID>);
1871 mccollision::GeneratorsID,
1872 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1873 mccollision::T, mccollision::Weight,
1874 mccollision::ImpactParameter,
1875 mccollision::EventPlaneAngle,
1876 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1877 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1878 mccollision::GetSourceId<mccollision::GeneratorsID>);
1917 [](
float px,
float py,
float pz) -> std::array<float, 3> {
return std::array<float, 3>{px, py, pz}; });
1922 ifnode((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1923 aod::mcparticle::py * aod::mcparticle::py +
1924 aod::mcparticle::pz * aod::mcparticle::pz) -
1925 aod::mcparticle::pz) <
static_cast<float>(1e-7),
1926 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1927 0.5f * nlog((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1928 aod::mcparticle::py * aod::mcparticle::py +
1929 aod::mcparticle::pz * aod::mcparticle::pz) +
1930 aod::mcparticle::pz) /
1931 (nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1932 aod::mcparticle::py * aod::mcparticle::py +
1933 aod::mcparticle::pz * aod::mcparticle::pz) -
1934 aod::mcparticle::pz))));
1936 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1937 aod::mcparticle::py * aod::mcparticle::py));
1939 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1940 aod::mcparticle::py * aod::mcparticle::py +
1941 aod::mcparticle::pz * aod::mcparticle::pz));
1943 ifnode((aod::mcparticle::e - aod::mcparticle::pz) <
static_cast<float>(1e-7),
1944 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1945 0.5f * nlog((aod::mcparticle::e + aod::mcparticle::pz) /
1946 (aod::mcparticle::e - aod::mcparticle::pz))));
1951 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1952 mcparticle::Mother0Id, mcparticle::Mother1Id,
1953 mcparticle::Daughter0Id, mcparticle::Daughter1Id, mcparticle::Weight,
1954 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1955 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1956 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1957 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1958 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1959 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1960 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1961 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1962 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
1966 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1967 mcparticle::MothersIds, mcparticle::DaughtersIdSlice, mcparticle::Weight,
1968 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1969 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1970 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1971 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1972 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1973 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1974 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1975 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1976 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
2016namespace mctracklabel
2023 mctracklabel::McParticleId, mctracklabel::McMask);
2026namespace mcmfttracklabel
2033 mcmfttracklabel::McParticleId, mcmfttracklabel::McMask);
2036namespace mcfwdtracklabel
2043 mcfwdtracklabel::McParticleId, mcfwdtracklabel::McMask);
2046namespace mccalolabel
2055 mccalolabel::McParticleId, mccalolabel::McMask);
2057 mccalolabel::McParticleIds, mccalolabel::AmplitudeA);
2061namespace mccollisionlabel
2068 mccollisionlabel::McCollisionId, mccollisionlabel::McMask);
2072namespace hepmcxsection
2086 o2::soa::Index<>, hepmcxsection::McCollisionId, hepmcxsection::GeneratorsID,
2087 hepmcxsection::Accepted, hepmcxsection::Attempted, hepmcxsection::XsectGen,
2088 hepmcxsection::XsectErr, hepmcxsection::PtHard, hepmcxsection::NMPI, hepmcxsection::ProcessId);
2091namespace hepmcpdfinfo
2108 hepmcpdfinfo::Id1, hepmcpdfinfo::Id2,
2109 hepmcpdfinfo::PdfId1, hepmcpdfinfo::PdfId2,
2110 hepmcpdfinfo::X1, hepmcpdfinfo::X2,
2111 hepmcpdfinfo::ScalePdf, hepmcpdfinfo::Pdf1, hepmcpdfinfo::Pdf2);
2114namespace hepmcheavyion
2135 o2::soa::Index<>, hepmcheavyion::McCollisionId, hepmcheavyion::GeneratorsID,
2136 hepmcheavyion::NcollHard, hepmcheavyion::NpartProj, hepmcheavyion::NpartTarg,
2137 hepmcheavyion::Ncoll, hepmcheavyion::NNwoundedCollisions, hepmcheavyion::NwoundedNCollisions,
2138 hepmcheavyion::NwoundedNwoundedCollisions, hepmcheavyion::SpectatorNeutrons,
2139 hepmcheavyion::SpectatorProtons, hepmcheavyion::ImpactParameter, hepmcheavyion::EventPlaneAngle,
2140 hepmcheavyion::Eccentricity, hepmcheavyion::SigmaInelNN, hepmcheavyion::Centrality);
2158#define INDEX_LIST_RUN2 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId
2162#define INDEX_LIST_RUN3 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId
2168 indices::BCId, indices::CollisionId);
2170 indices::BCId, indices::CollisionId);
2173 indices::BCId, indices::CollisionIds);
2175 indices::BCId, indices::CollisionIds);
2178 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2180 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2183 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
float getDeltaTBwd() const
union o2::aod::track::extensions::TPCTimeErrEncoding::TPCDeltaTime encoding
table_t::template iterator_template< DefaultIndexPolicy, self_t, Ts... > iterator