Skip to content

Commit 1526f0d

Browse files
committed
Adding code format
1 parent 6307d9d commit 1526f0d

File tree

4 files changed

+102
-105
lines changed

4 files changed

+102
-105
lines changed

RecoHGCal/TICL/interface/SuperclusteringDNNInputs.h

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -99,34 +99,34 @@ namespace ticl {
9999
/* Third version of DNN by Gamze Sokmen and Shamik Ghosh, making use of time information as new variables.
100100
Uses features : ['DeltaEta', 'DeltaPhi', 'multi_en', 'multi_eta', 'multi_pt', 'seedEta','seedPhi','seedEn', 'seedPt', theta', 'theta_xz_seedFrame', 'theta_yz_seedFrame', 'theta_xy_cmsFrame', 'theta_yz_cmsFrame', 'theta_xz_cmsFrame', 'explVar', 'explVarRatio', 'mod_deltaTime']
101101
*/
102-
102+
103103
class SuperclusteringDNNInputV3 : public AbstractSuperclusteringDNNInput {
104-
public:
105-
unsigned int featureCount() const override { return 18; }
106-
107-
std::vector<float> computeVector(ticl::Trackster const& ts_base, ticl::Trackster const& ts_toCluster) override;
108-
109-
std::vector<std::string> featureNames() const override {
110-
return {"DeltaEtaBaryc",
111-
"DeltaPhiBaryc",
112-
"multi_en",
113-
"multi_eta",
114-
"multi_pt",
115-
"seedEta",
116-
"seedPhi",
117-
"seedEn",
118-
"seedPt",
119-
"theta",
120-
"theta_xz_seedFrame",
121-
"theta_yz_seedFrame",
122-
"theta_xy_cmsFrame",
123-
"theta_yz_cmsFrame",
124-
"theta_xz_cmsFrame",
125-
"explVar",
126-
"explVarRatio",
127-
"mod_deltaTime"};
128-
}
129-
};
104+
public:
105+
unsigned int featureCount() const override { return 18; }
106+
107+
std::vector<float> computeVector(ticl::Trackster const& ts_base, ticl::Trackster const& ts_toCluster) override;
108+
109+
std::vector<std::string> featureNames() const override {
110+
return {"DeltaEtaBaryc",
111+
"DeltaPhiBaryc",
112+
"multi_en",
113+
"multi_eta",
114+
"multi_pt",
115+
"seedEta",
116+
"seedPhi",
117+
"seedEn",
118+
"seedPt",
119+
"theta",
120+
"theta_xz_seedFrame",
121+
"theta_yz_seedFrame",
122+
"theta_xy_cmsFrame",
123+
"theta_yz_cmsFrame",
124+
"theta_xz_cmsFrame",
125+
"explVar",
126+
"explVarRatio",
127+
"mod_deltaTime"};
128+
}
129+
};
130130

131131
std::unique_ptr<AbstractSuperclusteringDNNInput> makeSuperclusteringDNNInputFromString(std::string dnnVersion);
132132
} // namespace ticl

