Skip to content

Commit bfa7ce6

Browse files
ddobrigkalibuild
andauthored
ALICE 3: tracksExtra with silicon/TPC point counters (#7425)
* ALICE 3: tracksExtra with silicon/TPC point counters * Please consider the following formatting changes (#334) * Add derived data table for multi-charm analysis * Please consider the following formatting changes (#335) * Final touches * Please consider the following formatting changes (#336) --------- Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent f69950b commit bfa7ce6

7 files changed

Lines changed: 183 additions & 96 deletions

File tree

ALICE3/Core/DetLayer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ struct DetLayer {
4242

4343
// efficiency
4444
float eff; // detection efficiency
45+
46+
// layer type
47+
int type; // 0: undefined/inert, 1: silicon, 2: gas/tpc
4548
};
4649

4750
} // namespace o2::fastsim

ALICE3/Core/FastTracker.cxx

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,18 @@ FastTracker::FastTracker()
3030
applyZacceptance = false;
3131
covMatFactor = 0.99f;
3232
verboseLevel = 0;
33+
34+
// last fast-tracked track properties
3335
covMatOK = 0;
3436
covMatNotOK = 0;
37+
nIntercepts = 0;
38+
nSiliconPoints = 0;
39+
nGasPoints = 0;
3540
}
3641

37-
void FastTracker::AddLayer(TString name, float r, float z, float x0, float xrho, float resRPhi, float resZ, float eff)
42+
void FastTracker::AddLayer(TString name, float r, float z, float x0, float xrho, float resRPhi, float resZ, float eff, int type)
3843
{
39-
DetLayer newLayer{name.Data(), r, z, x0, xrho, resRPhi, resZ, eff};
44+
DetLayer newLayer{name.Data(), r, z, x0, xrho, resRPhi, resZ, eff, type};
4045
layers.push_back(newLayer);
4146
}
4247

@@ -66,18 +71,18 @@ void FastTracker::AddSiliconALICE3v4()
6671
float resZOT = 0.0005; // 5 mum
6772
float eff = 1.00;
6873

