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::TRDHasCrossing<track::TRDPattern>, track::TRDHasNeighbor<track::TRDPattern>, track::TRDNTracklets<track::TRDPattern>,
593 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
596 track::TPCInnerParam, track::Flags, track::ITSClusterSizes,
597 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows,
598 track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd<track::TrackTimeRes, track::Flags>, track::v001::extensions::TPCDeltaTBwd<track::TrackTimeRes, track::Flags>,
599 track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
600 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
601 track::PIDForTracking<track::Flags>,
602 track::IsPVContributor<track::Flags>,
603 track::HasITS<track::v001::DetectorMap>, track::HasTPC<track::v001::DetectorMap>,
604 track::HasTRD<track::v001::DetectorMap>, track::HasTOF<track::v001::DetectorMap>,
605 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
606 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
607 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
608 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
609 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
610 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
611 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
612 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
613 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
614 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
615 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
616 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
617 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
618 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
619 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
620 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
621 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
622 track::TRDHasCrossing<track::TRDPattern>, track::TRDHasNeighbor<track::TRDPattern>, track::TRDNTracklets<track::TRDPattern>,
623 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
626 track::TPCInnerParam, track::Flags, track::ITSClusterSizes,
627 track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusPID, track::TPCNClsFindableMinusCrossedRows,
628 track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd<track::TrackTimeRes, track::Flags>, track::v001::extensions::TPCDeltaTBwd<track::TrackTimeRes, track::Flags>,
629 track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2,
630 track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom,
631 track::PIDForTracking<track::Flags>,
632 track::IsPVContributor<track::Flags>,
633 track::HasITS<track::v001::DetectorMap>, track::HasTPC<track::v001::DetectorMap>,
634 track::HasTRD<track::v001::DetectorMap>, track::HasTOF<track::v001::DetectorMap>,
635 track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
636 track::TPCNClsPID<track::TPCNClsFindable, track::TPCNClsFindableMinusPID>,
637 track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
638 track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
639 track::v001::ITSClsSizeInLayer<track::ITSClusterSizes>,
640 track::v001::IsITSAfterburner<track::v001::DetectorMap, track::ITSChi2NCl>,
641 track::TOFExpTimeEl<track::Length, track::TOFExpMom>,
642 track::TOFExpTimeMu<track::Length, track::TOFExpMom>,
643 track::TOFExpTimePi<track::Length, track::TOFExpMom>,
644 track::TOFExpTimeKa<track::Length, track::TOFExpMom>,
645 track::TOFExpTimePr<track::Length, track::TOFExpMom>,
646 track::TOFExpTimeDe<track::Length, track::TOFExpMom>,
647 track::TOFExpTimeTr<track::Length, track::TOFExpMom>,
648 track::TOFExpTimeHe<track::Length, track::TOFExpMom>,
649 track::TOFExpTimeAl<track::Length, track::TOFExpMom>,
650 track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
651 track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
652 track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
653 track::TRDHasCrossing<track::TRDPattern>, track::TRDHasNeighbor<track::TRDPattern>, track::TRDNTracklets<track::TRDPattern>,
654 track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes);
659 track::v001::DetectorMap);
661 track::v001::DetectorMap);
666 track::ITSSignal, track::ITSSharedClusterMap,
667 track::ITSNSharedCls<track::ITSSharedClusterMap>);
723 [](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 {
724 constexpr int8_t
m = std::numeric_limits<int8_t>::min();
725 return (cY ==
m && cZ ==
m && cSnp ==
m && cTgl ==
m && cQ2Pt ==
m && gY ==
m && gZ ==
m && gSnp ==
m && gTgl ==
m && gQ2Pt ==
m);
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);
736 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
737 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
738 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
739 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
740 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
741 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
742 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
745 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
746 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
747 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
748 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
749 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
750 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
751 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
752 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
755 o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCdEdxNorm, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask,
756 trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R,
757 trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R,
758 trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
759 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt,
760 trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ,
761 trackqa::IsDummy<trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt,
762 trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt>);
793 [](
float signed1Pt) ->
short {
return (signed1Pt > 0) ? 1 : -1; });
795 [](uint64_t mftClusterSizesAndTrackFlags) ->
bool {
return mftClusterSizesAndTrackFlags & (0x1ULL << 60); });
803 [](
float pt,
float phi) ->
float {
804 return pt * std::cos(phi);
807 [](
float pt,
float phi) ->
float {
808 return pt * std::sin(phi);
811 [](
float pt,
float tgl) ->
float {
815 [](uint32_t midBoards) ->
int {
816 return static_cast<int>(midBoards & 0xFF);
819 [](uint32_t midBoards) ->
int {
820 return static_cast<int>((midBoards >> 8) & 0xFF);
823 [](uint32_t midBoards) ->
int {
824 return static_cast<int>((midBoards >> 16) & 0xFF);
827 [](uint32_t midBoards) ->
int {
828 return static_cast<int>((midBoards >> 24) & 0xFF);
834 [](uint64_t mftClusterSizesAndTrackFlags) -> int8_t {
837 if ((mftClusterSizesAndTrackFlags >> (
layer * 6)) & 0x3F) {
863 aod::fwdtrack::sigmaX* aod::fwdtrack::sigmaX);
865 (aod::fwdtrack::rhoXY / 128.f) * (aod::fwdtrack::sigmaX * aod::fwdtrack::sigmaY));
867 aod::fwdtrack::sigmaY* aod::fwdtrack::sigmaY);
869 (aod::fwdtrack::rhoPhiX / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaX));
871 (aod::fwdtrack::rhoPhiY / 128.f) * (aod::fwdtrack::sigmaPhi * aod::fwdtrack::sigmaY));
873 aod::fwdtrack::sigmaPhi* aod::fwdtrack::sigmaPhi);
875 (aod::fwdtrack::rhoTglX / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaX));
877 (aod::fwdtrack::rhoTglY / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaY));
879 (aod::fwdtrack::rhoTglPhi / 128.f) * (aod::fwdtrack::sigmaTgl * aod::fwdtrack::sigmaPhi));
881 aod::fwdtrack::sigmaTgl* aod::fwdtrack::sigmaTgl);
883 (aod::fwdtrack::rho1PtY / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaY));
885 (aod::fwdtrack::rho1PtX / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaX));
887 (aod::fwdtrack::rho1PtPhi / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaPhi));
889 (aod::fwdtrack::rho1PtTgl / 128.f) * (aod::fwdtrack::sigma1Pt * aod::fwdtrack::sigmaTgl));
891 aod::fwdtrack::sigma1Pt* aod::fwdtrack::sigma1Pt);
897 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
898 fwdtrack::Signed1Pt, fwdtrack::NClusters,
899 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
900 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
901 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
902 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
903 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
907 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
908 fwdtrack::Signed1Pt, fwdtrack::v001::NClusters<fwdtrack::MFTClusterSizesAndTrackFlags>, fwdtrack::MFTClusterSizesAndTrackFlags, fwdtrack::IsCA<fwdtrack::MFTClusterSizesAndTrackFlags>,
909 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
910 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
911 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
912 fwdtrack::Sign<fwdtrack::Signed1Pt>, fwdtrack::Chi2,
913 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
938 fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl,
939 fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd,
940 fwdtrack::Px<fwdtrack::Pt, fwdtrack::Phi>,
941 fwdtrack::Py<fwdtrack::Pt, fwdtrack::Phi>,
942 fwdtrack::Pz<fwdtrack::Pt, fwdtrack::Tgl>,
943 fwdtrack::Sign<fwdtrack::Signed1Pt>,
944 fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT,
945 fwdtrack::MatchScoreMCHMFT, fwdtrack::MFTTrackId, fwdtrack::MCHTrackId,
946 fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards,
947 fwdtrack::TrackTime, fwdtrack::TrackTimeRes);
955 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
956 fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
957 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
963 aod::fwdtrack::CPhiX,
964 aod::fwdtrack::CPhiY,
965 aod::fwdtrack::CPhiPhi,
966 aod::fwdtrack::CTglX,
967 aod::fwdtrack::CTglY,
968 aod::fwdtrack::CTglPhi,
969 aod::fwdtrack::CTglTgl,
970 aod::fwdtrack::C1PtX,
971 aod::fwdtrack::C1PtY,
972 aod::fwdtrack::C1PtPhi,
973 aod::fwdtrack::C1PtTgl,
974 aod::fwdtrack::C1Pt21Pt2);
981 fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt,
982 fwdtrack::RhoXY, fwdtrack::RhoPhiX, fwdtrack::RhoPhiY, fwdtrack::RhoTglX, fwdtrack::RhoTglY,
983 fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl);
989 aod::fwdtrack::CPhiX,
990 aod::fwdtrack::CPhiY,
991 aod::fwdtrack::CPhiPhi,
992 aod::fwdtrack::CTglX,
993 aod::fwdtrack::CTglY,
994 aod::fwdtrack::CTglPhi,
995 aod::fwdtrack::CTglTgl,
996 aod::fwdtrack::C1PtX,
997 aod::fwdtrack::C1PtY,
998 aod::fwdtrack::C1PtPhi,
999 aod::fwdtrack::C1PtTgl,
1000 aod::fwdtrack::C1Pt21Pt2);
1002using MFTTrack = MFTTracks::iterator;
1008extern template struct JoinFull<
o2::aod::Hash<
"JOIN/0"_h>, aod::FwdTracks, aod::FwdTracksCov>;
1058 fwdtrkcl::FwdTrackId,
1063 fwdtrkcl::DEId<fwdtrkcl::ClInfo>,
1064 fwdtrkcl::IsGoodX<fwdtrkcl::ClInfo>,
1065 fwdtrkcl::IsGoodY<fwdtrkcl::ClInfo>);
1090 hmpid::HMPIDDistance,
1091 hmpid::HMPIDNPhotons,
1102 hmpid::HMPIDNPhotons,
1104 hmpid::HMPIDClusSize,
1106 hmpid::HMPIDPhotsCharge);
1123 calo::Time, calo::CellType, calo::CaloType);
1126namespace calotrigger
1137 calotrigger::LnAmplitude, calotrigger::TriggerBits, calotrigger::CaloType);
1148 return status & 0b00011111;
1151 return 2 + ((status & 0b01100000) >> 5);
1154 return (status & 0b01100000) >> 7;
1159 o2::soa::Index<>, cpvcluster::BCId, cpvcluster::PosX, cpvcluster::PosZ, cpvcluster::Amplitude,
1160 cpvcluster::ClusterStatus, cpvcluster::PadMult<cpvcluster::ClusterStatus>,
1161 cpvcluster::ModuleNumber<cpvcluster::ClusterStatus>, cpvcluster::IsUnfolded<cpvcluster::ClusterStatus>);
1191 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1193 auto thisenergy = -std::numeric_limits<float>::infinity();
1194 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1203 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1204 auto thisenergy = -std::numeric_limits<float>::infinity();
1205 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1214 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1215 auto thisenergy = -std::numeric_limits<float>::infinity();
1216 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1225 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1226 auto thisenergy = -std::numeric_limits<float>::infinity();
1227 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1236 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1237 auto thisenergy = -std::numeric_limits<float>::infinity();
1238 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1247 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) ->
float {
1248 auto thisenergy = -std::numeric_limits<float>::infinity();
1249 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1258 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1260 -std::numeric_limits<float>::infinity(),
1261 -std::numeric_limits<float>::infinity(),
1262 -std::numeric_limits<float>::infinity(),
1263 -std::numeric_limits<float>::infinity()};
1277 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1279 -std::numeric_limits<float>::infinity(),
1280 -std::numeric_limits<float>::infinity(),
1281 -std::numeric_limits<float>::infinity(),
1282 -std::numeric_limits<float>::infinity()};
1283 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1296 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1298 -std::numeric_limits<float>::infinity(),
1299 -std::numeric_limits<float>::infinity(),
1300 -std::numeric_limits<float>::infinity(),
1301 -std::numeric_limits<float>::infinity()};
1302 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1315 [](gsl::span<const uint8_t>
channelE, gsl::span<const float> energy) -> std::array<float, 4> {
1317 -std::numeric_limits<float>::infinity(),
1318 -std::numeric_limits<float>::infinity(),
1319 -std::numeric_limits<float>::infinity(),
1320 -std::numeric_limits<float>::infinity()};
1321 for (uint64_t ie = 0; ie <
channelE.size(); ie++) {
1334 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1335 auto thistime = -std::numeric_limits<float>::infinity();
1336 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1338 thistime =
time[ie];
1345 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1346 auto thistime = -std::numeric_limits<float>::infinity();
1347 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1349 thistime =
time[ie];
1356 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1357 auto thistime = -std::numeric_limits<float>::infinity();
1358 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1360 thistime =
time[ie];
1367 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1368 auto thistime = -std::numeric_limits<float>::infinity();
1369 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1371 thistime =
time[ie];
1378 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1379 auto thistime = -std::numeric_limits<float>::infinity();
1380 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1382 thistime =
time[ie];
1389 [](gsl::span<const uint8_t> channelT, gsl::span<const float>
time) ->
float {
1390 auto thistime = -std::numeric_limits<float>::infinity();
1391 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1393 thistime =
time[ie];
1401 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1402 auto thisamplitude = -std::numeric_limits<float>::infinity();
1403 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1405 thisamplitude = amplitude[ie];
1409 return thisamplitude;
1412 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1413 auto thisamplitude = -std::numeric_limits<float>::infinity();
1414 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1416 thisamplitude = amplitude[ie];
1420 return thisamplitude;
1423 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1424 auto thisamplitude = -std::numeric_limits<float>::infinity();
1425 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1427 thisamplitude = amplitude[ie];
1431 return thisamplitude;
1434 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1435 auto thisamplitude = -std::numeric_limits<float>::infinity();
1436 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1438 thisamplitude = amplitude[ie];
1442 return thisamplitude;
1445 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1446 auto thisamplitude = -std::numeric_limits<float>::infinity();
1447 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1449 thisamplitude = amplitude[ie];
1453 return thisamplitude;
1456 [](gsl::span<const uint8_t> channelT, gsl::span<const float> amplitude) ->
float {
1457 auto thisamplitude = -std::numeric_limits<float>::infinity();
1458 for (uint64_t ie = 0; ie < channelT.size(); ie++) {
1460 thisamplitude = amplitude[ie];
1464 return thisamplitude;
1470 zdc::EnergyCommonZNA, zdc::EnergyCommonZNC, zdc::EnergyCommonZPA, zdc::EnergyCommonZPC,
1471 zdc::EnergySectorZNA, zdc::EnergySectorZNC, zdc::EnergySectorZPA, zdc::EnergySectorZPC,
1472 zdc::TimeZEM1, zdc::TimeZEM2, zdc::TimeZNA, zdc::TimeZNC, zdc::TimeZPA, zdc::TimeZPC);
1476 o2::soa::Index<>, zdc::BCId, zdc::Energy, zdc::ChannelE, zdc::Amplitude, zdc::Time, zdc::ChannelT,
1477 zdc::DyEnergyZEM1<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyZEM2<zdc::ChannelE, zdc::Energy>,
1478 zdc::DyEnergyCommonZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZNC<zdc::ChannelE, zdc::Energy>,
1479 zdc::DyEnergyCommonZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergyCommonZPC<zdc::ChannelE, zdc::Energy>,
1480 zdc::DyEnergySectorZNA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZNC<zdc::ChannelE, zdc::Energy>,
1481 zdc::DyEnergySectorZPA<zdc::ChannelE, zdc::Energy>, zdc::DyEnergySectorZPC<zdc::ChannelE, zdc::Energy>,
1482 zdc::DyTimeZEM1<zdc::ChannelT, zdc::Time>, zdc::DyTimeZEM2<zdc::ChannelT, zdc::Time>,
1483 zdc::DyTimeZNA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZNC<zdc::ChannelT, zdc::Time>,
1484 zdc::DyTimeZPA<zdc::ChannelT, zdc::Time>, zdc::DyTimeZPC<zdc::ChannelT, zdc::Time>,
1485 zdc::DyAmplitudeZEM1<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZEM2<zdc::ChannelT, zdc::Amplitude>,
1486 zdc::DyAmplitudeZNA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZNC<zdc::ChannelT, zdc::Amplitude>,
1487 zdc::DyAmplitudeZPA<zdc::ChannelT, zdc::Amplitude>, zdc::DyAmplitudeZPC<zdc::ChannelT, zdc::Amplitude>);
1502 o2::soa::Index<>, fv0a::BCId, fv0a::Amplitude, fv0a::Channel, fv0a::Time, fv0a::TriggerMask);
1543 [](
float timeA) ->
bool {
1544 return timeA < 30.f;
1547 [](
float timeC) ->
bool {
1548 return timeC < 30.f;
1555 [](gsl::span<const float> vecAmpA) ->
float {
1556 return std::accumulate(vecAmpA.begin(), vecAmpA.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1559 [](gsl::span<const float> vecAmpC) ->
float {
1560 return std::accumulate(vecAmpC.begin(), vecAmpC.end(), 0.f, [](
auto&&
sum,
auto&& curr) { return sum + (curr > 0 ? curr : 0); });
1567 ft0::AmplitudeA, ft0::ChannelA, ft0::AmplitudeC, ft0::ChannelC, ft0::TimeA, ft0::TimeC,
1568 ft0::TriggerMask, ft0::PosZ<ft0::TimeA, ft0::TimeC>, ft0::CollTime<ft0::TimeA, ft0::TimeC>,
1569 ft0::IsValidTimeA<ft0::TimeA>, ft0::IsValidTimeC<ft0::TimeC>, ft0::IsValidTime<ft0::TimeA, ft0::TimeC>,
1570 ft0::SumAmpA<ft0::AmplitudeA>, ft0::SumAmpC<ft0::AmplitudeC>);
1575 ft0::TimeFT0A, ft0::TimeFT0C);
1597 fdd::AmplitudeA, fdd::AmplitudeC,
1598 fdd::TimeA, fdd::TimeC,
1604 fdd::ChargeA, fdd::ChargeC,
1605 fdd::TimeA, fdd::TimeC,
1613 fdd::TimeFDDA, fdd::TimeFDDC);
1631 trd::TRDQ0s, trd::TRDQ1s, trd::TRDQ2s,
1632 trd::TRDQ0sCorrected, trd::TRDQ1sCorrected, trd::TRDQ2sCorrected,
1633 trd::TRDTgls, trd::TRDPhis);
1644 [](uint8_t V0Type) ->
bool {
return V0Type == 1; });
1646 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 1); });
1648 [](uint8_t V0Type) ->
bool {
return V0Type & (1 << 2); });
1654 v0::PosTrackId, v0::NegTrackId);
1657 v0::PosTrackId, v0::NegTrackId);
1660 v0::PosTrackId, v0::NegTrackId,
1662 v0::IsStandardV0<v0::V0Type>,
1663 v0::IsPhotonV0<v0::V0Type>,
1664 v0::IsCollinearV0<v0::V0Type>);
1679 o2::soa::Index<>, cascade::CollisionId, cascade::V0Id, cascade::BachelorId);
1693 o2::soa::Index<>, decay3body::CollisionId, decay3body::Track0Id, decay3body::Track1Id, decay3body::Track2Id);
1698namespace strangenesstracking
1722 strangenesstracking::TrackId,
1723 strangenesstracking::ITSTrackId,
1724 strangenesstracking::CascadeId,
1725 strangenesstracking::DecayX,
1726 strangenesstracking::DecayY,
1727 strangenesstracking::DecayZ,
1728 strangenesstracking::XiMass,
1729 strangenesstracking::OmegaMass,
1730 strangenesstracking::MatchingChi2,
1731 strangenesstracking::TopologyChi2,
1732 strangenesstracking::ITSclsSize);
1736 strangenesstracking::TrackId,
1737 strangenesstracking::ITSTrackId,
1738 strangenesstracking::V0Id,
1739 strangenesstracking::DecayX,
1740 strangenesstracking::DecayY,
1741 strangenesstracking::DecayZ,
1742 strangenesstracking::H3Lmass,
1743 strangenesstracking::H4Lmass,
1744 strangenesstracking::MatchingChi2,
1745 strangenesstracking::TopologyChi2,
1746 strangenesstracking::ITSclsSize);
1750 strangenesstracking::TrackId,
1751 strangenesstracking::ITSTrackId,
1752 strangenesstracking::Decay3BodyId,
1753 strangenesstracking::DecayX,
1754 strangenesstracking::DecayY,
1755 strangenesstracking::DecayZ,
1756 strangenesstracking::H3Lmass,
1757 strangenesstracking::He4Lmass,
1758 strangenesstracking::MatchingChi2,
1759 strangenesstracking::TopologyChi2,
1760 strangenesstracking::ITSclsSize);
1835 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1836 run2::SPDClustersL0, run2::SPDClustersL1,
1837 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1838 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1839 run2::V0TriggerChargeA, run2::V0TriggerChargeC);
1843 run2::TriggerMaskNext50, run2::L0TriggerInputMask,
1844 run2::SPDClustersL0, run2::SPDClustersL1,
1845 run2::SPDFiredChipsL0, run2::SPDFiredChipsL1,
1846 run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1,
1847 run2::V0TriggerChargeA, run2::V0TriggerChargeC,
1848 run2::NTPCClusters, run2::NSDDSSDClusters);
1855 run2::oftv0::CollisionId, run2::oftv0::PosTrackId, run2::oftv0::NegTrackId,
1856 run2::oftv0::Px, run2::oftv0::Py, run2::oftv0::Pz, run2::oftv0::E,
1857 run2::oftv0::Qt, run2::oftv0::Alpha,
1858 run2::oftv0::X, run2::oftv0::Y, run2::oftv0::Z,
1859 run2::oftv0::Chi2NDF, run2::oftv0::PsiPair,
1860 run2::oftv0::DCAr, run2::oftv0::DCAz,
1861 run2::oftv0::MassInMeV);
1867 run2::pmd::Z, run2::pmd::CluADC, run2::pmd::CluPID, run2::pmd::Det,
1868 run2::pmd::Ncell, run2::pmd::Smn, run2::pmd::TrackNo, run2::pmd::TrackPid,
1869 run2::pmd::SigX, run2::pmd::SigY, run2::pmd::ClMatching);
1874namespace mccollision
1896 mccollision::GeneratorsID,
1897 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1898 mccollision::T, mccollision::Weight,
1899 mccollision::ImpactParameter,
1900 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1901 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1902 mccollision::GetSourceId<mccollision::GeneratorsID>);
1905 mccollision::GeneratorsID,
1906 mccollision::PosX, mccollision::PosY, mccollision::PosZ,
1907 mccollision::T, mccollision::Weight,
1908 mccollision::ImpactParameter,
1909 mccollision::EventPlaneAngle,
1910 mccollision::GetGeneratorId<mccollision::GeneratorsID>,
1911 mccollision::GetSubGeneratorId<mccollision::GeneratorsID>,
1912 mccollision::GetSourceId<mccollision::GeneratorsID>);
1951 [](
float px,
float py,
float pz) -> std::array<float, 3> {
return std::array<float, 3>{px, py, pz}; });
1956 ifnode((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1957 aod::mcparticle::py * aod::mcparticle::py +
1958 aod::mcparticle::pz * aod::mcparticle::pz) -
1959 aod::mcparticle::pz) <
static_cast<float>(1e-7),
1960 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1961 0.5f * nlog((nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1962 aod::mcparticle::py * aod::mcparticle::py +
1963 aod::mcparticle::pz * aod::mcparticle::pz) +
1964 aod::mcparticle::pz) /
1965 (nsqrt(aod::mcparticle::px * aod::mcparticle::px +
1966 aod::mcparticle::py * aod::mcparticle::py +
1967 aod::mcparticle::pz * aod::mcparticle::pz) -
1968 aod::mcparticle::pz))));
1970 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1971 aod::mcparticle::py * aod::mcparticle::py));
1973 nsqrt(aod::mcparticle::px* aod::mcparticle::px +
1974 aod::mcparticle::py * aod::mcparticle::py +
1975 aod::mcparticle::pz * aod::mcparticle::pz));
1977 ifnode((aod::mcparticle::e - aod::mcparticle::pz) <
static_cast<float>(1e-7),
1978 ifnode(aod::mcparticle::pz < 0.f, -100.f, 100.f),
1979 0.5f * nlog((aod::mcparticle::e + aod::mcparticle::pz) /
1980 (aod::mcparticle::e - aod::mcparticle::pz))));
1985 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
1986 mcparticle::Mother0Id, mcparticle::Mother1Id,
1987 mcparticle::Daughter0Id, mcparticle::Daughter1Id, mcparticle::Weight,
1988 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
1989 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
1990 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
1991 mcparticle::ProducedByGenerator<mcparticle::Flags>,
1992 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
1993 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1994 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
1995 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
1996 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
2000 mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags,
2001 mcparticle::MothersIds, mcparticle::DaughtersIdSlice, mcparticle::Weight,
2002 mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E,
2003 mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt,
2004 mcparticle::PVector<mcparticle::Px, mcparticle::Py, mcparticle::Pz>,
2005 mcparticle::ProducedByGenerator<mcparticle::Flags>,
2006 mcparticle::FromBackgroundEvent<mcparticle::Flags>,
2007 mcparticle::GetGenStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
2008 mcparticle::GetHepMCStatusCode<mcparticle::Flags, mcparticle::StatusCode>,
2009 mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
2010 mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
2050namespace mctracklabel
2057 mctracklabel::McParticleId, mctracklabel::McMask);
2060namespace mcmfttracklabel
2067 mcmfttracklabel::McParticleId, mcmfttracklabel::McMask);
2070namespace mcfwdtracklabel
2077 mcfwdtracklabel::McParticleId, mcfwdtracklabel::McMask);
2080namespace mccalolabel
2089 mccalolabel::McParticleId, mccalolabel::McMask);
2091 mccalolabel::McParticleIds, mccalolabel::AmplitudeA);
2095namespace mccollisionlabel
2102 mccollisionlabel::McCollisionId, mccollisionlabel::McMask);
2106namespace hepmcxsection
2120 o2::soa::Index<>, hepmcxsection::McCollisionId, hepmcxsection::GeneratorsID,
2121 hepmcxsection::Accepted, hepmcxsection::Attempted, hepmcxsection::XsectGen,
2122 hepmcxsection::XsectErr, hepmcxsection::PtHard, hepmcxsection::NMPI, hepmcxsection::ProcessId);
2125namespace hepmcpdfinfo
2142 hepmcpdfinfo::Id1, hepmcpdfinfo::Id2,
2143 hepmcpdfinfo::PdfId1, hepmcpdfinfo::PdfId2,
2144 hepmcpdfinfo::X1, hepmcpdfinfo::X2,
2145 hepmcpdfinfo::ScalePdf, hepmcpdfinfo::Pdf1, hepmcpdfinfo::Pdf2);
2148namespace hepmcheavyion
2169 o2::soa::Index<>, hepmcheavyion::McCollisionId, hepmcheavyion::GeneratorsID,
2170 hepmcheavyion::NcollHard, hepmcheavyion::NpartProj, hepmcheavyion::NpartTarg,
2171 hepmcheavyion::Ncoll, hepmcheavyion::NNwoundedCollisions, hepmcheavyion::NwoundedNCollisions,
2172 hepmcheavyion::NwoundedNwoundedCollisions, hepmcheavyion::SpectatorNeutrons,
2173 hepmcheavyion::SpectatorProtons, hepmcheavyion::ImpactParameter, hepmcheavyion::EventPlaneAngle,
2174 hepmcheavyion::Eccentricity, hepmcheavyion::SigmaInelNN, hepmcheavyion::Centrality);
2192#define INDEX_LIST_RUN2 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId
2196#define INDEX_LIST_RUN3 indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId
2202 indices::BCId, indices::CollisionId);
2204 indices::BCId, indices::CollisionId);
2207 indices::BCId, indices::CollisionIds);
2209 indices::BCId, indices::CollisionIds);
2212 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2214 indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId);
2217 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
TRDsExtra::iterator TRDExtra
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