You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configurable<bool> fillCandidateMlD0{"fillCandidateMlD0", true, "Fill D0 candidate selection ML scores"};
76
75
Configurable<bool> fillCandidateId{"fillCandidateId", true, "Fill original indices from the candidate table"};
77
76
Configurable<bool> fillCandidateMc{"fillCandidateMc", true, "Fill candidate MC info"};
78
-
Configurable<bool> fillCollBase{"fillCollBase", true, "Fill collision base properties"};
79
-
Configurable<bool> fillCollId{"fillCollId", true, "Fill original collision indices"};
80
-
Configurable<bool> fillMcCollBase{"fillMcCollBase", true, "Fill MC collision base properties"};
81
-
Configurable<bool> fillMcCollId{"fillMcCollId", true, "Fill original MC collision indices"};
82
-
Configurable<bool> fillMcRCollId{"fillMcRCollId", true, "Fill indices of saved derived reconstructed collisions matched to saved derived MC collisions"};
83
-
Configurable<bool> fillParticleBase{"fillParticleBase", true, "Fill MC particle properties"};
84
-
Configurable<bool> fillParticleId{"fillParticleId", true, "Fill original MC indices"};
85
77
// Parameters for production of training samples
86
78
Configurable<float> downSampleBkgFactor{"downSampleBkgFactor", 1., "Fraction of background candidates to keep for ML trainings"};
87
79
Configurable<float> ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"};
88
80
89
81
HfHelper hfHelper;
90
82
SliceCache cache;
91
-
std::map<int, std::vector<int>> matchedCollisions; // indices of derived reconstructed collisions matched to the global indices of MC collisions
92
-
std::map<int, bool> hasMcParticles; // flags for MC collisions with HF particles
if (std::accumulate(doprocess.begin(), doprocess.end(), 0) != 1) {
130
121
LOGP(fatal, "Only one process function can be enabled at a time.");
131
122
}
132
-
}
133
-
134
-
template <bool isMC, typename T>
135
-
// void fillTablesCollision(const T& collision, int isEventReject, int runNumber)
136
-
voidfillTablesCollision(const T& collision)
137
-
{
138
-
if (fillCollBase) {
139
-
rowCollBase(
140
-
collision.posX(),
141
-
collision.posY(),
142
-
collision.posZ(),
143
-
collision.numContrib(),
144
-
collision.centFT0A(),
145
-
collision.centFT0C(),
146
-
collision.centFT0M(),
147
-
collision.centFV0A(),
148
-
collision.multZeqNTracksPV());
149
-
// isEventReject,
150
-
// runNumber);
151
-
}
152
-
if (fillCollId) {
153
-
rowCollId(
154
-
collision.globalIndex());
155
-
}
156
-
ifconstexpr (isMC) {
157
-
if (fillMcRCollId && collision.has_mcCollision()) {
158
-
// Save rowCollBase.lastIndex() at key collision.mcCollisionId()
159
-
LOGF(debug, "Rec. collision %d: Filling derived-collision index %d for MC collision %d", collision.globalIndex(), rowCollBase.lastIndex(), collision.mcCollisionId());
160
-
matchedCollisions[collision.mcCollisionId()].push_back(rowCollBase.lastIndex()); // [] inserts an empty element if it does not exist
161
-
}
162
-
}
163
-
}
164
-
165
-
template <typename T>
166
-
voidfillTablesMcCollision(const T& mcCollision)
167
-
{
168
-
if (fillMcCollBase) {
169
-
rowMcCollBase(
170
-
mcCollision.posX(),
171
-
mcCollision.posY(),
172
-
mcCollision.posZ(),
173
-
mcCollision.centFT0M());
174
-
}
175
-
if (fillMcCollId) {
176
-
rowMcCollId(
177
-
mcCollision.globalIndex());
178
-
}
179
-
if (fillMcRCollId) {
180
-
// Fill the table with the vector of indices of derived reconstructed collisions matched to mcCollision.globalIndex()
// Skip collisions without HF candidates (and without HF particles in matched MC collisions if saving indices of reconstructed collisions matched to MC collisions)
LOGF(debug, "Rec. collision %d has MC collision %d with MC particles? %s", thisCollId, collision.mcCollisionId(), mcCollisionHasMcParticles ? "yes" : "no");
343
254
}
344
-
if (sizeTableCand == 0 && (!fillMcRCollId || !mcCollisionHasMcParticles)) {
255
+
if (sizeTableCand == 0 && (!confDerData.fillMcRCollId || !mcCollisionHasMcParticles)) {
auto particlesThisMcColl = mcParticles.sliceBy(mcParticlesPerMcCollision, thisMcCollId);
437
-
auto sizeTablePart = particlesThisMcColl.size();
438
-
LOGF(debug, "MC collision %d has %d MC particles", thisMcCollId, sizeTablePart);
439
-
// Skip MC collisions without HF particles (and without HF candidates in matched reconstructed collisions if saving indices of reconstructed collisions matched to MC collisions)
0 commit comments