Skip to content

Commit 5b3ac02

Browse files
author
Henrik Fribert
committed
added-sigmaplus-variables
1 parent 07cb26a commit 5b3ac02

4 files changed

Lines changed: 117 additions & 9 deletions

File tree

‎PWGCF/Femto/Core/kinkBuilder.h‎

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ class KinkBuilder
554554
mProduceSigmaPlus = utils::enableTable("FSigmaPlus_001", table.produceSigmaPlus.value, initContext);
555555
mProduceLiteSigmaPlus = utils::enableTable("FLiteSigmaPlus_001", table.produceLiteSigmaPlus.value, initContext);
556556
mProduceSigmaPlusMasks = utils::enableTable("FSigmaPlusMasks_001", table.produceSigmaPlusMasks.value, initContext);
557-
mProduceSigmaPlusExtras = utils::enableTable("FSigmaPlusExtras_001", table.produceSigmaPlusExtras.value, initContext);
557+
mProduceSigmaPlusExtras = utils::enableTable("FSigmaPlusExtras_002", table.produceSigmaPlusExtras.value, initContext);
558558

559559
if (mProduceSigmaPlus && mProduceLiteSigmaPlus) {
560560
LOG(fatal) << "FSigmaPlus and FLiteSigmaPlus are mutually exclusive -- enable only one. "
@@ -615,7 +615,8 @@ class KinkBuilder
615615
fillSigma(collisionBuilder, kinkProducts, kink, daughterIndex);
616616
}
617617
if constexpr (modes::isEqual(kinkType, modes::Kink::kSigmaPlus)) {
618-
fillSigmaPlus(collisionBuilder, kinkProducts, kink, daughterIndex);
618+
auto mother = kink.template trackMoth_as<T7>();
619+
fillSigmaPlus(collisionBuilder, kinkProducts, kink, daughter, mother, daughterIndex);
619620
}
620621
}
621622
}
@@ -651,7 +652,8 @@ class KinkBuilder
651652
mcBuilder.template fillMcSigmaWithLabel<system>(daughter, mcParticles, mcCols, mcProducts);
652653
}
653654
if constexpr (modes::isEqual(kinkType, modes::Kink::kSigmaPlus)) {
654-
fillSigmaPlus(collisionBuilder, kinkProducts, kink, daughterIndex);
655+
auto mother = kink.template trackMoth_as<T8>();
656+
fillSigmaPlus(collisionBuilder, kinkProducts, kink, daughter, mother, daughterIndex);
655657
mcBuilder.template fillMcSigmaPlusWithLabel<system>(daughter, mcParticles, mcCols, mcProducts);
656658
}
657659
}
@@ -695,8 +697,8 @@ class KinkBuilder
695697
}
696698
}
697699

698-
template <typename T1, typename T2, typename T3>
699-
void fillSigmaPlus(T1& collisionBuilder, T2& kinkProducts, T3 const& kink, int64_t daughterIndex)
700+
template <typename T1, typename T2, typename T3, typename T4, typename T5>
701+
void fillSigmaPlus(T1& collisionBuilder, T2& kinkProducts, T3 const& kink, T4 const& daughter, T5 const& mother, int64_t daughterIndex)
700702
{
701703
// Mass is calculated from original momentum components stored in kink table
702704
float mass = kink.mSigmaPlus();
@@ -728,7 +730,13 @@ class KinkBuilder
728730
kink.xDecVtx(),
729731
kink.yDecVtx(),
730732
kink.zDecVtx(),
731-
mKinkSelection.getKinkTransRadius());
733+
mKinkSelection.getKinkTransRadius(),
734+
kink.dcaKinkTopo(),
735+
daughter.tpcNSigmaPr(),
736+
daughter.tpcNSigmaPi(),
737+
daughter.tofNSigmaPr(),
738+
kink.ptMoth(),
739+
mother.itsClusterSizes());
732740
}
733741
}
734742

