Skip to content

Commit 6eee3d5

Browse files
authored
[ALICE3] Changes to mcharm datamodel (#12192)
1 parent 9541324 commit 6eee3d5

File tree

4 files changed

+325
-184
lines changed

4 files changed

+325
-184
lines changed

ALICE3/DataModel/OTFMcTrackExtra.h

Lines changed: 0 additions & 42 deletions
This file was deleted.

ALICE3/DataModel/OTFMulticharm.h

Lines changed: 46 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
#define ALICE3_DATAMODEL_OTFMULTICHARM_H_
2222

2323
// O2 includes
24+
#include "ALICE3/DataModel/OTFStrangeness.h"
25+
2426
#include "Framework/AnalysisDataModel.h"
2527

2628
namespace o2::aod
@@ -36,8 +38,8 @@ DECLARE_SOA_COLUMN(XicMass, xicMass, float);
3638
DECLARE_SOA_COLUMN(XiccMass, xiccMass, float);
3739

3840
// kine vars
39-
DECLARE_SOA_COLUMN(Pt, pt, float);
40-
DECLARE_SOA_COLUMN(Eta, eta, float);
41+
DECLARE_SOA_COLUMN(XiccPt, xiccPt, float);
42+
DECLARE_SOA_COLUMN(XiccEta, xiccEta, float);
4143

4244
// topo vars
4345
DECLARE_SOA_COLUMN(XiDCAz, xiDCAz, float);
@@ -49,18 +51,18 @@ DECLARE_SOA_COLUMN(XiccDauDCA, xiccDauDCA, float);
4951
DECLARE_SOA_COLUMN(XiccDCAxy, xiccDCAxy, float);
5052
DECLARE_SOA_COLUMN(XiccDCAz, xiccDCAz, float);
5153

52-
DECLARE_SOA_COLUMN(PiFromXiDCAxy, piFromXiDCAxy, float);
53-
DECLARE_SOA_COLUMN(PiFromLaDCAxy, piFromLaDCAxy, float);
54-
DECLARE_SOA_COLUMN(PrFromLaDCAxy, prFromLaDCAxy, float);
55-
DECLARE_SOA_COLUMN(PiFromXiDCAz, piFromXiDCAz, float);
56-
DECLARE_SOA_COLUMN(PiFromLaDCAz, piFromLaDCAz, float);
57-
DECLARE_SOA_COLUMN(PrFromLaDCAz, prFromLaDCAz, float);
54+
DECLARE_SOA_COLUMN(BachDCAxy, bachDCAxy, float);
55+
DECLARE_SOA_COLUMN(BachDCAz, bachDCAz, float);
56+
DECLARE_SOA_COLUMN(PosDCAxy, posDCAxy, float);
57+
DECLARE_SOA_COLUMN(PosDCAz, posDCAz, float);
58+
DECLARE_SOA_COLUMN(NegDCAxy, negDCAxy, float);
59+
DECLARE_SOA_COLUMN(NegDCAz, negDCAz, float);
5860

5961
DECLARE_SOA_COLUMN(Pi1cDCAxy, pi1cDCAxy, float);
60-
DECLARE_SOA_COLUMN(Pi2cDCAxy, pi2cDCAxy, float);
61-
DECLARE_SOA_COLUMN(PiccDCAxy, piccDCAxy, float);
6262
DECLARE_SOA_COLUMN(Pi1cDCAz, pi1cDCAz, float);
63+
DECLARE_SOA_COLUMN(Pi2cDCAxy, pi2cDCAxy, float);
6364
DECLARE_SOA_COLUMN(Pi2cDCAz, pi2cDCAz, float);
65+
DECLARE_SOA_COLUMN(PiccDCAxy, piccDCAxy, float);
6466
DECLARE_SOA_COLUMN(PiccDCAz, piccDCAz, float);
6567

6668
// Lengths
@@ -75,14 +77,25 @@ DECLARE_SOA_COLUMN(Pi1cTofDeltaInner, pi1cTofDeltaInner, float);
7577
DECLARE_SOA_COLUMN(Pi1cTofNSigmaInner, pi1cTofNSigmaInner, float);
7678
DECLARE_SOA_COLUMN(Pi1cTofDeltaOuter, pi1cTofDeltaOuter, float);
7779
DECLARE_SOA_COLUMN(Pi1cTofNSigmaOuter, pi1cTofNSigmaOuter, float);
80+
DECLARE_SOA_COLUMN(Pi1cHasRichSignal, pi1cHasRichSignal, bool);
81+
DECLARE_SOA_COLUMN(Pi1cRichNSigma, pi1cRichNSigma, float);
82+
DECLARE_SOA_COLUMN(Pi1cPdgCode, pi1cPdgCode, int);
83+
7884
DECLARE_SOA_COLUMN(Pi2cTofDeltaInner, pi2cTofDeltaInner, float);
7985
DECLARE_SOA_COLUMN(Pi2cTofNSigmaInner, pi2cTofNSigmaInner, float);
8086
DECLARE_SOA_COLUMN(Pi2cTofDeltaOuter, pi2cTofDeltaOuter, float);
8187
DECLARE_SOA_COLUMN(Pi2cTofNSigmaOuter, pi2cTofNSigmaOuter, float);
88+
DECLARE_SOA_COLUMN(Pi2cHasRichSignal, pi2cHasRichSignal, bool);
89+
DECLARE_SOA_COLUMN(Pi2cRichNSigma, pi2cRichNSigma, float);
90+
DECLARE_SOA_COLUMN(Pi2cPdgCode, pi2cPdgCode, int);
91+
8292
DECLARE_SOA_COLUMN(PiccTofDeltaInner, piccTofDeltaInner, float);
8393
DECLARE_SOA_COLUMN(PiccTofNSigmaInner, piccTofNSigmaInner, float);
8494
DECLARE_SOA_COLUMN(PiccTofDeltaOuter, piccTofDeltaOuter, float);
8595
DECLARE_SOA_COLUMN(PiccTofNSigmaOuter, piccTofNSigmaOuter, float);
96+
DECLARE_SOA_COLUMN(PiccHasRichSignal, piccHasRichSignal, bool);
97+
DECLARE_SOA_COLUMN(PiccRichNSigma, piccRichNSigma, float);
98+
DECLARE_SOA_COLUMN(PiccPdgCode, piccPdgCode, int);
8699

87100
// Daughter info
88101
DECLARE_SOA_COLUMN(PosPt, posPt, float);
@@ -100,6 +113,7 @@ DECLARE_SOA_COLUMN(PiccPt, piccPt, float);
100113
DECLARE_SOA_COLUMN(PiccEta, piccEta, float);
101114

102115
} // namespace otfmulticharm
116+
103117
DECLARE_SOA_TABLE(MCharmIndices, "AOD", "MCharmIndices",
104118
o2::soa::Index<>,
105119
otfmulticharm::CascadeId,
@@ -112,8 +126,8 @@ DECLARE_SOA_TABLE(MCharmCores, "AOD", "MCharmCores",
112126
otfmulticharm::XiccDauDCA,
113127
otfmulticharm::XicMass,
114128
otfmulticharm::XiccMass,
115-
otfmulticharm::Pt,
116-
otfmulticharm::Eta,
129+
otfmulticharm::XiccPt,
130+
otfmulticharm::XiccEta,
117131

118132
otfmulticharm::XiDCAxy,
119133
otfmulticharm::XiDCAz,
@@ -122,13 +136,6 @@ DECLARE_SOA_TABLE(MCharmCores, "AOD", "MCharmCores",
122136
otfmulticharm::XiccDCAxy,
123137
otfmulticharm::XiccDCAz,
124138

125-
otfmulticharm::PiFromXiDCAxy,
126-
otfmulticharm::PiFromXiDCAz,
127-
otfmulticharm::PiFromLaDCAxy,
128-
otfmulticharm::PiFromLaDCAz,
129-
otfmulticharm::PrFromLaDCAxy,
130-
otfmulticharm::PrFromLaDCAz,
131-
132139
otfmulticharm::Pi1cDCAxy,
133140
otfmulticharm::Pi1cDCAz,
134141
otfmulticharm::Pi2cDCAxy,
@@ -141,38 +148,53 @@ DECLARE_SOA_TABLE(MCharmCores, "AOD", "MCharmCores",
141148
otfmulticharm::XicProperLength,
142149
otfmulticharm::XicDistanceFromPV,
143150
otfmulticharm::XiccProperLength,
151+
otfmulticharm::Pi1cPt,
152+
otfmulticharm::Pi2cPt,
153+
otfmulticharm::PiccPt);
144154

155+
DECLARE_SOA_TABLE(MCharmPID, "AOD", "MCharmPID",
145156
otfmulticharm::Pi1cTofDeltaInner,
146157
otfmulticharm::Pi1cTofNSigmaInner,
147158
otfmulticharm::Pi1cTofDeltaOuter,
148159
otfmulticharm::Pi1cTofNSigmaOuter,
160+
otfmulticharm::Pi1cHasRichSignal,
161+
otfmulticharm::Pi1cRichNSigma,
162+
otfmulticharm::Pi1cPdgCode,
149163

150164
otfmulticharm::Pi2cTofDeltaInner,
151165
otfmulticharm::Pi2cTofNSigmaInner,
152166
otfmulticharm::Pi2cTofDeltaOuter,
153167
otfmulticharm::Pi2cTofNSigmaOuter,
168+
otfmulticharm::Pi2cHasRichSignal,
169+
otfmulticharm::Pi2cRichNSigma,
170+
otfmulticharm::Pi2cPdgCode,
154171

155172
otfmulticharm::PiccTofDeltaInner,
156173
otfmulticharm::PiccTofNSigmaInner,
157174
otfmulticharm::PiccTofDeltaOuter,
158175
otfmulticharm::PiccTofNSigmaOuter,
176+
otfmulticharm::PiccHasRichSignal,
177+
otfmulticharm::PiccRichNSigma,
178+
otfmulticharm::PiccPdgCode);
159179

180+
DECLARE_SOA_TABLE(MCharmExtra, "AOD", "MCharmExtra",
160181
otfmulticharm::BachPt,
161182
otfmulticharm::BachEta,
183+
otfmulticharm::BachDCAxy,
184+
otfmulticharm::BachDCAz,
162185

163186
otfmulticharm::PosPt,
164187
otfmulticharm::PosEta,
188+
otfmulticharm::PosDCAxy,
189+
otfmulticharm::PosDCAz,
165190

166191
otfmulticharm::NegPt,
167192
otfmulticharm::NegEta,
193+
otfmulticharm::NegDCAxy,
194+
otfmulticharm::NegDCAz,
168195

169-
otfmulticharm::Pi1cPt,
170196
otfmulticharm::Pi1cEta,
171-
172-
otfmulticharm::Pi2cPt,
173197
otfmulticharm::Pi2cEta,
174-
175-
otfmulticharm::PiccPt,
176198
otfmulticharm::PiccEta);
177199

178200
} // namespace o2::aod

ALICE3/TableProducer/alice3-multicharmTable.cxx

Lines changed: 63 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -17,41 +17,43 @@
1717
// HF decays. Work in progress: use at your own risk!
1818
//
1919

20-
#include <cmath>
21-
#include <array>
22-
#include <cstdlib>
23-
#include <map>
24-
#include <iterator>
25-
#include <utility>
20+
#include "PWGLF/DataModel/LFParticleIdentification.h"
21+
#include "PWGLF/DataModel/LFStrangenessTables.h"
2622

27-
#include "Framework/runDataProcessing.h"
28-
#include "Framework/RunningWorkflowInfo.h"
29-
#include "Framework/AnalysisTask.h"
30-
#include "Framework/AnalysisDataModel.h"
31-
#include "Framework/ASoAHelpers.h"
32-
#include "DCAFitter/DCAFitterN.h"
33-
#include "ReconstructionDataFormats/Track.h"
23+
#include "ALICE3/DataModel/A3DecayFinderTables.h"
24+
#include "ALICE3/DataModel/OTFMulticharm.h"
25+
#include "ALICE3/DataModel/OTFRICH.h"
26+
#include "ALICE3/DataModel/OTFStrangeness.h"
27+
#include "ALICE3/DataModel/OTFTOF.h"
28+
#include "ALICE3/DataModel/tracksAlice3.h"
3429
#include "Common/Core/RecoDecay.h"
35-
#include "Common/Core/trackUtilities.h"
36-
#include "PWGLF/DataModel/LFStrangenessTables.h"
37-
#include "PWGLF/DataModel/LFParticleIdentification.h"
3830
#include "Common/Core/TrackSelection.h"
31+
#include "Common/Core/trackUtilities.h"
3932
#include "Common/DataModel/TrackSelectionTables.h"
40-
#include "DetectorsBase/Propagator.h"
41-
#include "DetectorsBase/GeometryManager.h"
42-
#include "DataFormatsParameters/GRPObject.h"
43-
#include "DataFormatsParameters/GRPMagField.h"
33+
4434
#include "CCDB/BasicCCDBManager.h"
35+
#include "CommonConstants/PhysicsConstants.h"
36+
#include "DCAFitter/DCAFitterN.h"
4537
#include "DataFormatsCalibration/MeanVertexObject.h"
46-
#include "ALICE3/DataModel/OTFTOF.h"
47-
#include "ALICE3/DataModel/RICH.h"
48-
#include "ALICE3/DataModel/A3DecayFinderTables.h"
49-
#include "ALICE3/DataModel/OTFStrangeness.h"
50-
#include "ALICE3/DataModel/OTFMulticharm.h"
51-
#include "ALICE3/DataModel/tracksAlice3.h"
38+
#include "DataFormatsParameters/GRPMagField.h"
39+
#include "DataFormatsParameters/GRPObject.h"
40+
#include "DetectorsBase/GeometryManager.h"
41+
#include "DetectorsBase/Propagator.h"
5242
#include "DetectorsVertexing/PVertexer.h"
5343
#include "DetectorsVertexing/PVertexerHelpers.h"
54-
#include "CommonConstants/PhysicsConstants.h"
44+
#include "Framework/ASoAHelpers.h"
45+
#include "Framework/AnalysisDataModel.h"
46+
#include "Framework/AnalysisTask.h"
47+
#include "Framework/RunningWorkflowInfo.h"
48+
#include "Framework/runDataProcessing.h"
49+
#include "ReconstructionDataFormats/Track.h"
50+
51+
#include <array>
52+
#include <cmath>
53+
#include <cstdlib>
54+
#include <iterator>
55+
#include <map>
56+
#include <utility>
5557

5658
using namespace o2;
5759
using namespace o2::framework;
@@ -68,14 +70,16 @@ using FullTracksExt = soa::Join<aod::Tracks, aod::TracksCov>;
6870
// For MC association in pre-selection
6971
using labeledTracks = soa::Join<aod::Tracks, aod::McTrackLabels>;
7072
using tofTracks = soa::Join<aod::Tracks, aod::UpgradeTofs>;
71-
using richTracks = soa::Join<aod::Tracks, aod::RICHs>;
72-
using alice3tracks = soa::Join<aod::Tracks, aod::TracksCov, aod::Alice3DecayMaps, aod::McTrackLabels, aod::TracksDCA, aod::TracksExtraA3, aod::UpgradeTofs, aod::UpgradeTofExpectedTimes>;
73+
using richTracks = soa::Join<aod::Tracks, aod::UpgradeRichs, aod::UpgradeRichSignals>;
74+
using alice3tracks = soa::Join<aod::Tracks, aod::TracksCov, aod::Alice3DecayMaps, aod::McTrackLabels, aod::TracksDCA, aod::TracksExtraA3, aod::UpgradeTofs, aod::UpgradeTofExpectedTimes, aod::UpgradeRichs, aod::UpgradeRichSignals>;
7375

7476
struct alice3multicharmTable {
7577
SliceCache cache;
7678

7779
Produces<aod::MCharmIndices> multiCharmIdx;
7880
Produces<aod::MCharmCores> multiCharmCore;
81+
Produces<aod::MCharmPID> multiCharmPID;
82+
Produces<aod::MCharmExtra> multiCharmExtra;
7983

8084
// Operation and minimisation criteria
8185
Configurable<bool> fillDerivedTable{"fillDerivedTable", false, "fill MCharm[] tables (careful: memory)"};
@@ -321,6 +325,13 @@ struct alice3multicharmTable {
321325
return true;
322326
}
323327

328+
template <typename TTrackType>
329+
int getPdgCodeForTrack(TTrackType track)
330+
{
331+
auto mcParticle = track.template mcParticle_as<aod::McParticles>();
332+
return mcParticle.pdgCode();
333+
}
334+
324335
/// function to check if tracks have the same mother in MC
325336
template <typename TTrackType1, typename TTrackType2>
326337
bool checkSameMother(TTrackType1 const& track1, TTrackType2 const& track2)
@@ -729,27 +740,43 @@ struct alice3multicharmTable {
729740
xi.dcaXY(), xi.dcaZ(),
730741
xicdcaXY, xicdcaZ,
731742
xiccdcaXY, xiccdcaZ,
732-
piFromXi.dcaXY(), piFromXi.dcaZ(),
733-
piFromLa.dcaXY(), piFromLa.dcaZ(),
734-
prFromLa.dcaXY(), prFromLa.dcaZ(),
735743
pi1c.dcaXY(), pi1c.dcaZ(),
736744
pi2c.dcaXY(), pi2c.dcaZ(),
737745
picc.dcaXY(), picc.dcaZ(),
738746
xicDecayRadius2D, xiccDecayRadius2D,
739-
xicProperLength, xicDecayDistanceFromPV,
747+
xicProperLength,
748+
xicDecayDistanceFromPV,
740749
xiccProperLength,
750+
pi1c.pt(),
751+
pi2c.pt(),
752+
picc.pt());
753+
754+
multiCharmPID(
741755
pi1cTOFDiffInner, pi1c.nSigmaPionInnerTOF(),
742756
pi1cTOFDiffOuter, pi1c.nSigmaPionOuterTOF(),
757+
pi1c.hasSigPi(), pi1c.nSigmaPionRich(),
758+
getPdgCodeForTrack(pi1c),
759+
743760
pi2cTOFDiffInner, pi2c.nSigmaPionInnerTOF(),
744761
pi2cTOFDiffOuter, pi2c.nSigmaPionOuterTOF(),
762+
pi2c.hasSigPi(), pi2c.nSigmaPionRich(),
763+
getPdgCodeForTrack(pi2c),
764+
745765
piccTOFDiffInner, picc.nSigmaPionInnerTOF(),
746766
piccTOFDiffOuter, picc.nSigmaPionOuterTOF(),
767+
picc.hasSigPi(), picc.nSigmaPionRich(),
768+
getPdgCodeForTrack(picc));
769+
770+
multiCharmExtra(
747771
piFromXi.pt(), piFromXi.eta(),
772+
piFromXi.dcaXY(), piFromXi.dcaZ(),
748773
prFromLa.pt(), prFromLa.eta(),
774+
prFromLa.dcaXY(), prFromLa.dcaZ(),
749775
piFromLa.pt(), piFromLa.eta(),
750-
pi1c.pt(), pi1c.eta(),
751-
pi2c.pt(), pi2c.eta(),
752-
picc.pt(), picc.eta());
776+
piFromLa.dcaXY(), piFromLa.dcaZ(),
777+
pi1c.eta(),
778+
pi2c.eta(),
779+
picc.eta());
753780
}
754781
}
755782
histos.fill(HIST("hCombinationsXiCC"), nCombinationsCC);

0 commit comments

Comments
 (0)