Skip to content

Commit 5e9501e

Browse files
authored
Merge branch 'AliceO2Group:master' into pwglf-antitriton
2 parents 3541710 + 76ce3c0 commit 5e9501e

109 files changed

Lines changed: 13589 additions & 5131 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ALICE3/DataModel/OTFStrangeness.h

Lines changed: 147 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ DECLARE_SOA_COLUMN(CascRadius, cascRadius, float);
5353
DECLARE_SOA_COLUMN(CascRadiusMC, cascRadiusMC, float);
5454
DECLARE_SOA_COLUMN(MLambda, mLambda, float);
5555
DECLARE_SOA_COLUMN(MXi, mXi, float);
56-
DECLARE_SOA_COLUMN(DCAXYCascToPV, dcaXYCascToPV, float);
57-
DECLARE_SOA_COLUMN(DCAZCascToPV, dcaZCascToPV, float);
56+
DECLARE_SOA_COLUMN(DcaXYCascToPV, dcaXYCascToPV, float);
57+
DECLARE_SOA_COLUMN(DcaZCascToPV, dcaZCascToPV, float);
5858

5959
// strangeness tracking
6060
DECLARE_SOA_COLUMN(FindableClusters, findableClusters, int);
@@ -77,8 +77,8 @@ DECLARE_SOA_TABLE(UpgradeCascades, "AOD", "UPGRADECASCADES",
7777
otfcascade::MXi,
7878
otfcascade::FindableClusters,
7979
otfcascade::FoundClusters,
80-
otfcascade::DCAXYCascToPV,
81-
otfcascade::DCAZCascToPV);
80+
otfcascade::DcaXYCascToPV,
81+
otfcascade::DcaZCascToPV);
8282

8383
using UpgradeCascade = UpgradeCascades::iterator;
8484

@@ -484,5 +484,148 @@ DECLARE_SOA_TABLE(V0CandidateCores, "AOD", "V0CANDIDATECORE",
484484
candidatev0::PositivePhi<candidatev0::PxPos, candidatev0::PyPos>);
485485