@@ -759,6 +767,7 @@ struct KinkBuilderDerivedToDerivedProducts : o2::framework::ProducesGroup {
759767
o2::framework::Produces<o2::aod::StoredFSigmaMasks> producedSigmaMasks;
760768
o2::framework::Produces<o2::aod::StoredFSigmaPlus> producedSigmaPluses;
761769
o2::framework::Produces<o2::aod::StoredFSigmaPlusMasks> producedSigmaPlusMasks;
770+
o2::framework::Produces<o2::aod::StoredFSigmaPlusExtras> producedSigmaPlusExtras;
762771
};
763772

764773
class KinkBuilderDerivedToDerived
@@ -843,6 +852,7 @@ class KinkBuilderDerivedToDerived
843852
sigmaPlus.mass(),
844853
chaDaughterIndex);
845854
newSigmaPlusTable.producedSigmaPlusMasks(sigmaPlus.mask());
855+
fillSigmaPlusExtensions(sigmaPlus, newSigmaPlusTable);
846856
}
847857
}
848858

@@ -894,11 +904,32 @@ class KinkBuilderDerivedToDerived
894904
sigmaPlus.mass(),
895905
chaDaughterIndex);
896906
newSigmaPlusTable.producedSigmaPlusMasks(sigmaPlus.mask());
907+
fillSigmaPlusExtensions(sigmaPlus, newSigmaPlusTable);
897908
mcBuilder.fillSigmaPlusWithLabel(sigmaPlus, mcCols, mcParticles, mcMothers, mcPartonicMothers, mcProducts);
898909
}
899910
}
900911

901912
private:
913+
template <typename T1, typename T2>
914+
void fillSigmaPlusExtensions(T1 const& sigmaPlus, T2& newSigmaPlusTable)
915+
{
916+
if constexpr (requires(T1 t) { t.transRadius(); }) {
917+
newSigmaPlusTable.producedSigmaPlusExtras(sigmaPlus.kinkAngle(),
918+
sigmaPlus.dcaDaugToPV(),
919+
sigmaPlus.dcaMothToPV(),
920+
sigmaPlus.decayVtxX(),
921+
sigmaPlus.decayVtxY(),
922+
sigmaPlus.decayVtxZ(),
923+
sigmaPlus.transRadius(),
924+
sigmaPlus.dcaKinkTopo(),
925+
sigmaPlus.dauTpcNSigmaPr(),
926+
sigmaPlus.dauTpcNSigmaPi(),
927+
sigmaPlus.dauTofNSigmaPr(),
928+
sigmaPlus.ptOriginal(),
929+
sigmaPlus.itsClusterSizes());
930+
}
931+
}
932+
902933
int mLimitSigma = 0;
903934
int mLimitSigmaPlus = 0;
904935
};

