Skip to content

Commit 5fbbf2a

Browse files
author
Goetz Gaycken
committed
Added switch to toggle between clusterization algorithms.
Allow to switch between the two clusterization algorithms in the DigitizationAlgorithm. Revert "Remove switch to toggle clusterization." This reverts commit f376e06a6ef80b9ef7a1d2babeb0ea9c32efe3db. Revert "Revert "Restore alt switch."" This reverts commit 6a49a0a383845ca01b596b2828fd1028bc6dca40.
1 parent 3fe50cd commit 5fbbf2a

File tree

6 files changed

+15
-7
lines changed

6 files changed

+15
-7
lines changed

Examples/Algorithms/Digitization/include/ActsExamples/Digitization/DigitizationAlgorithm.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ class DigitizationAlgorithm final : public IAlgorithm {
8282
/// Minimum number of attempts to derive a valid dgitized measurement when
8383
/// random numbers are involved.
8484
std::size_t minMaxRetries = 10;
85+
/// use alternative clusterization
86+
bool alt = false;
8587
};
8688

8789
/// Construct the smearing algorithm.

Examples/Algorithms/Digitization/include/ActsExamples/Digitization/ModuleClusters.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,13 @@ class ModuleClusters {
4040

4141
ModuleClusters(Acts::BinUtility segmentation,
4242
std::vector<Acts::BoundIndices> geoIndices, bool merge,
43-
double nsigma, bool commonCorner)
43+
double nsigma, bool commonCorner, bool alt = false)
4444
: m_segmentation(std::move(segmentation)),
4545
m_geoIndices(std::move(geoIndices)),
4646
m_merge(merge),
4747
m_nsigma(nsigma),
48-
m_commonCorner(commonCorner) {}
48+
m_commonCorner(commonCorner),
49+
m_alt(alt) {}
4950

5051
void add(DigitizedParameters params, simhit_t simhit);
5152
std::vector<std::pair<DigitizedParameters, std::set<simhit_t>>>
@@ -58,6 +59,7 @@ class ModuleClusters {
5859
bool m_merge;
5960
double m_nsigma;
6061
bool m_commonCorner;
62+
bool m_alt;
6163

6264
std::vector<ModuleValue> createCellCollection();
6365
void merge();

Examples/Algorithms/Digitization/src/DigitizationAlgorithm.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,13 @@ ProcessCode DigitizationAlgorithm::execute(const AlgorithmContext& ctx) const {
196196

197197
// Run the digitizer. Iterate over the hits for this surface inside the
198198
// visitor so we do not need to lookup the variant object per-hit.
199+
199200
std::visit(
200201
[&](const auto& digitizer) {
201-
ModuleClusters moduleClusters(
202-
digitizer.geometric.segmentation, digitizer.geometric.indices,
203-
m_cfg.doMerge, m_cfg.mergeNsigma, m_cfg.mergeCommonCorner);
202+
ModuleClusters moduleClusters(digitizer.geometric.segmentation,
203+
digitizer.geometric.indices,
204+
m_cfg.doMerge, m_cfg.mergeNsigma,
205+
m_cfg.mergeCommonCorner, m_cfg.alt);
204206

205207
for (auto h = moduleSimHits.begin(); h != moduleSimHits.end(); ++h) {
206208
const auto& simHit = *h;

Examples/Algorithms/Digitization/src/ModuleClusters.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ void ModuleClusters::mergeAltImpl() {
251251
}
252252

253253
void ModuleClusters::merge() {
254-
if (!m_moduleValues.empty() &&
254+
if (m_alt && !m_moduleValues.empty() &&
255255
std::holds_alternative<Cluster::Cell>(m_moduleValues.front().value)) {
256256
return mergeAlt();
257257
}

Examples/Python/python/acts/examples/simulation.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,7 @@ def addDigitization(
746746
rnd: Optional[acts.examples.RandomNumbers] = None,
747747
doMerge: Optional[bool] = None,
748748
mergeCommonCorner: Optional[bool] = None,
749+
alt: Optional[bool] = None,
749750
minEnergyDeposit: Optional[float] = None,
750751
logLevel: Optional[acts.logging.Level] = None,
751752
) -> acts.examples.Sequencer:
@@ -786,6 +787,7 @@ def addDigitization(
786787
**acts.examples.defaultKWArgs(
787788
doMerge=doMerge,
788789
mergeCommonCorner=mergeCommonCorner,
790+
alt=alt,
789791
),
790792
)
791793

Examples/Python/src/Digitization.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void addDigitization(Context& ctx) {
5656
outputParticleMeasurementsMap, outputSimHitMeasurementsMap,
5757
surfaceByIdentifier, randomNumbers, doOutputCells, doClusterization,
5858
doMerge, mergeCommonCorner, minEnergyDeposit, digitizationConfigs,
59-
minMaxRetries);
59+
minMaxRetries, alt);
6060

6161
c.def_readonly("mergeNsigma", &Config::mergeNsigma);
6262

0 commit comments

Comments
 (0)