RecoHGCal/TICL/plugins/SuperclusteringSampleDumper.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ void SuperclusteringSampleDumper::analyze(const edm::Event& evt, const edm::Even
151151
std::iota(trackstersIndicesPt.begin(), trackstersIndicesPt.end(), 0);
152152
std::stable_sort(
153153
trackstersIndicesPt.begin(), trackstersIndicesPt.end(), [&inputTracksters](unsigned int i1, unsigned int i2) {
154-
return (*inputTracksters)[i1].raw_energy()*std::sin((*inputTracksters)[i1].barycenter().Theta()) > (*inputTracksters)[i2].raw_energy()*std::sin((*inputTracksters)[i2].barycenter().Theta());
154+
return (*inputTracksters)[i1].raw_energy() * std::sin((*inputTracksters)[i1].barycenter().Theta()) >
155+
(*inputTracksters)[i2].raw_energy() * std::sin((*inputTracksters)[i2].barycenter().Theta());
155156
});
156157

157158
// Order of loops are reversed compared to SuperclusteringProducer (here outer is seed, inner is candidate), for performance reasons.
@@ -162,7 +163,7 @@ void SuperclusteringSampleDumper::analyze(const edm::Event& evt, const edm::Even
162163
trackstersIndicesPt[ts_seed_idx_pt]; // Index of seed trackster in input collection (not in pT sorted collection)
163164
Trackster const& ts_seed = (*inputTracksters)[ts_seed_idx_input];
164165

165-
if (ts_seed.raw_energy()*std::sin(ts_seed.barycenter().Theta()) < seedPtThreshold_)
166+
if (ts_seed.raw_energy() * std::sin(ts_seed.barycenter().Theta()) < seedPtThreshold_)
166167
break; // All further seeds will have lower pT than threshold (due to pT sorting)
167168

168169
if (!checkExplainedVarianceRatioCut(ts_seed))

RecoHGCal/TICL/plugins/TracksterLinkingbySuperClusteringDNN.cc

Lines changed: 43 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ void TracksterLinkingbySuperClusteringDNN::linkTracksters(
119119
std::iota(trackstersIndicesPt.begin(), trackstersIndicesPt.end(), 0);
120120
std::stable_sort(
121121
trackstersIndicesPt.begin(), trackstersIndicesPt.end(), [&inputTracksters](unsigned int i1, unsigned int i2) {
122-
return inputTracksters[i1].raw_energy()*std::sin(inputTracksters[i1].barycenter().Theta()) > inputTracksters[i2].raw_energy()*std::sin(inputTracksters[i2].barycenter().Theta());
122+
return inputTracksters[i1].raw_energy() * std::sin(inputTracksters[i1].barycenter().Theta()) >
123+
inputTracksters[i2].raw_energy() * std::sin(inputTracksters[i2].barycenter().Theta());
123124
});
124125

125126
/* Evaluate in minibatches since running with trackster count = 3000 leads to a short-lived ~15GB memory allocation
@@ -149,8 +150,8 @@ void TracksterLinkingbySuperClusteringDNN::linkTracksters(
149150
Trackster const& ts_cand = inputTracksters[trackstersIndicesPt[ts_cand_idx_pt]];
150151

151152
if (ts_cand.raw_energy() < candidateEnergyThreshold_ ||
152-
// !checkExplainedVarianceRatioCut(ts_cand)) // || !trackstersPassesPIDCut(ts_cand)
153-
!checkExplainedVarianceRatioCut(ts_cand))// || !trackstersPassesPIDCut(ts_cand))
153+
// !checkExplainedVarianceRatioCut(ts_cand)) // || !trackstersPassesPIDCut(ts_cand)
154+
!checkExplainedVarianceRatioCut(ts_cand)) // || !trackstersPassesPIDCut(ts_cand))
154155
continue;
155156

156157
auto& tracksterTiles = tracksterTilesBothEndcaps_pt[ts_cand.barycenter().eta() > 0];
@@ -168,7 +169,7 @@ void TracksterLinkingbySuperClusteringDNN::linkTracksters(
168169

169170
Trackster const& ts_seed = inputTracksters[trackstersIndicesPt[ts_seed_idx_pt]];
170171

171-
if (ts_seed.raw_energy()*std::sin(ts_seed.barycenter().Theta()) < seedPtThreshold_)
172+
if (ts_seed.raw_energy() * std::sin(ts_seed.barycenter().Theta()) < seedPtThreshold_)
172173
break; // All further seeds will have lower pT than threshold (due to pT sorting)
173174

174175
if (!checkExplainedVarianceRatioCut(ts_seed) || !trackstersPassesPIDCut(ts_seed))
@@ -249,95 +250,91 @@ void TracksterLinkingbySuperClusteringDNN::linkTracksters(
249250
Also mask seeds (only needed to add tracksters not in a supercluster to the output). */
250251
std::vector<bool> tracksterMask(tracksterCount, false);
251252

252-
253253
/////////////////////////////////////////////////////////////////////////TRKBUILDINGMOD
254-
254+
255255
unsigned int previousCandTrackster_idx = std::numeric_limits<unsigned int>::max();
256256
unsigned int bestSeedForCurrentCandidate_idx = std::numeric_limits<unsigned int>::max();
257257
float bestSeedForCurrentCandidate_dnnScore = nnWorkingPoint_;
258-
258+
259259
// Track which tracksters were ever used as candidates
260260
std::vector<bool> usedAsCandidate(tracksterCount, false);
261-
262-
261+
263262
auto onCandidateTransition = [&](unsigned ts_cand_idx) {
264263
if (bestSeedForCurrentCandidate_idx < std::numeric_limits<unsigned int>::max()) {
265-
tracksterMask[ts_cand_idx] = true; // Mask the candidate so it’s not reused as a seed
264+
tracksterMask[ts_cand_idx] = true; // Mask the candidate so it’s not reused as a seed
266265
usedAsCandidate[ts_cand_idx] = true;
267-
266+
268267
// Find the supercluster the seed belongs to (even if it's already used in another supercluster)
269268
// Find existing supercluster for the seed
270-
auto seed_supercluster_it =
271-
std::find_if(outputSuperclusters.begin(),
272-
outputSuperclusters.end(),
273-
[bestSeedForCurrentCandidate_idx](const std::vector<unsigned int>& sc) {
274-
return sc[0] == bestSeedForCurrentCandidate_idx;
275-
});
269+
auto seed_supercluster_it = std::find_if(outputSuperclusters.begin(),
270+
outputSuperclusters.end(),
271+
[bestSeedForCurrentCandidate_idx](const std::vector<unsigned int>& sc) {
272+
return sc[0] == bestSeedForCurrentCandidate_idx;
273+
});
276274
if (seed_supercluster_it == outputSuperclusters.end()) {
277-
// No supercluster exists for this seed, create one
278-
outputSuperclusters.emplace_back(std::initializer_list<unsigned int>{bestSeedForCurrentCandidate_idx});
279-
resultTracksters.emplace_back(inputTracksters[bestSeedForCurrentCandidate_idx]);
280-
linkedTracksterIdToInputTracksterId.emplace_back(
281-
std::initializer_list<unsigned int>{bestSeedForCurrentCandidate_idx});
282-
seed_supercluster_it = outputSuperclusters.end() - 1;
283-
tracksterMask[bestSeedForCurrentCandidate_idx] = true;
275+
// No supercluster exists for this seed, create one
276+
outputSuperclusters.emplace_back(std::initializer_list<unsigned int>{bestSeedForCurrentCandidate_idx});
277+
resultTracksters.emplace_back(inputTracksters[bestSeedForCurrentCandidate_idx]);
278+
linkedTracksterIdToInputTracksterId.emplace_back(
279+
std::initializer_list<unsigned int>{bestSeedForCurrentCandidate_idx});
280+
seed_supercluster_it = outputSuperclusters.end() - 1;
281+
tracksterMask[bestSeedForCurrentCandidate_idx] = true;
284282
}
285-
283+
286284
unsigned int indexIntoOutputTracksters = seed_supercluster_it - outputSuperclusters.begin();
287285
seed_supercluster_it->push_back(ts_cand_idx);
288286
resultTracksters[indexIntoOutputTracksters].mergeTracksters(inputTracksters[ts_cand_idx]);
289287
linkedTracksterIdToInputTracksterId[indexIntoOutputTracksters].push_back(ts_cand_idx);
290-
288+
291289
assert(outputSuperclusters.size() == resultTracksters.size() &&
292-
outputSuperclusters.size() == linkedTracksterIdToInputTracksterId.size());
290+
outputSuperclusters.size() == linkedTracksterIdToInputTracksterId.size());
293291
assert(seed_supercluster_it->size() == linkedTracksterIdToInputTracksterId[indexIntoOutputTracksters].size());
294-
292+
295293
bestSeedForCurrentCandidate_idx = std::numeric_limits<unsigned int>::max();
296294
bestSeedForCurrentCandidate_dnnScore = nnWorkingPoint_;
297295
}
298296
};
299-
297+
300298
// Iterate over minibatches
301299
for (unsigned int batchIndex = 0; batchIndex < batchOutputs.size(); batchIndex++) {
302300
std::vector<float> const& currentBatchOutputs = batchOutputs[batchIndex];
303-
301+
304302
for (unsigned int indexInBatch = 0; indexInBatch < tracksterIndicesUsedInDNN[batchIndex].size(); indexInBatch++) {
305303
assert(indexInBatch < static_cast<unsigned int>(batchOutputs[batchIndex].size()));
306-
304+
307305
const unsigned int ts_seed_idx = tracksterIndicesUsedInDNN[batchIndex][indexInBatch].first;
308306
const unsigned int ts_cand_idx = tracksterIndicesUsedInDNN[batchIndex][indexInBatch].second;
309307
const float currentDnnScore = currentBatchOutputs[indexInBatch];
310-
308+
311309
if (previousCandTrackster_idx != std::numeric_limits<unsigned int>::max() &&
312-
ts_cand_idx != previousCandTrackster_idx) {
313-
onCandidateTransition(previousCandTrackster_idx);
310+
ts_cand_idx != previousCandTrackster_idx) {
311+
onCandidateTransition(previousCandTrackster_idx);
314312
}
315-
313+
316314
// Ignore seed if it was previously used as a candidate
317-
if (currentDnnScore > bestSeedForCurrentCandidate_dnnScore && !usedAsCandidate[ts_seed_idx]) {
318-
bestSeedForCurrentCandidate_idx = ts_seed_idx;
319-
bestSeedForCurrentCandidate_dnnScore = currentDnnScore;
315+
if (currentDnnScore > bestSeedForCurrentCandidate_dnnScore && !usedAsCandidate[ts_seed_idx]) {
316+
bestSeedForCurrentCandidate_idx = ts_seed_idx;
317+
bestSeedForCurrentCandidate_dnnScore = currentDnnScore;
320318
}
321-
319+
322320
previousCandTrackster_idx = ts_cand_idx;
323321
}
324322
}
325323
onCandidateTransition(previousCandTrackster_idx);
326-
324+
327325
// Create singleton superclusters for unused tracksters with enough pt
328326
for (unsigned int ts_id = 0; ts_id < tracksterCount; ts_id++) {
329-
if (!tracksterMask[ts_id] && inputTracksters[ts_id].raw_energy()*std::sin(inputTracksters[ts_id].barycenter().Theta()) >= seedPtThreshold_) {
327+
if (!tracksterMask[ts_id] &&
328+
inputTracksters[ts_id].raw_energy() * std::sin(inputTracksters[ts_id].barycenter().Theta()) >=
329+
seedPtThreshold_) {
330330
outputSuperclusters.emplace_back(std::initializer_list<unsigned int>{ts_id});
331331
resultTracksters.emplace_back(inputTracksters[ts_id]);
332332
linkedTracksterIdToInputTracksterId.emplace_back(std::initializer_list<unsigned int>{ts_id});
333333
}
334334
}
335-
336-
337-
335+
338336
/////////////////////////////////////////////////////////////////////////TRKBUILDINGMOD
339-
340-
337+
341338
#ifdef EDM_ML_DEBUG
342339
for (std::vector<unsigned int> const& sc : outputSuperclusters) {
343340
std::ostringstream s;

RecoHGCal/TICL/src/SuperclusteringDNNInputs.cc

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Author: Theo Cuisset - [email protected]
33
// Date: 11/2023
44

5-
// Modified by Gamze Sokmen - [email protected]
5+
// Modified by Gamze Sokmen - [email protected]
66
// Changes: Implementation of the delta time feature under a new DNN input version (v3) for the superclustering DNN and correcting the seed pT calculation.
77
// Date: 07/2025
88

@@ -36,7 +36,7 @@ namespace ticl {
3636
ts_base.barycenter().Eta(), //seedEta
3737
ts_base.barycenter().Phi(), //seedPhi
3838
ts_base.raw_energy(), //seedEn
39-
(ts_base.raw_energy() * std::sin(ts_base.barycenter().Theta())), //seedPt
39+
(ts_base.raw_energy() * std::sin(ts_base.barycenter().Theta())), //seedPt
4040
}};
4141
}
4242

@@ -95,7 +95,7 @@ namespace ticl {
9595
ts_base.barycenter().Eta(), //seedEta
9696
ts_base.barycenter().Phi(), //seedPhi
9797
ts_base.raw_energy(), //seedEn
98-
(ts_base.raw_energy() * std::sin(ts_base.barycenter().Theta())), //seedPt
98+
(ts_base.raw_energy() * std::sin(ts_base.barycenter().Theta())), //seedPt
9999
static_cast<float>(Angle(pca_cand_cmsFrame, pca_seed_cmsFrame)), // theta : angle between seed and candidate
100100
Angle2D(XYVectorF(pca_cand_seedFrame.x(), pca_cand_seedFrame.z()), XYVectorF(0, 1)), // theta_xz_seedFrame
101101
Angle2D(XYVectorF(pca_cand_seedFrame.y(), pca_cand_seedFrame.z()), XYVectorF(0, 1)), // theta_yz_seedFrame
@@ -131,36 +131,35 @@ namespace ticl {
131131
<< "Sum of eigenvalues was zero for trackster. Could not compute explained variance ratio.";
132132
}
133133

134-
135134
// modified deltaTime: set the default values <-50 or >50 to -5
136-
float raw_dt = ts_toCluster.time() - ts_base.time();
137-
float mod_deltaTime = ( raw_dt < -kDeltaTimeDefault || raw_dt > kDeltaTimeDefault ) ? kBadDeltaTime : raw_dt;
135+
float raw_dt = ts_toCluster.time() - ts_base.time();
136+
float mod_deltaTime = (raw_dt < -kDeltaTimeDefault || raw_dt > kDeltaTimeDefault) ? kBadDeltaTime : raw_dt;
138137

139138
return {{
140-
std::abs(ts_toCluster.barycenter().Eta()) - std::abs(ts_base.barycenter().Eta()), // DeltaEtaBaryc
141-
ts_toCluster.barycenter().Phi() - ts_base.barycenter().phi(), // DeltaPhiBaryc
142-
ts_toCluster.raw_energy(), // multi_en
143-
ts_toCluster.barycenter().Eta(), // multi_eta
144-
ts_toCluster.raw_energy() * std::sin(ts_toCluster.barycenter().Theta()), // multi_pt
145-
ts_base.barycenter().Eta(), // seedEta
146-
ts_base.barycenter().Phi(), // seedPhi
147-
ts_base.raw_energy(), // seedEn
148-
ts_base.raw_energy() * std::sin(ts_base.barycenter().Theta()), // seedPt
149-
static_cast<float>(Angle(pca_cand_cmsFrame, pca_seed_cmsFrame)), // theta
150-
Angle2D(XYVectorF(pca_cand_seedFrame.x(), pca_cand_seedFrame.z()), // theta_xz_seedFrame
151-
XYVectorF(0,1)),
152-
Angle2D(XYVectorF(pca_cand_seedFrame.y(), pca_cand_seedFrame.z()), // theta_yz_seedFrame
153-
XYVectorF(0,1)),
154-
Angle2D(XYVectorF(pca_cand_cmsFrame.x(), pca_cand_cmsFrame.y()), // theta_xy_cmsFrame
155-
XYVectorF(pca_seed_cmsFrame.x(), pca_seed_cmsFrame.y())),
156-
Angle2D(XYVectorF(pca_cand_cmsFrame.y(), pca_cand_cmsFrame.z()), // theta_yz_cmsFrame
157-
XYVectorF(pca_seed_cmsFrame.y(), pca_seed_cmsFrame.z())),
158-
Angle2D(XYVectorF(pca_cand_cmsFrame.x(), pca_cand_cmsFrame.z()), // theta_xz_cmsFrame
159-
XYVectorF(pca_seed_cmsFrame.x(), pca_seed_cmsFrame.z())),
160-
ts_toCluster.eigenvalues()[0], // explVar
161-
explVarRatio, // explVarRatio
162-
mod_deltaTime // mod_deltaTime
163-
}};
139+
std::abs(ts_toCluster.barycenter().Eta()) - std::abs(ts_base.barycenter().Eta()), // DeltaEtaBaryc
140+
ts_toCluster.barycenter().Phi() - ts_base.barycenter().phi(), // DeltaPhiBaryc
141+
ts_toCluster.raw_energy(), // multi_en
142+
ts_toCluster.barycenter().Eta(), // multi_eta
143+
ts_toCluster.raw_energy() * std::sin(ts_toCluster.barycenter().Theta()), // multi_pt
144+
ts_base.barycenter().Eta(), // seedEta
145+
ts_base.barycenter().Phi(), // seedPhi
146+
ts_base.raw_energy(), // seedEn
147+
ts_base.raw_energy() * std::sin(ts_base.barycenter().Theta()), // seedPt
148+
static_cast<float>(Angle(pca_cand_cmsFrame, pca_seed_cmsFrame)), // theta
149+
Angle2D(XYVectorF(pca_cand_seedFrame.x(), pca_cand_seedFrame.z()), // theta_xz_seedFrame
150+
XYVectorF(0, 1)),
151+
Angle2D(XYVectorF(pca_cand_seedFrame.y(), pca_cand_seedFrame.z()), // theta_yz_seedFrame
152+
XYVectorF(0, 1)),
153+
Angle2D(XYVectorF(pca_cand_cmsFrame.x(), pca_cand_cmsFrame.y()), // theta_xy_cmsFrame
154+
XYVectorF(pca_seed_cmsFrame.x(), pca_seed_cmsFrame.y())),
155+
Angle2D(XYVectorF(pca_cand_cmsFrame.y(), pca_cand_cmsFrame.z()), // theta_yz_cmsFrame
156+
XYVectorF(pca_seed_cmsFrame.y(), pca_seed_cmsFrame.z())),
157+
Angle2D(XYVectorF(pca_cand_cmsFrame.x(), pca_cand_cmsFrame.z()), // theta_xz_cmsFrame
158+
XYVectorF(pca_seed_cmsFrame.x(), pca_seed_cmsFrame.z())),
159+
ts_toCluster.eigenvalues()[0], // explVar
160+
explVarRatio, // explVarRatio
161+
mod_deltaTime // mod_deltaTime
162+
}};
164163
}
165164

166165
std::unique_ptr<AbstractSuperclusteringDNNInput> makeSuperclusteringDNNInputFromString(std::string dnnInputVersion) {

0 commit comments

Comments
 (0)