‎PWGCF/Femto/Core/pairHistManager.h‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ enum PairHist {
9292
kKstarVsMtVsMass1VsMass2,
9393
kKstarVsMtVsMass1VsMass2VsMult,
9494
kKstarVsMtVsMass1VsMass2VsMultVsCent,
95+
kKstarVsMass2VsMult,
9596
// higher dimension with pt and mass
9697
kKstarVsMtVsMass1VsMass2VsPt1VsPt2,
9798
kKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult,
@@ -216,6 +217,7 @@ struct ConfPairBinning : o2::framework::ConfigurableGroup {
216217
o2::framework::Configurable<bool> plotKstarVsMtVsPt1VsPt2VsMultVsCent{"plotKstarVsMtVsPt1VsPt2VsMultVsCent", false, "(Reco/Mc) Enable 6D histogram (Kstar Vs Mt Vs Pt1 Vs Pt2 Vs Mult Vs Cent)"};
217218
o2::framework::Configurable<bool> plotKstarVsMtVsMass1VsMass2{"plotKstarVsMtVsMass1VsMass2", false, "(Reco) Enable 4D histogram (Kstar Vs Mt Vs Mass1 Vs Mass2)"};
218219
o2::framework::Configurable<bool> plotKstarVsMtVsMass1VsMass2VsMult{"plotKstarVsMtVsMass1VsMass2VsMult", false, "(Reco) Enable 5D histogram (Kstar Vs Mt Vs Mass1 Vs Mass2 Vs Mult)"};
220+
o2::framework::Configurable<bool> plotKstarVsMass2VsMult{"plotKstarVsMass2VsMult", false, "(Reco) Enable 3D histogram (Kstar Vs Mass2 Vs Mult), fixed binning (TH3F)"};
219221
o2::framework::Configurable<bool> plotKstarVsMtVsMass1VsMass2VsMultVsCent{"plotKstarVsMtVsMass1VsMass2VsMultVsCent", false, "(Reco) Enable 6D histogram (Kstar Vs Mt Vs Mass1 Vs Mass2 Vs Mult Vs Cent)"};
220222
o2::framework::Configurable<bool> plotKstarVsMtVsMass1VsMass2VsPt1VsPt2{"plotKstarVsMtVsMass1VsMass2VsPt1VsPt2", false, "(Reco) Enable 6D histogram (Kstar Vs Mt Vs Pt1 Vs Pt2 Vs Mass1 Vs Mass2)"};
221223
o2::framework::Configurable<bool> plotKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult{"plotKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult", false, "(Reco) Enable 7D histogram (Kstar Vs Mt Vs Pt1 Vs Pt2 Vs Mass1 Vs Mass2 Vs Mult)"};
@@ -326,6 +328,7 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
326328
{kKstarVsMtVsMass1VsMass2, o2::framework::HistType::kTHnSparseF, "hKstarVsMtVsMass1VsMass2", "k* vs m_{T} vs m_{1} vs m_{2}; k* (GeV/#it{c}); m_{T} (GeV/#it{c}^{2}); m_{1} (GeV/#it{c}^{2}); m_{2} (GeV/#it{c}^{2});"},
327329
{kKstarVsMtVsMass1VsMass2VsMult, o2::framework::HistType::kTHnSparseF, "hKstarVsMtVsMass1VsMass2VsMult", "k* vs m_{T} vs m_{1} vs m_{2} vs multiplicity; k* (GeV/#it{c}); m_{T} (GeV/#it{c}^{2}); m_{1} (GeV/#it{c}^{2}); m_{2} (GeV/#it{c}^{2}); Multiplicity;"},
328330
{kKstarVsMtVsMass1VsMass2VsMultVsCent, o2::framework::HistType::kTHnSparseF, "hKstarVsMtVsMass1VsMass2VsMultVsCent", "k* vs m_{T} vs m_{1} vs m_{2} vs multiplicity vs centrality; k* (GeV/#it{c}); m_{T} (GeV/#it{c}^{2}); m_{1} (GeV/#it{c}^{2}); m_{2} (GeV/#it{c}^{2}); Multiplicity; Centrality (%);"},
331+
{kKstarVsMass2VsMult, o2::framework::HistType::kTH3F, "hKstarVsMass2VsMult", "k* vs m_{2} vs multiplicity; k* (GeV/#it{c}); m_{2} (GeV/#it{c}^{2}); Multiplicity;"},
329332
// n-D with pt and mass
330333
{kKstarVsMtVsMass1VsMass2VsPt1VsPt2, o2::framework::HistType::kTHnSparseF, "hKstarVsMtVsMass1VsMass2VsPt1VsPt2", "k* vs m_{T} vs m_{1} vs m_{2} vs p_{T,1} vs p_{T,2}; k* (GeV/#it{c}); m_{T} (GeV/#it{c}^{2}); m_{1} (GeV/#it{c}^{2}); m_{2} (GeV/#it{c}^{2}); p_{T,1} (GeV/#it{c}); p_{T,2} (GeV/#it{c});"},
331334
{kKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult, o2::framework::HistType::kTHnSparseF, "hKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult", "k* vs m_{T} vs m_{1} vs m_{2} vs p_{T,1} vs p_{T,2} vs multiplicity; k* (GeV/#it{c}); m_{T} (GeV/#it{c}^{2}); m_{1} (GeV/#it{c}^{2}); m_{2} (GeV/#it{c}^{2}); p_{T,1} (GeV/#it{c}); p_{T,2} (GeV/#it{c}); Multiplicity;"},
@@ -435,6 +438,7 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
435438
{kKstarVsMtVsMass1VsMass2, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).mass1, (confAnalysis).mass2}}, \
436439
{kKstarVsMtVsMass1VsMass2VsMult, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).mass1, (confAnalysis).mass2, (confAnalysis).multiplicity}}, \
437440
{kKstarVsMtVsMass1VsMass2VsMultVsCent, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).mass1, (confAnalysis).mass2, (confAnalysis).multiplicity, (confAnalysis).centrality}}, \
441+
{kKstarVsMass2VsMult, {(confAnalysis).kstar, (confAnalysis).mass2, (confAnalysis).multiplicity}}, \
438442
{kKstarVsMtVsMass1VsMass2VsPt1VsPt2, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).mass1, (confAnalysis).mass2, (confAnalysis).pt1, (confAnalysis).pt2}}, \
439443
{kKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).mass1, (confAnalysis).mass2, (confAnalysis).pt1, (confAnalysis).pt2, (confAnalysis).multiplicity}}, \
440444
{kKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMultVsCent, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).mass1, (confAnalysis).mass2, (confAnalysis).pt1, (confAnalysis).pt2, (confAnalysis).multiplicity, (confAnalysis).centrality}}, \
@@ -626,6 +630,7 @@ class PairHistManager
626630
mPlotKstarVsMtVsMass1VsMass2 = ConfPairBinning.plotKstarVsMtVsMass1VsMass2.value;
627631
mPlotKstarVsMtVsMass1VsMass2VsMult = ConfPairBinning.plotKstarVsMtVsMass1VsMass2VsMult.value;
628632
mPlotKstarVsMtVsMass1VsMass2VsMultVsCent = ConfPairBinning.plotKstarVsMtVsMass1VsMass2VsMultVsCent.value;
633+
mPlotKstarVsMass2VsMult = ConfPairBinning.plotKstarVsMass2VsMult.value;
629634