486486
using V0CandidateCore = V0CandidateCores::iterator;
487+
488+
namespace v0_pid
489+
{
490+
491+
// K0S
492+
DECLARE_SOA_COLUMN(NSigmaInnerTofK0SPosPi, nSigmaInnerTofK0SPosPi, float);
493+
DECLARE_SOA_COLUMN(NSigmaInnerTofK0SNegPi, nSigmaInnerTofK0SNegPi, float);
494+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofK0SPosPi, hasInnerTofK0SPosPi,
495+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
496+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofK0SNegPi, hasInnerTofK0SNegPi,
497+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
498+
499+
DECLARE_SOA_COLUMN(NSigmaOuterTofK0SPosPi, nSigmaOuterTofK0SPosPi, float);
500+
DECLARE_SOA_COLUMN(NSigmaOuterTofK0SNegPi, nSigmaOuterTofK0SNegPi, float);
501+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofK0SPosPi, hasOuterTofK0SPosPi,
502+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
503+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofK0SNegPi, hasOuterTofK0SNegPi,
504+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
505+
506+
DECLARE_SOA_COLUMN(ExpectedInnerTofK0SPosPi, expectedInnerTofK0SPosPi, float);
507+
DECLARE_SOA_COLUMN(ExpectedInnerTofK0SNegPi, expectedInnerTofK0SNegPi, float);
508+
509+
DECLARE_SOA_COLUMN(ExpectedOuterTofK0SPosPi, expectedOuterTofK0SPosPi, float);
510+
DECLARE_SOA_COLUMN(ExpectedOuterTofK0SNegPi, expectedOuterTofK0SNegPi, float);
511+
512+
DECLARE_SOA_COLUMN(MeasuredInnerTofK0SPosPi, measuredInnerTofK0SPosPi, float);
513+
DECLARE_SOA_COLUMN(MeasuredInnerTofK0SNegPi, measuredInnerTofK0SNegPi, float);
514+
515+
DECLARE_SOA_COLUMN(MeasuredOuterTofK0SPosPi, measuredOuterTofK0SPosPi, float);
516+
DECLARE_SOA_COLUMN(MeasuredOuterTofK0SNegPi, measuredOuterTofK0SNegPi, float);
517+
518+
// Lambda
519+
DECLARE_SOA_COLUMN(NSigmaInnerTofLambdaPosPr, nSigmaInnerTofLambdaPosPr, float);
520+
DECLARE_SOA_COLUMN(NSigmaInnerTofLambdaPosPi, nSigmaInnerTofLambdaPosPi, float);
521+
DECLARE_SOA_COLUMN(NSigmaInnerTofLambdaNegPr, nSigmaInnerTofLambdaNegPr, float);
522+
DECLARE_SOA_COLUMN(NSigmaInnerTofLambdaNegPi, nSigmaInnerTofLambdaNegPi, float);
523+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofLambdaPosPr, hasInnerTofLambdaPosPr,
524+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
525+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofLambdaPosPi, hasInnerTofLambdaPosPi,
526+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
527+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofLambdaNegPr, hasInnerTofLambdaNegPr,
528+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
529+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofLambdaNegPi, hasInnerTofLambdaNegPi,
530+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
531+
532+
DECLARE_SOA_COLUMN(NSigmaOuterTofLambdaPosPr, nSigmaOuterTofLambdaPosPr, float);
533+
DECLARE_SOA_COLUMN(NSigmaOuterTofLambdaPosPi, nSigmaOuterTofLambdaPosPi, float);
534+
DECLARE_SOA_COLUMN(NSigmaOuterTofLambdaNegPr, nSigmaOuterTofLambdaNegPr, float);
535+
DECLARE_SOA_COLUMN(NSigmaOuterTofLambdaNegPi, nSigmaOuterTofLambdaNegPi, float);
536+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofLambdaPosPr, hasOuterTofLambdaPosPr,
537+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
538+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofLambdaPosPi, hasOuterTofLambdaPosPi,
539+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
540+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofLambdaNegPr, hasOuterTofLambdaNegPr,
541+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
542+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofLambdaNegPi, hasOuterTofLambdaNegPi,
543+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
544+
545+
DECLARE_SOA_COLUMN(ExpectedInnerTofLambdaPosPr, expectedInnerTofLambdaPosPr, float);
546+
DECLARE_SOA_COLUMN(ExpectedInnerTofLambdaPosPi, expectedInnerTofLambdaPosPi, float);
547+
DECLARE_SOA_COLUMN(ExpectedInnerTofLambdaNegPr, expectedInnerTofLambdaNegPr, float);
548+
DECLARE_SOA_COLUMN(ExpectedInnerTofLambdaNegPi, expectedInnerTofLambdaNegPi, float);
549+
550+
DECLARE_SOA_COLUMN(ExpectedOuterTofLambdaPosPr, expectedOuterTofLambdaPosPr, float);
551+
DECLARE_SOA_COLUMN(ExpectedOuterTofLambdaPosPi, expectedOuterTofLambdaPosPi, float);
552+
DECLARE_SOA_COLUMN(ExpectedOuterTofLambdaNegPr, expectedOuterTofLambdaNegPr, float);
553+
DECLARE_SOA_COLUMN(ExpectedOuterTofLambdaNegPi, expectedOuterTofLambdaNegPi, float);
554+
555+
DECLARE_SOA_COLUMN(MeasuredInnerTofLambdaPosPr, measuredInnerTofLambdaPosPr, float);
556+
DECLARE_SOA_COLUMN(MeasuredInnerTofLambdaPosPi, measuredInnerTofLambdaPosPi, float);
557+
DECLARE_SOA_COLUMN(MeasuredInnerTofLambdaNegPr, measuredInnerTofLambdaNegPr, float);
558+
DECLARE_SOA_COLUMN(MeasuredInnerTofLambdaNegPi, measuredInnerTofLambdaNegPi, float);
559+
560+
DECLARE_SOA_COLUMN(MeasuredOuterTofLambdaPosPr, measuredOuterTofLambdaPosPr, float);
561+
DECLARE_SOA_COLUMN(MeasuredOuterTofLambdaPosPi, measuredOuterTofLambdaPosPi, float);
562+
DECLARE_SOA_COLUMN(MeasuredOuterTofLambdaNegPr, measuredOuterTofLambdaNegPr, float);
563+
DECLARE_SOA_COLUMN(MeasuredOuterTofLambdaNegPi, measuredOuterTofLambdaNegPi, float);
564+
} // namespace v0_pid
565+
566+
DECLARE_SOA_TABLE(A3K0SInnerTofPid, "AOD", "A3K0SITOFPID",
567+
v0_pid::NSigmaInnerTofK0SPosPi,
568+
v0_pid::NSigmaInnerTofK0SNegPi,
569+
v0_pid::HasInnerTofK0SPosPi<v0_pid::NSigmaInnerTofK0SPosPi>,
570+
v0_pid::HasInnerTofK0SNegPi<v0_pid::NSigmaInnerTofK0SNegPi>);
571+
572+
DECLARE_SOA_TABLE(A3K0SOuterTofPid, "AOD", "A3K0SOTOFPID",
573+
v0_pid::NSigmaOuterTofK0SPosPi,
574+
v0_pid::NSigmaOuterTofK0SNegPi,
575+
v0_pid::HasOuterTofK0SPosPi<v0_pid::NSigmaOuterTofK0SPosPi>,
576+
v0_pid::HasOuterTofK0SNegPi<v0_pid::NSigmaOuterTofK0SNegPi>);
577+
578+
DECLARE_SOA_TABLE(A3LambdaInnerTofPid, "AOD", "A3LAITOFPID",
579+
v0_pid::NSigmaInnerTofLambdaPosPr,
580+
v0_pid::NSigmaInnerTofLambdaPosPi,
581+
v0_pid::NSigmaInnerTofLambdaNegPr,
582+
v0_pid::NSigmaInnerTofLambdaNegPi,
583+
v0_pid::HasInnerTofLambdaPosPr<v0_pid::NSigmaInnerTofLambdaPosPr>,
584+
v0_pid::HasInnerTofLambdaPosPi<v0_pid::NSigmaInnerTofLambdaPosPi>,
585+
v0_pid::HasInnerTofLambdaNegPr<v0_pid::NSigmaInnerTofLambdaNegPr>,
586+
v0_pid::HasInnerTofLambdaNegPi<v0_pid::NSigmaInnerTofLambdaNegPi>);
587+
588+
DECLARE_SOA_TABLE(A3LambdaOuterTofPid, "AOD", "A3LAOTOFPID",
589+
v0_pid::NSigmaOuterTofLambdaPosPr,
590+
v0_pid::NSigmaOuterTofLambdaPosPi,
591+
v0_pid::NSigmaOuterTofLambdaNegPr,
592+
v0_pid::NSigmaOuterTofLambdaNegPi,
593+
v0_pid::HasOuterTofLambdaPosPr<v0_pid::NSigmaOuterTofLambdaPosPr>,
594+
v0_pid::HasOuterTofLambdaPosPi<v0_pid::NSigmaOuterTofLambdaPosPi>,
595+
v0_pid::HasOuterTofLambdaNegPr<v0_pid::NSigmaOuterTofLambdaNegPr>,
596+
v0_pid::HasOuterTofLambdaNegPi<v0_pid::NSigmaOuterTofLambdaNegPi>);
597+
598+
DECLARE_SOA_TABLE(A3K0SExpectedInnerTimes, "AOD", "A3K0SITIMES",
599+
v0_pid::ExpectedInnerTofK0SPosPi,
600+
v0_pid::ExpectedInnerTofK0SNegPi,
601+
v0_pid::MeasuredInnerTofK0SPosPi,
602+
v0_pid::MeasuredInnerTofK0SNegPi);
603+
604+
DECLARE_SOA_TABLE(A3K0SExpectedOuterTimes, "AOD", "A3K0SOTIMES",
605+
v0_pid::ExpectedOuterTofK0SPosPi,
606+
v0_pid::ExpectedOuterTofK0SNegPi,
607+
v0_pid::MeasuredOuterTofK0SPosPi,
608+
v0_pid::MeasuredOuterTofK0SNegPi);
609+
610+
DECLARE_SOA_TABLE(A3LambdaExpectedInnerTimes, "AOD", "A3LAITIMES",
611+
v0_pid::ExpectedInnerTofLambdaPosPr,
612+
v0_pid::ExpectedInnerTofLambdaPosPi,
613+
v0_pid::ExpectedInnerTofLambdaNegPr,
614+
v0_pid::ExpectedInnerTofLambdaNegPi,
615+
v0_pid::MeasuredInnerTofLambdaPosPr,
616+
v0_pid::MeasuredInnerTofLambdaPosPi,
617+
v0_pid::MeasuredInnerTofLambdaNegPr,
618+
v0_pid::MeasuredInnerTofLambdaNegPi);
619+
620+
DECLARE_SOA_TABLE(A3LambdaExpectedOuterTimes, "AOD", "A3LAOTIMES",
621+
v0_pid::ExpectedOuterTofLambdaPosPr,
622+
v0_pid::ExpectedOuterTofLambdaPosPi,
623+
v0_pid::ExpectedOuterTofLambdaNegPr,
624+
v0_pid::ExpectedOuterTofLambdaNegPi,
625+
v0_pid::MeasuredOuterTofLambdaPosPr,
626+
v0_pid::MeasuredOuterTofLambdaPosPi,
627+
v0_pid::MeasuredOuterTofLambdaNegPr,
628+
v0_pid::MeasuredOuterTofLambdaNegPi);
629+
487630
} // namespace o2::aod
488631
#endif // ALICE3_DATAMODEL_OTFSTRANGENESS_H_

