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();
418 [](uint32_t
flags) -> uint32_t {
return flags >> 28; });
420 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) -> int16_t {
return (int16_t)tpcNClsFindable - tpcNClsFindableMinusFound; });
422 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusPID) -> int16_t {
return (int16_t)tpcNClsFindable - tpcNClsFindableMinusPID; });
424 [](
uint8_t tpcNClsFindable, int8_t TPCNClsFindableMinusCrossedRows) -> int16_t {
return (int16_t)tpcNClsFindable - TPCNClsFindableMinusCrossedRows; });
437 uint8_t itsNclsInnerBarrel = 0;
441 itsNclsInnerBarrel++;
443 return itsNclsInnerBarrel;
450 if (itsSharedClusterMap & (
bit <<
layer))
456 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) ->
float {
457 int16_t tpcNClsFound = (int16_t)tpcNClsFindable - tpcNClsFindableMinusFound;
458 return (
float)tpcNClsFound / (float)tpcNClsFindable;
462 [](
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusCrossedRows) ->
float {
463 int16_t tpcNClsCrossedRows = (int16_t)tpcNClsFindable - tpcNClsFindableMinusCrossedRows;
464 return (
float)tpcNClsCrossedRows / (float)tpcNClsFindable;
468 [](
uint8_t tpcNClsShared,
uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) ->
float {
469 int16_t tpcNClsFound = (int16_t)tpcNClsFindable - tpcNClsFindableMinusFound;
470 return (
float)tpcNClsShared / (float)tpcNClsFound;
480 [](
uint8_t trdPattern) -> std::size_t {
return std::bitset<6>(trdPattern).count(); });
485 track::X, track::Alpha,
486 track::Y, track::Z, track::Snp, track::Tgl,
487 track::Signed1Pt, track::IsWithinBeamPipe<track::X>,
488 track::Px<track::Signed1Pt, track::Snp, track::Alpha>,
489 track::Py<track::Signed1Pt, track::Snp, track::Alpha>,
490 track::Pz<track::Signed1Pt, track::Tgl>,
491 track::PVector<track::Signed1Pt, track::Snp, track::Alpha, track::Tgl>,
492 track::Energy<track::Signed1Pt, track::Tgl>,
493 track::Rapidity<track::Signed1Pt, track::Tgl>,
494 track::Sign<track::Signed1Pt>,
505 track::X, track::Alpha,
506 track::Y, track::Z, track::Snp, track::Tgl,
507 track::Signed1Pt, track::IsWithinBeamPipe<track::X>,
508 track::Px<track::Signed1Pt, track::Snp, track::Alpha>,
509 track::Py<track::Signed1Pt, track::Snp, track::Alpha>,
510 track::Pz<track::Signed1Pt, track::Tgl>,
511 track::PVector<track::Signed1Pt, track::Snp, track::Alpha, track::Tgl>,
512 track::Energy<track::Signed1Pt, track::Tgl>,
513 track::Rapidity<track::Signed1Pt, track::Tgl>,
514 track::Sign<track::Signed1Pt>,
524 track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt,
525 track::RhoZY, track::RhoSnpY, track::RhoSnpZ, track::RhoTglY, track::RhoTglZ,
526 track::RhoTglSnp, track::Rho1PtY, track::Rho1PtZ, track::Rho1PtSnp, track::Rho1PtTgl,
o2::soa::Marker<1>);
543 aod::track::C1Pt21Pt2);
546 track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt,
547 track::RhoZY, track::RhoSnpY, track::RhoSnpZ, track::RhoTglY, track::RhoTglZ,
548 track::RhoTglSnp, track::Rho1PtY, track::Rho1PtZ, track::Rho1PtSnp, track::Rho1PtTgl,
o2::soa::Marker<2>);
565 aod::track::C1Pt21Pt2);
568 track::TPCInnerParam, track::Flags, track::ITSClusterMap,
569 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows,
570 track::TPCNClsShared, track::TRDPattern, track::ITSChi2NCl,
571 track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
572 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
573 track::PIDForTracking<track::Flags>,
574 track::IsPVContributor<track::Flags>,
575 track::HasITS<track::DetectorMap>, track::HasTPC<track::DetectorMap>,
576 track::HasTRD<track::DetectorMap>, track::HasTOF<track::DetectorMap>,
577 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
578 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
579 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
580 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
581 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
582 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
583 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
584 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
585 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
586 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
587 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
588 track::ITSNCls<track::ITSClusterMap>, track::ITSNClsInnerBarrel<track::ITSClusterMap>,
589 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
590 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
591 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
592 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
595 track::TPCInnerParam, track::Flags, track::ITSClusterSizes,
596 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows,
597 track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd<track::TrackTimeRes, track::Flags>, track::v001::extensions::TPCDeltaTBwd<track::TrackTimeRes, track::Flags>,
598 track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
599 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
600 track::PIDForTracking<track::Flags>,
601 track::IsPVContributor<track::Flags>,
602 track::HasITS<track::v001::DetectorMap>, track::HasTPC<track::v001::DetectorMap>,
603 track::HasTRD<track::v001::DetectorMap>, track::HasTOF<track::v001::DetectorMap>,
604 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
605 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
606 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
607 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
608 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
609 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
610 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
611 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
612 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
613 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
614 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
615 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
616 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
617 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
618 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
619 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
620 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
621 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
624 track::TPCInnerParam, track::Flags, track::ITSClusterSizes,
625 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusPID, track::TPCNClsFindableMinusCrossedRows,
626 track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd<track::TrackTimeRes, track::Flags>, track::v001::extensions::TPCDeltaTBwd<track::TrackTimeRes, track::Flags>,
627 track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
628 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
629 track::PIDForTracking<track::Flags>,
630 track::IsPVContributor<track::Flags>,
631 track::HasITS<track::v001::DetectorMap>, track::HasTPC<track::v001::DetectorMap>,
632 track::HasTRD<track::v001::DetectorMap>, track::HasTOF<track::v001::DetectorMap>,
633 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
634 track::TPCNClsPID<track::TPCNClsFindable, track::TPCNClsFindableMinusPID>,
635 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
636 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
637 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
638 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
639 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
640 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
641 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
642 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
643 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
644 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
645 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
646 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
647 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
648 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
649 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
650 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
651 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
656 track::v001::DetectorMap);
658 track::v001::DetectorMap);
663 track::ITSSignal, track::ITSSharedClusterMap,
664 track::ITSNSharedCls<track::ITSSharedClusterMap>);
720 [](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 {
721 constexpr int8_t
m = std::numeric_limits<int8_t>::min();
722 return (cY ==
m && cZ ==
m && cSnp ==
m && cTgl ==
m && cQ2Pt ==
m && gY ==
m && gZ ==
m && gSnp ==
m && gTgl ==
m && gQ2Pt ==
m);
727 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
728 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
729 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R);
733 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
734 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
735 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
736 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
737 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
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::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>);
752 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCdEdxNorm, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
753 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
754 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
755 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
756 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
757 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
758 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
759 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
790 [](
float signed1Pt) ->
short {
return (signed1Pt > 0) ? 1 : -1; });
792 [](uint64_t mftClusterSizesAndTrackFlags) ->
bool {
return mftClusterSizesAndTrackFlags & (0x1ULL << 60); });
800 [](
float pt,
float phi) ->
float {
801 return pt * std::cos(phi);
804 [](
float pt,
float phi) ->
float {
805 return pt * std::sin(phi);
808 [](
float pt,
float tgl) ->
float {
812 [](uint32_t midBoards) ->
int {
813 return static_cast<int>(midBoards & 0xFF);
816 [](uint32_t midBoards) ->
int {
817 return static_cast<int>((midBoards >> 8) & 0xFF);
820 [](uint32_t midBoards) ->
int {
821 return static_cast<int>((midBoards >> 16) & 0xFF);
824 [](uint32_t midBoards) ->
int {
825 return static_cast<int>((midBoards >> 24) & 0xFF);
831 [](uint64_t mftClusterSizesAndTrackFlags) -> int8_t {
834 if ((mftClusterSizesAndTrackFlags >> (
layer * 6)) & 0x3F) {
860 aod::fwdtrack::sigmaX* aod::fwdtrack::sigmaX);
862 (aod::fwdtrack::rhoXY / 128.f) * (aod::fwdtrack::sigmaX * aod::fwdtrack::sigmaY));
864 aod::fwdtrack::sigmaY* aod::fwdtrack::sigmaY);
866 (aod::fwdtrack::rhoPhiX / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaX));
868 (aod::fwdtrack::rhoPhiY / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaY));
870 aod::fwdtrack::sigmaPhi* aod::fwdtrack::sigmaPhi);
872 (aod::fwdtrack::rhoTglX / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaX));
874 (aod::fwdtrack::rhoTglY / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaY));
876 (aod::fwdtrack::rhoTglPhi / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaPhi));
878 aod::fwdtrack::sigmaTgl* aod::fwdtrack::sigmaTgl);
880 (aod::fwdtrack::rho1PtY / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaY));
882 (aod::fwdtrack::rho1PtX / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaX));
884 (aod::fwdtrack::rho1PtPhi / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaPhi));
886 (aod::fwdtrack::rho1PtTgl / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaTgl));
888 aod::fwdtrack::sigma1Pt* aod::fwdtrack::sigma1Pt);
894 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
895 fwdtrack::Signed1Pt, fwdtrack::NClusters,
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);
904 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
905 fwdtrack::Signed1Pt, fwdtrack::v001::NClusters<fwdtrack::MFTClusterSizesAndTrackFlags>, fwdtrack::MFTClusterSizesAndTrackFlags, fwdtrack::IsCA<fwdtrack::MFTClusterSizesAndTrackFlags>,
906 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
907 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
908 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
909 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
910 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
935 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
936 fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd,
937 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
938 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
939 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
940 fwdtrack::Sign<fwdtrack::Signed1Pt>,
941 fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT,
942 fwdtrack::MatchScoreMCHMFT, fwdtrack::MFTTrackId, fwdtrack::MCHTrackId,
943 fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards,
944 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
952 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
953 fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
954 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
960 aod::fwdtrack::CPhiX,
961 aod::fwdtrack::CPhiY,
962 aod::fwdtrack::CPhiPhi,
963 aod::fwdtrack::CTglX,
964 aod::fwdtrack::CTglY,
965 aod::fwdtrack::CTglPhi,
966 aod::fwdtrack::CTglTgl,
967 aod::fwdtrack::C1PtX,
968 aod::fwdtrack::C1PtY,
969 aod::fwdtrack::C1PtPhi,
970 aod::fwdtrack::C1PtTgl,
971 aod::fwdtrack::C1Pt21Pt2);
978 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
979 fwdtrack::RhoXY, fwdtrack::RhoPhiX, fwdtrack::RhoPhiY, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
980 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
986 aod::fwdtrack::CPhiX,
987 aod::fwdtrack::CPhiY,
988 aod::fwdtrack::CPhiPhi,
989 aod::fwdtrack::CTglX,
990 aod::fwdtrack::CTglY,
991 aod::fwdtrack::CTglPhi,
992 aod::fwdtrack::CTglTgl,
993 aod::fwdtrack::C1PtX,
994 aod::fwdtrack::C1PtY,
995 aod::fwdtrack::C1PtPhi,
996 aod::fwdtrack::C1PtTgl,
997 aod::fwdtrack::C1Pt21Pt2);
999using MFTTrack = MFTTracks::iterator;
1005extern template struct JoinFull<
o2::aod::Hash<
"JOIN/0"_h>, aod::FwdTracks, aod::FwdTracksCov>;
1055 fwdtrkcl::FwdTrackId,
1060 fwdtrkcl::DEId<fwdtrkcl::ClInfo>,
1061 fwdtrkcl::IsGoodX<fwdtrkcl::ClInfo>,
1062 fwdtrkcl::IsGoodY<fwdtrkcl::ClInfo>);
1087 hmpid::HMPIDDistance,
1088 hmpid::HMPIDNPhotons,
1099 hmpid::HMPIDNPhotons,
1101 hmpid::HMPIDClusSize,
1103 hmpid::HMPIDPhotsCharge);
1120 calo::Time, calo::CellType, calo::CaloType);
1123namespace calotrigger
1134 calotrigger::LnAmplitude, calotrigger::TriggerBits, calotrigger::CaloType);
1145 return status & 0b00011111;
1148 return 2 + ((status & 0b01100000) >> 5);
1151 return (status & 0b01100000) >> 7;
1156 o2::soa::Index<>, cpvcluster::BCId, cpvcluster::PosX, cpvcluster::PosZ, cpvcluster::Amplitude,
1157 cpvcluster::ClusterStatus, cpvcluster::PadMult<cpvcluster::ClusterStatus>,
1158 cpvcluster::ModuleNumber<cpvcluster::ClusterStatus>, cpvcluster::IsUnfolded<cpvcluster::ClusterStatus>);
1188 [](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) ->
float {
1245 auto thisenergy = -std::numeric_limits<float>::infinity();
1246 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1255 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1257 -std::numeric_limits<float>::infinity(),
1258 -std::numeric_limits<float>::infinity(),
1259 -std::numeric_limits<float>::infinity(),
1260 -std::numeric_limits<float>::infinity()};
1274 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1276 -std::numeric_limits<float>::infinity(),
1277 -std::numeric_limits<float>::infinity(),
1278 -std::numeric_limits<float>::infinity(),
1279 -std::numeric_limits<float>::infinity()};
1280 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1293 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1295 -std::numeric_limits<float>::infinity(),
1296 -std::numeric_limits<float>::infinity(),
1297 -std::numeric_limits<float>::infinity(),
1298 -std::numeric_limits<float>::infinity()};
1299 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1312 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1314 -std::numeric_limits<float>::infinity(),
1315 -std::numeric_limits<float>::infinity(),
1316 -std::numeric_limits<float>::infinity(),
1317 -std::numeric_limits<float>::infinity()};
1318 for (uint64_t ie = 0; ie <
channelE.size(); 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];
1386 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1387 auto thistime = -std::numeric_limits<float>::infinity();
1388 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1390 thistime =
time[ie];
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;
1453 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1454 auto thisamplitude = -std::numeric_limits<float>::infinity();
1455 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1457 thisamplitude = amplitude[ie];
1461 return thisamplitude;
1467 zdc::EnergyCommonZNA, zdc::EnergyCommonZNC, zdc::EnergyCommonZPA, zdc::EnergyCommonZPC,
1468 zdc::EnergySectorZNA, zdc::EnergySectorZNC, zdc::EnergySectorZPA, zdc::EnergySectorZPC,
1469 zdc::TimeZEM1, zdc::TimeZEM2, zdc::TimeZNA, zdc::TimeZNC, zdc::TimeZPA, zdc::TimeZPC);
1473 o2::soa::Index<>, zdc::BCId, zdc::Energy, zdc::ChannelE, zdc::Amplitude, zdc::Time, zdc::ChannelT,
1474 zdc::DyEnergyZEM1<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyZEM2<zdc::ChannelE, zdc::Energy>,
1475 zdc::DyEnergyCommonZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZNC<zdc::ChannelE, zdc::Energy>,
1476 zdc::DyEnergyCommonZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZPC<zdc::ChannelE, zdc::Energy>,
1477 zdc::DyEnergySectorZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZNC<zdc::ChannelE, zdc::Energy>,
1478 zdc::DyEnergySectorZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZPC<zdc::ChannelE, zdc::Energy>,
1479 zdc::DyTimeZEM1<zdc::ChannelT, zdc::Time>, zdc::DyTimeZEM2<zdc::ChannelT, zdc::Time>,
1480 zdc::DyTimeZNA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZNC<zdc::ChannelT, zdc::Time>,
1481 zdc::DyTimeZPA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZPC<zdc::ChannelT, zdc::Time>,
1482 zdc::DyAmplitudeZEM1<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZEM2<zdc::ChannelT, zdc::Amplitude>,
1483 zdc::DyAmplitudeZNA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZNC<zdc::ChannelT, zdc::Amplitude>,
1484 zdc::DyAmplitudeZPA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZPC<zdc::ChannelT, zdc::Amplitude>);
1499 o2::soa::Index<>, fv0a::BCId, fv0a::Amplitude, fv0a::Channel, fv0a::Time, fv0a::TriggerMask);
1540 [](
float timeA) ->
bool {
1541 return timeA < 30.f;
1544 [](
float timeC) ->
bool {
1545 return timeC < 30.f;
1552 [](gsl::span<const float> vecAmpA) ->
float {
1553 return std::accumulate(vecAmpA.begin(), vecAmpA.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1556 [](gsl::span<const float> vecAmpC) ->
float {
1557 return std::accumulate(vecAmpC.begin(), vecAmpC.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1564 ft0::AmplitudeA, ft0::ChannelA, ft0::AmplitudeC, ft0::ChannelC, ft0::TimeA, ft0::TimeC,
1565 ft0::TriggerMask, ft0::PosZ<ft0::TimeA, ft0::TimeC>, ft0::CollTime<ft0::TimeA, ft0::TimeC>,
1566 ft0::IsValidTimeA<ft0::TimeA>, ft0::IsValidTimeC<ft0::TimeC>, ft0::IsValidTime<ft0::TimeA, ft0::TimeC>,
1567 ft0::SumAmpA<ft0::AmplitudeA>, ft0::SumAmpC<ft0::AmplitudeC>);
1572 ft0::TimeFT0A, ft0::TimeFT0C);
1594 fdd::AmplitudeA, fdd::AmplitudeC,
1595 fdd::TimeA, fdd::TimeC,
1601 fdd::ChargeA, fdd::ChargeC,
1602 fdd::TimeA, fdd::TimeC,
1610 fdd::TimeFDDA, fdd::TimeFDDC);
1621 [](uint8_t V0Type) ->
bool {
return V0Type == 1; });
1623 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 1); });
1625 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 2); });
1631 v0::PosTrackId, v0::NegTrackId);
1634 v0::PosTrackId, v0::NegTrackId);
1637 v0::PosTrackId, v0::NegTrackId,
1639 v0::IsStandardV0<v0::V0Type>,
1640 v0::IsPhotonV0<v0::V0Type>,
1641 v0::IsCollinearV0<v0::V0Type>);
1656 o2::soa::Index<>, cascade::CollisionId, cascade::V0Id, cascade::BachelorId);
1670 o2::soa::Index<>, decay3body::CollisionId, decay3body::Track0Id, decay3body::Track1Id, decay3body::Track2Id);
1675namespace strangenesstracking
1699 strangenesstracking::TrackId,
1700 strangenesstracking::ITSTrackId,
1701 strangenesstracking::CascadeId,
1702 strangenesstracking::DecayX,
1703 strangenesstracking::DecayY,
1704 strangenesstracking::DecayZ,
1705 strangenesstracking::XiMass,
1706 strangenesstracking::OmegaMass,
1707 strangenesstracking::MatchingChi2,
1708 strangenesstracking::TopologyChi2,
1709 strangenesstracking::ITSclsSize);
1713 strangenesstracking::TrackId,
1714 strangenesstracking::ITSTrackId,
1715 strangenesstracking::V0Id,
1716 strangenesstracking::DecayX,
1717 strangenesstracking::DecayY,
1718 strangenesstracking::DecayZ,
1719 strangenesstracking::H3Lmass,
1720 strangenesstracking::H4Lmass,
1721 strangenesstracking::MatchingChi2,
1722 strangenesstracking::TopologyChi2,
1723 strangenesstracking::ITSclsSize);
1727 strangenesstracking::TrackId,
1728 strangenesstracking::ITSTrackId,
1729 strangenesstracking::Decay3BodyId,
1730 strangenesstracking::DecayX,
1731 strangenesstracking::DecayY,
1732 strangenesstracking::DecayZ,
1733 strangenesstracking::H3Lmass,
1734 strangenesstracking::He4Lmass,
1735 strangenesstracking::MatchingChi2,
1736 strangenesstracking::TopologyChi2,
1737 strangenesstracking::ITSclsSize);
1812 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1813 run2::SPDClustersL0, run2::SPDClustersL1,
1814 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1815 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1816 run2::V0TriggerChargeA, run2::V0TriggerChargeC);
1820 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1821 run2::SPDClustersL0, run2::SPDClustersL1,
1822 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1823 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1824 run2::V0TriggerChargeA, run2::V0TriggerChargeC,
1825 run2::NTPCClusters, run2::NSDDSSDClusters);
1832 run2::oftv0::CollisionId, run2::oftv0::PosTrackId, run2::oftv0::NegTrackId,
1833 run2::oftv0::Px, run2::oftv0::Py, run2::oftv0::Pz, run2::oftv0::E,
1834 run2::oftv0::Qt, run2::oftv0::Alpha,
1835 run2::oftv0::X, run2::oftv0::Y, run2::oftv0::Z,
1836 run2::oftv0::Chi2NDF, run2::oftv0::PsiPair,
1837 run2::oftv0::DCAr, run2::oftv0::DCAz,
1838 run2::oftv0::MassInMeV);
1844 run2::pmd::Z, run2::pmd::CluADC, run2::pmd::CluPID, run2::pmd::Det,
1845 run2::pmd::Ncell, run2::pmd::Smn, run2::pmd::TrackNo, run2::pmd::TrackPid,
1846 run2::pmd::SigX, run2::pmd::SigY, run2::pmd::ClMatching);
1851namespace mccollision
1873 mccollision::GeneratorsID,
1874 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1875 mccollision::T, mccollision::Weight,
1876 mccollision::ImpactParameter,
1877 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1878 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1879 mccollision::GetSourceId<mccollision::GeneratorsID>);
1882 mccollision::GeneratorsID,
1883 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1884 mccollision::T, mccollision::Weight,
1885 mccollision::ImpactParameter,
1886 mccollision::EventPlaneAngle,
1887 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1888 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1889 mccollision::GetSourceId<mccollision::GeneratorsID>);
1928 [](
float px,
float py,
float pz) -> std::array<float, 3> {
return std::array<float, 3>{px, py, pz}; });
1933 ifnode((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1934 aod::mcparticle::py * aod::mcparticle::py +
1935 aod::mcparticle::pz * aod::mcparticle::pz) -
1936 aod::mcparticle::pz) <
static_cast<float>(1e-7),
1937 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1938 0.5f * nlog((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1939 aod::mcparticle::py * aod::mcparticle::py +
1940 aod::mcparticle::pz * aod::mcparticle::pz) +
1941 aod::mcparticle::pz) /
1942 (nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1943 aod::mcparticle::py * aod::mcparticle::py +
1944 aod::mcparticle::pz * aod::mcparticle::pz) -
1945 aod::mcparticle::pz))));
1947 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1948 aod::mcparticle::py * aod::mcparticle::py));
1950 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1951 aod::mcparticle::py * aod::mcparticle::py +
1952 aod::mcparticle::pz * aod::mcparticle::pz));
1954 ifnode((aod::mcparticle::e - aod::mcparticle::pz) <
static_cast<float>(1e-7),
1955 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1956 0.5f * nlog((aod::mcparticle::e + aod::mcparticle::pz) /
1957 (aod::mcparticle::e - aod::mcparticle::pz))));
1962 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1963 mcparticle::Mother0Id, mcparticle::Mother1Id,
1964 mcparticle::Daughter0Id, mcparticle::Daughter1Id, mcparticle::Weight,
1965 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1966 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1967 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1968 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1969 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1970 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1971 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1972 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1973 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
1977 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1978 mcparticle::MothersIds, mcparticle::DaughtersIdSlice, mcparticle::Weight,
1979 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1980 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1981 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1982 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1983 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1984 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1985 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1986 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1987 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
2027namespace mctracklabel
2034 mctracklabel::McParticleId, mctracklabel::McMask);
2037namespace mcmfttracklabel
2044 mcmfttracklabel::McParticleId, mcmfttracklabel::McMask);
2047namespace mcfwdtracklabel
2054 mcfwdtracklabel::McParticleId, mcfwdtracklabel::McMask);
2057namespace mccalolabel
2066 mccalolabel::McParticleId, mccalolabel::McMask);
2068 mccalolabel::McParticleIds, mccalolabel::AmplitudeA);
2072namespace mccollisionlabel
2079 mccollisionlabel::McCollisionId, mccollisionlabel::McMask);
2083namespace hepmcxsection
2097 o2::soa::Index<>, hepmcxsection::McCollisionId, hepmcxsection::GeneratorsID,
2098 hepmcxsection::Accepted, hepmcxsection::Attempted, hepmcxsection::XsectGen,
2099 hepmcxsection::XsectErr, hepmcxsection::PtHard, hepmcxsection::NMPI, hepmcxsection::ProcessId);
2102namespace hepmcpdfinfo
2119 hepmcpdfinfo::Id1, hepmcpdfinfo::Id2,
2120 hepmcpdfinfo::PdfId1, hepmcpdfinfo::PdfId2,
2121 hepmcpdfinfo::X1, hepmcpdfinfo::X2,
2122 hepmcpdfinfo::ScalePdf, hepmcpdfinfo::Pdf1, hepmcpdfinfo::Pdf2);
2125namespace hepmcheavyion
2146 o2::soa::Index<>, hepmcheavyion::McCollisionId, hepmcheavyion::GeneratorsID,
2147 hepmcheavyion::NcollHard, hepmcheavyion::NpartProj, hepmcheavyion::NpartTarg,
2148 hepmcheavyion::Ncoll, hepmcheavyion::NNwoundedCollisions, hepmcheavyion::NwoundedNCollisions,
2149 hepmcheavyion::NwoundedNwoundedCollisions, hepmcheavyion::SpectatorNeutrons,
2150 hepmcheavyion::SpectatorProtons, hepmcheavyion::ImpactParameter, hepmcheavyion::EventPlaneAngle,
2151 hepmcheavyion::Eccentricity, hepmcheavyion::SigmaInelNN, hepmcheavyion::Centrality);
2169#define INDEX_LIST_RUN2 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId
2173#define INDEX_LIST_RUN3 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId
2179 indices::BCId, indices::CollisionId);
2181 indices::BCId, indices::CollisionId);
2184 indices::BCId, indices::CollisionIds);
2186 indices::BCId, indices::CollisionIds);
2189 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2191 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2194 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