69-
layers.push_back(DetLayer{"bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f}); // 150 mum Be
70-
layers.push_back(DetLayer{"ddd0", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff});
71-
layers.push_back(DetLayer{"ddd1", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff});
72-
layers.push_back(DetLayer{"ddd2", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff});
73-
layers.push_back(DetLayer{"bpipe1", 5.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f}); // 500 mum Be
74-
layers.push_back(DetLayer{"ddd3", 7., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
75-
layers.push_back(DetLayer{"ddd4", 10., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
76-
layers.push_back(DetLayer{"ddd5", 13., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
77-
layers.push_back(DetLayer{"ddd6", 16., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
78-
layers.push_back(DetLayer{"ddd7", 25., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
79-
layers.push_back(DetLayer{"ddd8", 40., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
80-
layers.push_back(DetLayer{"ddd9", 45., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
74+
layers.push_back(DetLayer{"bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f, 0}); // 150 mum Be
75+
layers.push_back(DetLayer{"ddd0", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1});
76+
layers.push_back(DetLayer{"ddd1", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1});
77+
layers.push_back(DetLayer{"ddd2", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1});
78+
layers.push_back(DetLayer{"bpipe1", 5.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f, 0}); // 500 mum Be
79+
layers.push_back(DetLayer{"ddd3", 7., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
80+
layers.push_back(DetLayer{"ddd4", 10., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
81+
layers.push_back(DetLayer{"ddd5", 13., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
82+
layers.push_back(DetLayer{"ddd6", 16., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
83+
layers.push_back(DetLayer{"ddd7", 25., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
84+
layers.push_back(DetLayer{"ddd8", 40., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
85+
layers.push_back(DetLayer{"ddd9", 45., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
8186
}
8287

8388
void FastTracker::AddSiliconALICE3v1()
@@ -94,19 +99,19 @@ void FastTracker::AddSiliconALICE3v1()
9499
float resZOT = 0.00100; // 5 mum
95100
float eff = 1.00;
96101

97-
layers.push_back(DetLayer{"bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f}); // 150 mum Be
98-
layers.push_back(DetLayer{"B00", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff});
99-
layers.push_back(DetLayer{"B01", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff});
100-
layers.push_back(DetLayer{"B02", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff});
101-
layers.push_back(DetLayer{"bpipe1", 3.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f}); // 500 mum Be
102-
layers.push_back(DetLayer{"B03", 3.75, 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
103-
layers.push_back(DetLayer{"B04", 7., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
104-
layers.push_back(DetLayer{"B05", 12., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
105-
layers.push_back(DetLayer{"B06", 20., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
106-
layers.push_back(DetLayer{"B07", 30., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
107-
layers.push_back(DetLayer{"B08", 45., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
108-
layers.push_back(DetLayer{"B09", 60., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
109-
layers.push_back(DetLayer{"B10", 80., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff});
102+
layers.push_back(DetLayer{"bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f, 1}); // 150 mum Be
103+
layers.push_back(DetLayer{"B00", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1});
104+
layers.push_back(DetLayer{"B01", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1});
105+
layers.push_back(DetLayer{"B02", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1});
106+
layers.push_back(DetLayer{"bpipe1", 3.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f, 1}); // 500 mum Be
107+
layers.push_back(DetLayer{"B03", 3.75, 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
108+
layers.push_back(DetLayer{"B04", 7., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
109+
layers.push_back(DetLayer{"B05", 12., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
110+
layers.push_back(DetLayer{"B06", 20., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
111+
layers.push_back(DetLayer{"B07", 30., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
112+
layers.push_back(DetLayer{"B08", 45., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
113+
layers.push_back(DetLayer{"B09", 60., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
114+
layers.push_back(DetLayer{"B10", 80., 250, x0OT, xrhoOB, resRPhiOT, resZOT, eff, 1});
110115
}
111116

112117
void FastTracker::AddTPC(float phiResMean, float zResMean)
@@ -139,7 +144,7 @@ void FastTracker::AddTPC(float phiResMean, float zResMean)
139144

140145
// add boundaries between ITS and TPC
141146
for (int i = 0; i < kNPassiveBound; i++) {
142-
AddLayer(Form("tpc_boundary%d", i), rBoundary[i], zLength, radLBoundary[i], xrhoBoundary[i]); // dummy errors
147+
AddLayer(Form("tpc_boundary%d", i), rBoundary[i], zLength, radLBoundary[i], xrhoBoundary[i], 0); // dummy errors
143148
}
144149
for (Int_t k = 0; k < tpcRows; k++) {
145150
Float_t rowRadius = 0;
@@ -150,7 +155,7 @@ void FastTracker::AddTPC(float phiResMean, float zResMean)
150155
else if (k >= (innerRows + middleRows) && k < tpcRows)
151156
rowRadius = row128Radius + (k - innerRows - middleRows + 1) * tpcOuterRadialPitch;
152157

153-
AddLayer(Form("tpc_%d", k), rowRadius, zLength, radLPerRow, 0, phiResMean, zResMean, 1.0f);
158+
AddLayer(Form("tpc_%d", k), rowRadius, zLength, radLPerRow, 0, phiResMean, zResMean, 1.0f, 2);
154159
}
155160
}
156161

@@ -159,7 +164,9 @@ void FastTracker::AddTPC(float phiResMean, float zResMean)
159164
int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack)
160165
{
161166
hits.clear();
162-
int nIntercepts = 0;
167+
nIntercepts = 0;
168+
nSiliconPoints = 0;
169+
nGasPoints = 0;
163170
std::array<float, 3> posIni; // provision for != PV
164171
inputTrack.getXYZGlo(posIni);
165172
float initialRadius = std::hypot(posIni[0], posIni[1]);
@@ -172,7 +179,7 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
172179
// check if layer is doable
173180
if (layers[il].r < initialRadius)
174181
continue; // this layer should not be attempted, but go ahead
175-
if (layers[il].eff < 1e-5)
182+
if (layers[il].type == 0)
176183
continue; // inert layer, skip
177184

178185
// check if layer is reached
@@ -240,6 +247,9 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
240247
// +-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+
241248
// Inward pass to calculate covariances
242249
for (int il = lastLayerReached; il >= firstLayerReached; il--) {
250+
if (layers[il].type == 0)
251+
continue; // inert layer, skip
252+
243253
float targetX = 1e+3;
244254
inputTrack.getXatLabR(layers[il].r, targetX, magneticField);
245255
if (targetX > 999)
@@ -271,9 +281,14 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
271281
static_cast<float>(xyz1[2])};
272282
const o2::track::TrackParametrization<float>::dim3_t hitpointcov = {layers[il].resRPhi * layers[il].resRPhi, 0.f, layers[il].resZ * layers[il].resZ};
273283
outputTrack.update(hitpoint, hitpointcov);
284+
outputTrack.checkCovariance();
285+
286+
if (layers[il].type == 1)
287+
nSiliconPoints++; // count silicon hits
288+
if (layers[il].type == 2)
289+
nGasPoints++; // count TPC/gas hits
274290

275291
hits.push_back(thisHit);
276-
outputTrack.checkCovariance();
277292
}
278293

279294
// backpropagate to original radius

ALICE3/Core/FastTracker.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class FastTracker
3434
FastTracker();
3535
virtual ~FastTracker() {}
3636

37-
void AddLayer(TString name, float r, float z, float x0, float xrho, float resRPhi = 0.0f, float resZ = 0.0f, float eff = 0.0f);
37+
void AddLayer(TString name, float r, float z, float x0, float xrho, float resRPhi = 0.0f, float resZ = 0.0f, float eff = 0.0f, int type = 0);
3838

3939
void AddSiliconALICE3v4();
4040
void AddSiliconALICE3v1();
@@ -56,6 +56,11 @@ class FastTracker
5656
uint64_t covMatOK; // cov mat has negative eigenvals
5757
uint64_t covMatNotOK; // cov mat has negative eigenvals
5858

59+
// last track information
60+
int nIntercepts; // found in first outward propagation
61+
int nSiliconPoints; // silicon-based space points added to track
62+
int nGasPoints; // tpc-based space points added to track
63+
5964
ClassDef(FastTracker, 1);
6065
};
6166

ALICE3/DataModel/OTFMulticharm.h

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,25 @@ DECLARE_SOA_COLUMN(DCAXiCCDaughters, dcaXiCCDaughters, float);
3838
DECLARE_SOA_COLUMN(MXiC, mXiC, float);
3939
DECLARE_SOA_COLUMN(MXiCC, mXiCC, float);
4040

41+
// kine vars
42+
DECLARE_SOA_COLUMN(Pt, pt, float);
43+
DECLARE_SOA_COLUMN(Eta, eta, float);
44+
4145
} // namespace otfmulticharm
42-
DECLARE_SOA_TABLE(MultiCharmStates, "AOD", "MultiCharmStates",
46+
DECLARE_SOA_TABLE(MCharmIndices, "AOD", "MCharmIndices",
4347
o2::soa::Index<>,
44-
otfcascade::CascadeId,
45-
otfcascade::XiCPion1Id,
46-
otfcascade::XiCPion2Id,
47-
otfcascade::XiCCPionId,
48-
otfcascade::DCAXiCDaughters,
49-
otfcascade::DCAXiCCDaughters,
50-
otfcascade::MXiC,
51-
otfcascade::MXiCC);
52-
53-
using MultiCharmState = MultiCharmState::iterator;
48+
otfmulticharm::CascadeId,
49+
otfmulticharm::XiCPion1Id,
50+
otfmulticharm::XiCPion2Id,
51+
otfmulticharm::XiCCPionId);
52+
53+
DECLARE_SOA_TABLE(MCharmCores, "AOD", "MCharmCores",
54+
otfmulticharm::DCAXiCDaughters,
55+
otfmulticharm::DCAXiCCDaughters,
56+
otfmulticharm::MXiC,
57+
otfmulticharm::MXiCC,
58+
otfmulticharm::Pt,
59+
otfmulticharm::Eta);
5460

5561
} // namespace o2::aod
5662

ALICE3/DataModel/tracksAlice3.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,18 @@ namespace o2::aod
2727
namespace track_alice3
2828
{
2929
DECLARE_SOA_COLUMN(IsReconstructed, isReconstructed, bool); //! is reconstructed or not
30+
DECLARE_SOA_COLUMN(NSiliconHits, nSiliconHits, int); //! number of silicon hits
31+
DECLARE_SOA_COLUMN(NTPCHits, nTPCHits, int); //! number of tpc hits
3032
} // namespace track_alice3
3133
DECLARE_SOA_TABLE(TracksAlice3, "AOD", "TRACKSALICE3",
3234
track_alice3::IsReconstructed);
33-
3435
using TrackAlice3 = TracksAlice3::iterator;
3536

37+
DECLARE_SOA_TABLE(TracksExtraA3, "AOD", "TracksExtraA3",
38+
track_alice3::NSiliconHits,
39+
track_alice3::NTPCHits);
40+
using TrackExtraA3 = TracksExtraA3::iterator;
41+
3642
} // namespace o2::aod
3743

3844
#endif // ALICE3_DATAMODEL_TRACKSALICE3_H_

ALICE3/TableProducer/OTF/onTheFlyTracker.cxx

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ struct OnTheFlyTracker {
7777
Produces<aod::TracksDCACov> tracksDCACov;
7878
Produces<aod::CollisionsAlice3> collisionsAlice3;
7979
Produces<aod::TracksAlice3> TracksAlice3;
80+
Produces<aod::TracksExtraA3> TracksExtraA3;
8081
Produces<aod::UpgradeCascades> upgradeCascades;
8182

8283
// optionally produced, empty (to be tuned later)
@@ -141,6 +142,8 @@ struct OnTheFlyTracker {
141142
struct : ConfigurableGroup {
142143
std::string prefix = "fastTrackerSettings"; // JSON group name
143144
Configurable<int> minSiliconHits{"minSiliconHits", 4, "minimum number of silicon hits to accept track"};
145+
Configurable<int> minSiliconHitsIfTPCUsed{"minSiliconHitsIfTPCUsed", 2, "minimum number of silicon hits to accept track in case TPC info is present"};
146+
Configurable<int> minTPCClusters{"minTPCClusters", 70, "minimum number of TPC hits necessary to consider minSiliconHitsIfTPCUsed"};
144147
Configurable<int> alice3detector{"alice3detector", 0, "0: ALICE 3 v1, 1: ALICE 3 v4"};
145148
Configurable<bool> applyZacceptance{"applyZacceptance", false, "apply z limits to detector layers or not"};
146149
} fastTrackerSettings; // allows for gap between peak and bg in case someone wants to
@@ -162,18 +165,29 @@ struct OnTheFlyTracker {
162165
TrackAlice3() = default;
163166
~TrackAlice3() = default;
164167
TrackAlice3(const TrackAlice3& src) = default;
165-
TrackAlice3(const o2::track::TrackParCov& src, const int64_t label, const float t = 0, const float te = 1, bool decayDauInput = false, bool weakDecayDauInput = false, int isUsedInCascadingInput = 0) : o2::track::TrackParCov(src),
166-
mcLabel{label},
167-
timeEst{t, te},
168-
isDecayDau(decayDauInput),
169-
isWeakDecayDau(weakDecayDauInput),
170-
isUsedInCascading(isUsedInCascadingInput) {}
168+
TrackAlice3(const o2::track::TrackParCov& src, const int64_t label,
169+
const float t = 0,
170+
const float te = 1,
171+
bool decayDauInput = false,
172+
bool weakDecayDauInput = false,
173+
int isUsedInCascadingInput = 0,
174+
int nSiliconHitsInput = 0,
175+
int nTPCHitsInput = 0) : o2::track::TrackParCov(src),
176+
mcLabel{label},
177+
timeEst{t, te},
178+
isDecayDau(decayDauInput),
179+
isWeakDecayDau(weakDecayDauInput),
180+
isUsedInCascading(isUsedInCascadingInput),
181+
nSiliconHits(nSiliconHitsInput),
182+
nTPCHits(nTPCHitsInput) {}
171183
const TimeEst& getTimeMUS() const { return timeEst; }
172184
int64_t mcLabel;
173185
TimeEst timeEst; ///< time estimate in ns
174186
bool isDecayDau;
175187
bool isWeakDecayDau;
176188
int isUsedInCascading; // 0: not at all, 1: is a cascade, 2: is a bachelor, 3: is a pion, 4: is a proton
189+
int nSiliconHits;
190+
int nTPCHits;
177191
};
178192

179193
// Helper struct to pass cascade information
@@ -622,7 +636,9 @@ struct OnTheFlyTracker {
622636
std::vector<o2::track::TrackParCov> xiDaughterTrackParCovsPerfect(3);
623637
std::vector<o2::track::TrackParCov> xiDaughterTrackParCovsTracked(3);
624638
std::vector<bool> isReco(3);
625-
std::vector<int> nHits(3);
639+
std::vector<int> nHits(3); // total
640+
std::vector<int> nSiliconHits(3); // silicon type
641+
std::vector<int> nTPCHits(3); // TPC type
626642
std::vector<o2::delphes::DelphesO2TrackSmearer> smearer = {mSmearer0, mSmearer1, mSmearer2, mSmearer3, mSmearer4, mSmearer5};
627643
if (treatXi && mcParticle.pdgCode() == 3312) {
628644
histos.fill(HIST("hXiBuilding"), 0.0f);
@@ -636,11 +652,16 @@ struct OnTheFlyTracker {
636652

637653
for (int i = 0; i < 3; i++) {
638654
isReco[i] = false;
655+
nHits[i] = 0;
656+
nSiliconHits[i] = 0;
657+
nTPCHits[i] = 0;
639658
if (enableSecondarySmearing) {
640659

641660
nHits[i] = fastTracker.FastTrack(xiDaughterTrackParCovsPerfect[i], xiDaughterTrackParCovsTracked[i]);
661+
nSiliconHits[i] = fastTracker.nSiliconPoints;
662+
nTPCHits[i] = fastTracker.nGasPoints;
642663

643-
if (nHits[i] >= fastTrackerSettings.minSiliconHits) {
664+
if (nSiliconHits[i] >= fastTrackerSettings.minSiliconHits || (nSiliconHits[i] >= fastTrackerSettings.minSiliconHitsIfTPCUsed && nTPCHits[i] >= fastTrackerSettings.minTPCClusters)) {
644665
isReco[i] = true;
645666
} else {
646667
continue; // extra sure
@@ -659,7 +680,7 @@ struct OnTheFlyTracker {
659680
histos.fill(HIST("hNaNBookkeeping"), i + 1, 1.0f);
660681
}
661682
if (isReco[i]) {
662-
tracksAlice3.push_back(TrackAlice3{xiDaughterTrackParCovsTracked[i], mcParticle.globalIndex(), t, 100.f * 1e-3, true, true, i + 2});
683+
tracksAlice3.push_back(TrackAlice3{xiDaughterTrackParCovsTracked[i], mcParticle.globalIndex(), t, 100.f * 1e-3, true, true, i + 2, nSiliconHits[i], nTPCHits[i]});
663684
} else {
664685
ghostTracksAlice3.push_back(TrackAlice3{xiDaughterTrackParCovsTracked[i], mcParticle.globalIndex(), t, 100.f * 1e-3, true, true, i + 2});
665686
}
@@ -1016,6 +1037,7 @@ struct OnTheFlyTracker {
10161037
trackParCov.getSigmaTgl2(), trackParCov.getSigma1PtY(), trackParCov.getSigma1PtZ(), trackParCov.getSigma1PtSnp(), trackParCov.getSigma1PtTgl(),
10171038
trackParCov.getSigma1Pt2());
10181039
tracksLabels(trackParCov.mcLabel, 0);
1040+
TracksExtraA3(trackParCov.nSiliconHits, trackParCov.nTPCHits);
10191041

10201042
// populate extra tables if required to do so
10211043
if (populateTracksExtra) {
@@ -1063,6 +1085,7 @@ struct OnTheFlyTracker {
10631085
trackParCov.getSigmaTgl2(), trackParCov.getSigma1PtY(), trackParCov.getSigma1PtZ(), trackParCov.getSigma1PtSnp(), trackParCov.getSigma1PtTgl(),
10641086
trackParCov.getSigma1Pt2());
10651087
tracksLabels(trackParCov.mcLabel, 0);
1088+
TracksExtraA3(trackParCov.nSiliconHits, trackParCov.nTPCHits);
10661089

10671090
// populate extra tables if required to do so
10681091
if (populateTracksExtra) {

0 commit comments

Comments
 (0)