630635
mPlotKstarVsMtVsMass1VsMass2VsPt1VsPt2 = ConfPairBinning.plotKstarVsMtVsMass1VsMass2VsPt1VsPt2.value;
631636
mPlotKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult = ConfPairBinning.plotKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult.value;
@@ -1025,6 +1030,9 @@ class PairHistManager
10251030
if (mPlotKstarVsMtVsMass1VsMass2VsMultVsCent) {
10261031
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsMtVsMass1VsMass2VsMultVsCent, HistTable), getHistDesc(kKstarVsMtVsMass1VsMass2VsMultVsCent, HistTable), getHistType(kKstarVsMtVsMass1VsMass2VsMultVsCent, HistTable), {Specs.at(kKstarVsMtVsMass1VsMass2VsMultVsCent)});
10271032
}
1033+
if (mPlotKstarVsMass2VsMult) {
1034+
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsMass2VsMult, HistTable), getHistDesc(kKstarVsMass2VsMult, HistTable), getHistType(kKstarVsMass2VsMult, HistTable), {Specs.at(kKstarVsMass2VsMult)});
1035+
}
10281036
if (mPlotKstarVsMtVsMass1VsMass2VsPt1VsPt2) {
10291037
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsMtVsMass1VsMass2VsPt1VsPt2, HistTable), getHistDesc(kKstarVsMtVsMass1VsMass2VsPt1VsPt2, HistTable), getHistType(kKstarVsMtVsMass1VsMass2VsPt1VsPt2, HistTable), {Specs.at(kKstarVsMtVsMass1VsMass2VsPt1VsPt2)});
10301038
}
@@ -1431,6 +1439,9 @@ class PairHistManager
14311439
if (mPlotKstarVsMtVsMass1VsMass2VsMultVsCent) {
14321440
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsMtVsMass1VsMass2VsMultVsCent, HistTable)), mKstar, mMt, mRecoMass1, mRecoMass2, mMult, mCent);
14331441
}
1442+
if (mPlotKstarVsMass2VsMult) {
1443+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsMass2VsMult, HistTable)), mKstar, mRecoMass2, mMult);
1444+
}
14341445
if (mPlotKstarVsMtVsMass1VsMass2VsPt1VsPt2) {
14351446
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsMtVsMass1VsMass2VsPt1VsPt2, HistTable)), mKstar, mMt, mRecoMass1, mRecoMass2, mParticle1.Pt(), mParticle2.Pt());
14361447
}
@@ -1886,6 +1897,7 @@ class PairHistManager
18861897
bool mPlotKstarVsMtVsMass1VsMass2 = false;
18871898
bool mPlotKstarVsMtVsMass1VsMass2VsMult = false;
18881899
bool mPlotKstarVsMtVsMass1VsMass2VsMultVsCent = false;
1900+
bool mPlotKstarVsMass2VsMult = false;
18891901

