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>);
708 [](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 {
709 constexpr int8_t
m = std::numeric_limits<int8_t>::min();
710 return (cY ==
m && cZ ==
m && cSnp ==
m && cTgl ==
m && cQ2Pt ==
m && gY ==
m && gZ ==
m && gSnp ==
m && gTgl ==
m && gQ2Pt ==
m);
715 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
716 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
717 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R);
721 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
722 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
723 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
724 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
725 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
726 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
727 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
730 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
731 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
732 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
733 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
734 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
735 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
736 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
737 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
768 [](
float signed1Pt) ->
short {
return (signed1Pt > 0) ? 1 : -1; });
770 [](uint64_t mftClusterSizesAndTrackFlags) ->
bool {
return mftClusterSizesAndTrackFlags & (0x1ULL << 60); });
778 [](
float pt,
float phi) ->
float {
779 return pt * std::cos(phi);
782 [](
float pt,
float phi) ->
float {
783 return pt * std::sin(phi);
786 [](
float pt,
float tgl) ->
float {
790 [](uint32_t midBoards) ->
int {
791 return static_cast<int>(midBoards & 0xFF);
794 [](uint32_t midBoards) ->
int {
795 return static_cast<int>((midBoards >> 8) & 0xFF);
798 [](uint32_t midBoards) ->
int {
799 return static_cast<int>((midBoards >> 16) & 0xFF);
802 [](uint32_t midBoards) ->
int {
803 return static_cast<int>((midBoards >> 24) & 0xFF);
809 [](uint64_t mftClusterSizesAndTrackFlags) -> int8_t {
812 if ((mftClusterSizesAndTrackFlags >> (
layer * 6)) & 0x3F) {
838 aod::fwdtrack::sigmaX* aod::fwdtrack::sigmaX);
840 (aod::fwdtrack::rhoXY / 128.f) * (aod::fwdtrack::sigmaX * aod::fwdtrack::sigmaY));
842 aod::fwdtrack::sigmaY* aod::fwdtrack::sigmaY);
844 (aod::fwdtrack::rhoPhiX / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaX));
846 (aod::fwdtrack::rhoPhiY / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaY));
848 aod::fwdtrack::sigmaPhi* aod::fwdtrack::sigmaPhi);
850 (aod::fwdtrack::rhoTglX / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaX));
852 (aod::fwdtrack::rhoTglY / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaY));
854 (aod::fwdtrack::rhoTglPhi / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaPhi));
856 aod::fwdtrack::sigmaTgl* aod::fwdtrack::sigmaTgl);
858 (aod::fwdtrack::rho1PtY / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaY));
860 (aod::fwdtrack::rho1PtX / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaX));
862 (aod::fwdtrack::rho1PtPhi / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaPhi));
864 (aod::fwdtrack::rho1PtTgl / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaTgl));
866 aod::fwdtrack::sigma1Pt* aod::fwdtrack::sigma1Pt);
872 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
873 fwdtrack::Signed1Pt, fwdtrack::NClusters,
874 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
875 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
876 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
877 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
878 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
882 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
883 fwdtrack::Signed1Pt, fwdtrack::v001::NClusters<fwdtrack::MFTClusterSizesAndTrackFlags>, fwdtrack::MFTClusterSizesAndTrackFlags, fwdtrack::IsCA<fwdtrack::MFTClusterSizesAndTrackFlags>,
884 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
885 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
886 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
887 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
888 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
913 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
914 fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd,
915 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
916 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
917 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
918 fwdtrack::Sign<fwdtrack::Signed1Pt>,
919 fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT,
920 fwdtrack::MatchScoreMCHMFT, fwdtrack::MFTTrackId, fwdtrack::MCHTrackId,
921 fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards,
922 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
930 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
931 fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
932 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
938 aod::fwdtrack::CPhiX,
939 aod::fwdtrack::CPhiY,
940 aod::fwdtrack::CPhiPhi,
941 aod::fwdtrack::CTglX,
942 aod::fwdtrack::CTglY,
943 aod::fwdtrack::CTglPhi,
944 aod::fwdtrack::CTglTgl,
945 aod::fwdtrack::C1PtX,
946 aod::fwdtrack::C1PtY,
947 aod::fwdtrack::C1PtPhi,
948 aod::fwdtrack::C1PtTgl,
949 aod::fwdtrack::C1Pt21Pt2);
956 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
957 fwdtrack::RhoXY, fwdtrack::RhoPhiX, fwdtrack::RhoPhiY, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
958 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
964 aod::fwdtrack::CPhiX,
965 aod::fwdtrack::CPhiY,
966 aod::fwdtrack::CPhiPhi,
967 aod::fwdtrack::CTglX,
968 aod::fwdtrack::CTglY,
969 aod::fwdtrack::CTglPhi,
970 aod::fwdtrack::CTglTgl,
971 aod::fwdtrack::C1PtX,
972 aod::fwdtrack::C1PtY,
973 aod::fwdtrack::C1PtPhi,
974 aod::fwdtrack::C1PtTgl,
975 aod::fwdtrack::C1Pt21Pt2);
977using MFTTrack = MFTTracks::iterator;
983extern template struct JoinFull<
o2::aod::Hash<
"JOIN/0"_h>, aod::FwdTracks, aod::FwdTracksCov>;
1033 fwdtrkcl::FwdTrackId,
1038 fwdtrkcl::DEId<fwdtrkcl::ClInfo>,
1039 fwdtrkcl::IsGoodX<fwdtrkcl::ClInfo>,
1040 fwdtrkcl::IsGoodY<fwdtrkcl::ClInfo>);
1065 hmpid::HMPIDDistance,
1066 hmpid::HMPIDNPhotons,
1077 hmpid::HMPIDNPhotons,
1079 hmpid::HMPIDClusSize,
1081 hmpid::HMPIDPhotsCharge);
1098 calo::Time, calo::CellType, calo::CaloType);
1101namespace calotrigger
1112 calotrigger::LnAmplitude, calotrigger::TriggerBits, calotrigger::CaloType);
1123 return status & 0b00011111;
1126 return 2 + ((status & 0b01100000) >> 5);
1129 return (status & 0b01100000) >> 7;
1134 o2::soa::Index<>, cpvcluster::BCId, cpvcluster::PosX, cpvcluster::PosZ, cpvcluster::Amplitude,
1135 cpvcluster::ClusterStatus, cpvcluster::PadMult<cpvcluster::ClusterStatus>,
1136 cpvcluster::ModuleNumber<cpvcluster::ClusterStatus>, cpvcluster::IsUnfolded<cpvcluster::ClusterStatus>);
1166 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1168 auto thisenergy = -std::numeric_limits<float>::infinity();
1169 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1178 [](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) -> std::array<float, 4> {
1235 -std::numeric_limits<float>::infinity(),
1236 -std::numeric_limits<float>::infinity(),
1237 -std::numeric_limits<float>::infinity(),
1238 -std::numeric_limits<float>::infinity()};
1252 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1254 -std::numeric_limits<float>::infinity(),
1255 -std::numeric_limits<float>::infinity(),
1256 -std::numeric_limits<float>::infinity(),
1257 -std::numeric_limits<float>::infinity()};
1258 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1271 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1273 -std::numeric_limits<float>::infinity(),
1274 -std::numeric_limits<float>::infinity(),
1275 -std::numeric_limits<float>::infinity(),
1276 -std::numeric_limits<float>::infinity()};
1277 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1290 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1292 -std::numeric_limits<float>::infinity(),
1293 -std::numeric_limits<float>::infinity(),
1294 -std::numeric_limits<float>::infinity(),
1295 -std::numeric_limits<float>::infinity()};
1296 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1309 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1310 auto thistime = -std::numeric_limits<float>::infinity();
1311 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1313 thistime =
time[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];
1376 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1377 auto thisamplitude = -std::numeric_limits<float>::infinity();
1378 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1380 thisamplitude = amplitude[ie];
1384 return thisamplitude;
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;
1445 zdc::EnergyCommonZNA, zdc::EnergyCommonZNC, zdc::EnergyCommonZPA, zdc::EnergyCommonZPC,
1446 zdc::EnergySectorZNA, zdc::EnergySectorZNC, zdc::EnergySectorZPA, zdc::EnergySectorZPC,
1447 zdc::TimeZEM1, zdc::TimeZEM2, zdc::TimeZNA, zdc::TimeZNC, zdc::TimeZPA, zdc::TimeZPC);
1451 o2::soa::Index<>, zdc::BCId, zdc::Energy, zdc::ChannelE, zdc::Amplitude, zdc::Time, zdc::ChannelT,
1452 zdc::DyEnergyZEM1<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyZEM2<zdc::ChannelE, zdc::Energy>,
1453 zdc::DyEnergyCommonZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZNC<zdc::ChannelE, zdc::Energy>,
1454 zdc::DyEnergyCommonZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZPC<zdc::ChannelE, zdc::Energy>,
1455 zdc::DyEnergySectorZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZNC<zdc::ChannelE, zdc::Energy>,
1456 zdc::DyEnergySectorZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZPC<zdc::ChannelE, zdc::Energy>,
1457 zdc::DyTimeZEM1<zdc::ChannelT, zdc::Time>, zdc::DyTimeZEM2<zdc::ChannelT, zdc::Time>,
1458 zdc::DyTimeZNA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZNC<zdc::ChannelT, zdc::Time>,
1459 zdc::DyTimeZPA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZPC<zdc::ChannelT, zdc::Time>,
1460 zdc::DyAmplitudeZEM1<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZEM2<zdc::ChannelT, zdc::Amplitude>,
1461 zdc::DyAmplitudeZNA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZNC<zdc::ChannelT, zdc::Amplitude>,
1462 zdc::DyAmplitudeZPA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZPC<zdc::ChannelT, zdc::Amplitude>);
1477 o2::soa::Index<>, fv0a::BCId, fv0a::Amplitude, fv0a::Channel, fv0a::Time, fv0a::TriggerMask);
1518 [](
float timeA) ->
bool {
1519 return timeA < 30.f;
1522 [](
float timeC) ->
bool {
1523 return timeC < 30.f;
1530 [](gsl::span<const float> vecAmpA) ->
float {
1531 return std::accumulate(vecAmpA.begin(), vecAmpA.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1534 [](gsl::span<const float> vecAmpC) ->
float {
1535 return std::accumulate(vecAmpC.begin(), vecAmpC.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1542 ft0::AmplitudeA, ft0::ChannelA, ft0::AmplitudeC, ft0::ChannelC, ft0::TimeA, ft0::TimeC,
1543 ft0::TriggerMask, ft0::PosZ<ft0::TimeA, ft0::TimeC>, ft0::CollTime<ft0::TimeA, ft0::TimeC>,
1544 ft0::IsValidTimeA<ft0::TimeA>, ft0::IsValidTimeC<ft0::TimeC>, ft0::IsValidTime<ft0::TimeA, ft0::TimeC>,
1545 ft0::SumAmpA<ft0::AmplitudeA>, ft0::SumAmpC<ft0::AmplitudeC>);
1550 ft0::TimeFT0A, ft0::TimeFT0C);
1572 fdd::AmplitudeA, fdd::AmplitudeC,
1573 fdd::TimeA, fdd::TimeC,
1579 fdd::ChargeA, fdd::ChargeC,
1580 fdd::TimeA, fdd::TimeC,
1588 fdd::TimeFDDA, fdd::TimeFDDC);
1599 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 0); });
1601 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 1); });
1603 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 2); });
1609 v0::PosTrackId, v0::NegTrackId);
1612 v0::PosTrackId, v0::NegTrackId);
1615 v0::PosTrackId, v0::NegTrackId,
1617 v0::IsStandardV0<v0::V0Type>,
1618 v0::IsPhotonV0<v0::V0Type>,
1619 v0::IsCollinearV0<v0::V0Type>);
1634 o2::soa::Index<>, cascade::CollisionId, cascade::V0Id, cascade::BachelorId);
1648 o2::soa::Index<>, decay3body::CollisionId, decay3body::Track0Id, decay3body::Track1Id, decay3body::Track2Id);
1653namespace strangenesstracking
1677 strangenesstracking::TrackId,
1678 strangenesstracking::ITSTrackId,
1679 strangenesstracking::CascadeId,
1680 strangenesstracking::DecayX,
1681 strangenesstracking::DecayY,
1682 strangenesstracking::DecayZ,
1683 strangenesstracking::XiMass,
1684 strangenesstracking::OmegaMass,
1685 strangenesstracking::MatchingChi2,
1686 strangenesstracking::TopologyChi2,
1687 strangenesstracking::ITSclsSize);
1691 strangenesstracking::TrackId,
1692 strangenesstracking::ITSTrackId,
1693 strangenesstracking::V0Id,
1694 strangenesstracking::DecayX,
1695 strangenesstracking::DecayY,
1696 strangenesstracking::DecayZ,
1697 strangenesstracking::H3Lmass,
1698 strangenesstracking::H4Lmass,
1699 strangenesstracking::MatchingChi2,
1700 strangenesstracking::TopologyChi2,
1701 strangenesstracking::ITSclsSize);
1705 strangenesstracking::TrackId,
1706 strangenesstracking::ITSTrackId,
1707 strangenesstracking::Decay3BodyId,
1708 strangenesstracking::DecayX,
1709 strangenesstracking::DecayY,
1710 strangenesstracking::DecayZ,
1711 strangenesstracking::H3Lmass,
1712 strangenesstracking::He4Lmass,
1713 strangenesstracking::MatchingChi2,
1714 strangenesstracking::TopologyChi2,
1715 strangenesstracking::ITSclsSize);
1773 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1774 run2::SPDClustersL0, run2::SPDClustersL1,
1775 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1776 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1777 run2::V0TriggerChargeA, run2::V0TriggerChargeC);
1781 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1782 run2::SPDClustersL0, run2::SPDClustersL1,
1783 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1784 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1785 run2::V0TriggerChargeA, run2::V0TriggerChargeC,
1786 run2::NTPCClusters, run2::NSDDSSDClusters);
1793 run2::oftv0::CollisionId, run2::oftv0::PosTrackId, run2::oftv0::NegTrackId,
1794 run2::oftv0::Px, run2::oftv0::Py, run2::oftv0::Pz, run2::oftv0::E,
1795 run2::oftv0::Qt, run2::oftv0::Alpha,
1796 run2::oftv0::X, run2::oftv0::Y, run2::oftv0::Z,
1797 run2::oftv0::Chi2NDF, run2::oftv0::PsiPair,
1798 run2::oftv0::DCAr, run2::oftv0::DCAz,
1804namespace mccollision
1826 mccollision::GeneratorsID,
1827 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1828 mccollision::T, mccollision::Weight,
1829 mccollision::ImpactParameter,
1830 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1831 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1832 mccollision::GetSourceId<mccollision::GeneratorsID>);
1835 mccollision::GeneratorsID,
1836 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1837 mccollision::T, mccollision::Weight,
1838 mccollision::ImpactParameter,
1839 mccollision::EventPlaneAngle,
1840 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1841 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1842 mccollision::GetSourceId<mccollision::GeneratorsID>);
1881 [](
float px,
float py,
float pz) -> std::array<float, 3> {
return std::array<float, 3>{px, py, pz}; });
1886 ifnode((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1887 aod::mcparticle::py * aod::mcparticle::py +
1888 aod::mcparticle::pz * aod::mcparticle::pz) -
1889 aod::mcparticle::pz) <
static_cast<float>(1e-7),
1890 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1891 0.5f * nlog((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1892 aod::mcparticle::py * aod::mcparticle::py +
1893 aod::mcparticle::pz * aod::mcparticle::pz) +
1894 aod::mcparticle::pz) /
1895 (nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1896 aod::mcparticle::py * aod::mcparticle::py +
1897 aod::mcparticle::pz * aod::mcparticle::pz) -
1898 aod::mcparticle::pz))));
1900 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1901 aod::mcparticle::py * aod::mcparticle::py));
1903 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1904 aod::mcparticle::py * aod::mcparticle::py +
1905 aod::mcparticle::pz * aod::mcparticle::pz));
1907 ifnode((aod::mcparticle::e - aod::mcparticle::pz) <
static_cast<float>(1e-7),
1908 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1909 0.5f * nlog((aod::mcparticle::e + aod::mcparticle::pz) /
1910 (aod::mcparticle::e - aod::mcparticle::pz))));
1915 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1916 mcparticle::Mother0Id, mcparticle::Mother1Id,
1917 mcparticle::Daughter0Id, mcparticle::Daughter1Id, mcparticle::Weight,
1918 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1919 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1920 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1921 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1922 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1923 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1924 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1925 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1926 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
1930 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1931 mcparticle::MothersIds, mcparticle::DaughtersIdSlice, mcparticle::Weight,
1932 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1933 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1934 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1935 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1936 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1937 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1938 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1939 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1940 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
1980namespace mctracklabel
1987 mctracklabel::McParticleId, mctracklabel::McMask);
1990namespace mcmfttracklabel
1997 mcmfttracklabel::McParticleId, mcmfttracklabel::McMask);
2000namespace mcfwdtracklabel
2007 mcfwdtracklabel::McParticleId, mcfwdtracklabel::McMask);
2010namespace mccalolabel
2019 mccalolabel::McParticleId, mccalolabel::McMask);
2021 mccalolabel::McParticleIds, mccalolabel::AmplitudeA);
2025namespace mccollisionlabel
2032 mccollisionlabel::McCollisionId, mccollisionlabel::McMask);
2036namespace hepmcxsection
2050 o2::soa::Index<>, hepmcxsection::McCollisionId, hepmcxsection::GeneratorsID,
2051 hepmcxsection::Accepted, hepmcxsection::Attempted, hepmcxsection::XsectGen,
2052 hepmcxsection::XsectErr, hepmcxsection::PtHard, hepmcxsection::NMPI, hepmcxsection::ProcessId);
2055namespace hepmcpdfinfo
2072 hepmcpdfinfo::Id1, hepmcpdfinfo::Id2,
2073 hepmcpdfinfo::PdfId1, hepmcpdfinfo::PdfId2,
2074 hepmcpdfinfo::X1, hepmcpdfinfo::X2,
2075 hepmcpdfinfo::ScalePdf, hepmcpdfinfo::Pdf1, hepmcpdfinfo::Pdf2);
2078namespace hepmcheavyion
2099 o2::soa::Index<>, hepmcheavyion::McCollisionId, hepmcheavyion::GeneratorsID,
2100 hepmcheavyion::NcollHard, hepmcheavyion::NpartProj, hepmcheavyion::NpartTarg,
2101 hepmcheavyion::Ncoll, hepmcheavyion::NNwoundedCollisions, hepmcheavyion::NwoundedNCollisions,
2102 hepmcheavyion::NwoundedNwoundedCollisions, hepmcheavyion::SpectatorNeutrons,
2103 hepmcheavyion::SpectatorProtons, hepmcheavyion::ImpactParameter, hepmcheavyion::EventPlaneAngle,
2104 hepmcheavyion::Eccentricity, hepmcheavyion::SigmaInelNN, hepmcheavyion::Centrality);
2122#define INDEX_LIST_RUN2 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId
2126#define INDEX_LIST_RUN3 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId
2132 indices::BCId, indices::CollisionId);
2134 indices::BCId, indices::CollisionId);
2137 indices::BCId, indices::CollisionIds);
2139 indices::BCId, indices::CollisionIds);
2142 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2144 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2147 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
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
TracksQA_002 TracksQAVersion
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