ALICE3/TableProducer/OTF/onTheFlyDecayer.cxx

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "ALICE3/Core/TrackUtilities.h"
2121
#include "ALICE3/DataModel/tracksAlice3.h"
2222

23+
#include <CommonConstants/PhysicsConstants.h>
2324
#include <Framework/AnalysisDataModel.h>
2425
#include <Framework/AnalysisHelpers.h>
2526
#include <Framework/AnalysisTask.h>
@@ -47,13 +48,19 @@
4748
using namespace o2;
4849
using namespace o2::framework;
4950

50-
static constexpr int NumDecays = 7;
51+
static constexpr int NumDecays = 13;
5152
static constexpr int NumParameters = 1;
52-
static constexpr int DefaultParameters[NumDecays][NumParameters]{{1}, {1}, {1}, {1}, {1}, {1}, {1}};
53+
static constexpr std::array<std::array<int, NumParameters>, NumDecays> DefaultParameters{{{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}}};
5354
static const std::vector<std::string> parameterNames{"enable"};
5455
static const std::vector<std::string> particleNames{"K0s",
5556
"Lambda",
5657
"Anti-Lambda",
58+
"SigmaPlus",
59+
"Anti-SigmaPlus",
60+
"SigmaMinus",
61+
"Anti-SigmaMinus",
62+
"Xi0",
63+
"Anti-Xi0",
5764
"Xi",
5865
"Anti-Xi",
5966
"Omega",
@@ -62,6 +69,12 @@ static const std::vector<std::string> particleNames{"K0s",
6269
static const std::vector<int> pdgCodes{PDG_t::kK0Short,
6370
PDG_t::kLambda0,
6471
PDG_t::kLambda0Bar,
72+
PDG_t::kSigmaPlus,
73+
PDG_t::kSigmaBarMinus,
74+
PDG_t::kSigmaMinus,
75+
PDG_t::kSigmaBarPlus,
76+
o2::constants::physics::kXi0,
77+
-o2::constants::physics::kXi0,
6578
PDG_t::kXiMinus,
6679
PDG_t::kXiPlusBar,
6780
PDG_t::kOmegaMinus,
@@ -78,13 +91,13 @@ struct OnTheFlyDecayer {
7891
Produces<aod::OTFDecayerBits> tableOTFDecayerBits;
7992

8093
o2::upgrade::Decayer decayer;
81-
Service<o2::framework::O2DatabasePDG> pdgDB;
94+
Service<o2::framework::O2DatabasePDG> pdgDB{};
8295
HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::AnalysisObject};
8396

8497
Configurable<int> seed{"seed", 0, "Set seed for particle decayer"};
8598
Configurable<float> magneticField{"magneticField", 20., "Magnetic field (kG)"};
8699
Configurable<LabeledArray<int>> enabledDecays{"enabledDecays",
87-
{DefaultParameters[0], NumDecays, NumParameters, particleNames, parameterNames},
100+
{DefaultParameters[0].data(), NumDecays, NumParameters, particleNames, parameterNames},
88101
"Enable option for particle to be decayed: 0 - no, 1 - yes"};
89102

90103
std::size_t indexOffset = 0;
@@ -99,7 +112,7 @@ struct OnTheFlyDecayer {
99112
decayer.setSeed(seed);
100113
decayer.setBField(magneticField);
101114
for (int i = 0; i < NumDecays; ++i) {
102-
if (enabledDecays->get(particleNames[i].c_str(), "enable")) {
115+
if (enabledDecays->get(particleNames[i].c_str(), "enable") != 0) {
103116
LOG(info) << " --- Decay enabled: " << pdgCodes[i];
104117
mEnabledDecays.push_back(pdgCodes[i]);
105118
}
@@ -146,9 +159,9 @@ struct OnTheFlyDecayer {
146159

147160
const float decayRadius = decayer.getDecayRadius();
148161
const float trackVelocity = o2::upgrade::computeParticleVelocity(particle.p(), pdgDB->GetParticle(particle.pdgCode())->Mass());
149-
const int charge = pdgDB->GetParticle(particle.pdgCode())->Charge() / 3;
162+
const int charge = static_cast<int>(pdgDB->GetParticle(particle.pdgCode())->Charge() / 3);
150163
float trackLength{-1.f};
151-
if (!charge) {
164+
if (charge == 0) {
152165
const float dx = particle.vx() - decayer.getSecondaryVertexX();
153166
const float dy = particle.vy() - decayer.getSecondaryVertexY();
154167
const float dz = particle.vz() - decayer.getSecondaryVertexZ();

0 commit comments

Comments
 (0)