18901902
bool mPlotKstarVsMtVsMass1VsMass2VsPt1VsPt2 = false;
18911903
bool mPlotKstarVsMtVsMass1VsMass2VsPt1VsPt2VsMult = false;

‎PWGCF/Femto/DataModel/FemtoTables.h‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,6 +1014,11 @@ DECLARE_SOA_COLUMN(DecayVtxX, decayVtxX, float); //! x coordinate of decay v
10141014
DECLARE_SOA_COLUMN(DecayVtxY, decayVtxY, float); //! y coordinate of decay vertex (relative to PV)
10151015
DECLARE_SOA_COLUMN(DecayVtxZ, decayVtxZ, float); //! z coordinate of decay vertex (relative to PV)
10161016
DECLARE_SOA_COLUMN(TransRadius, transRadius, float); //! Transverse decay radius from PV
1017+
DECLARE_SOA_COLUMN(DcaKinkTopo, dcaKinkTopo, float);
1018+
DECLARE_SOA_COLUMN(DauTpcNSigmaPr, dauTpcNSigmaPr, float);
1019+
DECLARE_SOA_COLUMN(DauTpcNSigmaPi, dauTpcNSigmaPi, float);
1020+
DECLARE_SOA_COLUMN(DauTofNSigmaPr, dauTofNSigmaPr, float);
1021+
DECLARE_SOA_COLUMN(PtOriginal, ptOriginal, float);
10171022

10181023
// id column for charged daughter track
10191024
DECLARE_SOA_INDEX_COLUMN_FULL(ChaDau, chaDau, int32_t, FTracks, "_ChaDau"); //!
@@ -1167,7 +1172,23 @@ DECLARE_SOA_TABLE_STAGED_VERSIONED(FSigmaPlusExtras_001, "FSIGMAPLUSEXTRAS", 1,
11671172
femtokinks::DecayVtxZ,
11681173
femtokinks::TransRadius);
11691174

1170-
using FSigmaPlusExtras = FSigmaPlusExtras_001;
1175+
DECLARE_SOA_TABLE_STAGED_VERSIONED(FSigmaPlusExtras_002, "FSIGMAPLUSEXTRAS", 2,
1176+
femtokinks::KinkAngle,
1177+
femtokinks::DcaDaugToPV,
1178+
femtokinks::DcaMothToPV,
1179+
femtokinks::DecayVtxX,
1180+
femtokinks::DecayVtxY,
1181+
femtokinks::DecayVtxZ,
1182+
femtokinks::TransRadius,
1183+
femtokinks::DcaKinkTopo,
1184+
femtokinks::DauTpcNSigmaPr,
1185+
femtokinks::DauTpcNSigmaPi,
1186+
femtokinks::DauTofNSigmaPr,
1187+
femtokinks::PtOriginal,
1188+
femtotracks::ItsClusterSizes);
1189+
1190+
using FSigmaPlusExtras = FSigmaPlusExtras_002;
1191+
using StoredFSigmaPlusExtras = StoredFSigmaPlusExtras_002;
11711192

11721193
namespace femtocascades
11731194
{

0 commit comments

Comments
 (0)