Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#include "ActsExamples/EventData/Cluster.hpp"
#include "ActsExamples/EventData/Measurement.hpp"
#include "ActsExamples/EventData/SimHit.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/EventData/TruthMatching.hpp"
#include "ActsExamples/Framework/DataHandle.hpp"
#include "ActsExamples/Framework/IAlgorithm.hpp"
#include "ActsExamples/Framework/ProcessCode.hpp"
Expand Down Expand Up @@ -144,14 +144,14 @@ class DigitizationAlgorithm final : public IAlgorithm {
WriteDataHandle<CellsMap> m_outputCells{this, "OutputCells"};
WriteDataHandle<ClusterContainer> m_outputClusters{this, "OutputClusters"};

WriteDataHandle<IndexMultimap<SimBarcode>> m_outputMeasurementParticlesMap{
WriteDataHandle<MeasurementParticlesMap> m_outputMeasurementParticlesMap{
this, "OutputMeasurementParticlesMap"};
WriteDataHandle<IndexMultimap<Index>> m_outputMeasurementSimHitsMap{
WriteDataHandle<MeasurementSimHitsMap> m_outputMeasurementSimHitsMap{
this, "OutputMeasurementSimHitsMap"};

WriteDataHandle<InverseMultimap<SimBarcode>> m_outputParticleMeasurementsMap{
WriteDataHandle<ParticleMeasurementsMap> m_outputParticleMeasurementsMap{
this, "OutputParticleMeasurementsMap"};
WriteDataHandle<InverseMultimap<Index>> m_outputSimHitMeasurementsMap{
WriteDataHandle<SimHitMeasurementsMap> m_outputSimHitMeasurementsMap{
this, "OutputSimHitMeasurementsMap"};

/// Construct a fixed-size smearer from a configuration.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,12 @@ struct ModuleValue {
std::vector<double> paramValues = {};
std::vector<double> paramVariances = {};
std::variant<Cluster, Cluster::Cell> value;
std::set<SimHitContainer::size_type> sources = {};
std::set<SimHitIndex> sources = {};
Acts::Ccl::Label label = {Acts::Ccl::NO_LABEL};
};

class ModuleClusters {
public:
using simhit_t = SimHitContainer::size_type;

ModuleClusters(Acts::BinUtility segmentation,
std::vector<Acts::BoundIndices> geoIndices, bool merge,
double nsigma, bool commonCorner)
Expand All @@ -46,8 +44,8 @@ class ModuleClusters {
m_nsigma(nsigma),
m_commonCorner(commonCorner) {}

void add(DigitizedParameters params, simhit_t simhit);
std::vector<std::pair<DigitizedParameters, std::set<simhit_t>>>
void add(DigitizedParameters params, SimHitIndex simhit);
std::vector<std::pair<DigitizedParameters, std::set<SimHitIndex>>>
digitizedParameters();

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@

#include "Acts/Geometry/TrackingGeometry.hpp"
#include "Acts/Utilities/Logger.hpp"
#include "Acts/Utilities/RangeXD.hpp"
#include "ActsExamples/EventData/Measurement.hpp"
#include "ActsExamples/EventData/MuonSpacePoint.hpp"
#include "ActsExamples/EventData/MuonSpacePointCalibrator.hpp"
#include "ActsExamples/EventData/SimHit.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/EventData/TruthMatching.hpp"
#include "ActsExamples/Framework/DataHandle.hpp"
#include "ActsExamples/Framework/IAlgorithm.hpp"
#include "ActsExamples/Framework/ProcessCode.hpp"
Expand Down Expand Up @@ -101,14 +101,14 @@ class MuonSpacePointDigitizer final : public IAlgorithm {
WriteDataHandle<MeasurementContainer> m_outputMeasurements{
this, "OutputMeasurements"};

WriteDataHandle<IndexMultimap<SimBarcode>> m_outputMeasurementParticlesMap{
WriteDataHandle<MeasurementParticlesMap> m_outputMeasurementParticlesMap{
this, "OutputMeasurementParticlesMap"};
WriteDataHandle<IndexMultimap<Index>> m_outputMeasurementSimHitsMap{
WriteDataHandle<MeasurementSimHitsMap> m_outputMeasurementSimHitsMap{
this, "OutputMeasurementSimHitsMap"};

WriteDataHandle<InverseMultimap<SimBarcode>> m_outputParticleMeasurementsMap{
WriteDataHandle<ParticleMeasurementsMap> m_outputParticleMeasurementsMap{
this, "OutputParticleMeasurementsMap"};
WriteDataHandle<InverseMultimap<Index>> m_outputSimHitMeasurementsMap{
WriteDataHandle<SimHitMeasurementsMap> m_outputSimHitMeasurementsMap{
this, "OutputSimHitMeasurementsMap"};
};
} // namespace ActsExamples
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@

auto dup = std::adjacent_find(indices.begin(), indices.end());
if (dup != indices.end()) {
std::invalid_argument(
throw std::invalid_argument(
"Digitization configuration contains duplicate parameter indices");
}

Expand Down Expand Up @@ -150,8 +150,8 @@
MeasurementContainer measurements;
ClusterContainer clusters;

IndexMultimap<SimBarcode> measurementParticlesMap;
IndexMultimap<Index> measurementSimHitsMap;
MeasurementParticlesMap measurementParticlesMap;
MeasurementSimHitsMap measurementSimHitsMap;
measurements.reserve(simHits.size());
measurementParticlesMap.reserve(simHits.size());
measurementSimHitsMap.reserve(simHits.size());
Expand Down Expand Up @@ -271,7 +271,7 @@
continue;
}

moduleClusters.add(std::move(dParameters), simHitIdx);

Check warning on line 274 in Examples/Algorithms/Digitization/src/DigitizationAlgorithm.cpp

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

implicit conversion loses integer precision: 'const size_type' (aka 'const unsigned long') to 'SimHitIndex' (aka 'unsigned int')

See more on https://sonarcloud.io/project/issues?id=acts-project_acts&issues=AZ0A8TIIrGjk5Ovnbuy5&open=AZ0A8TIIrGjk5Ovnbuy5&pullRequest=5254
}

auto digitizeParametersResult = moduleClusters.digitizedParameters();
Expand Down
7 changes: 4 additions & 3 deletions Examples/Algorithms/Digitization/src/ModuleClusters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "Acts/Clusterization/Clusterization.hpp"
#include "Acts/Utilities/Helpers.hpp"
#include "ActsExamples/Digitization/MeasurementCreation.hpp"
#include "ActsExamples/EventData/SimHit.hpp"

#include <array>
#include <cmath>
Expand All @@ -21,7 +22,7 @@

namespace ActsExamples {

void ModuleClusters::add(DigitizedParameters params, simhit_t simhit) {
void ModuleClusters::add(DigitizedParameters params, SimHitIndex simhit) {
ModuleValue mval;
mval.paramIndices = std::move(params.indices);
mval.paramValues = std::move(params.values);
Expand All @@ -42,12 +43,12 @@ void ModuleClusters::add(DigitizedParameters params, simhit_t simhit) {
}
}

std::vector<std::pair<DigitizedParameters, std::set<ModuleClusters::simhit_t>>>
std::vector<std::pair<DigitizedParameters, std::set<SimHitIndex>>>
ModuleClusters::digitizedParameters() {
if (m_merge) { // (re-)build the clusters
merge();
}
std::vector<std::pair<DigitizedParameters, std::set<simhit_t>>> retv;
std::vector<std::pair<DigitizedParameters, std::set<SimHitIndex>>> retv;
for (ModuleValue& mval : m_moduleValues) {
if (std::holds_alternative<Cluster::Cell>(mval.value)) {
// Should never happen! Either the cluster should have
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,8 @@ ProcessCode MuonSpacePointDigitizer::execute(
// need list here for stable addresses
MeasurementContainer measurements;

IndexMultimap<SimBarcode> measurementParticlesMap;
IndexMultimap<Index> measurementSimHitsMap;
MeasurementParticlesMap measurementParticlesMap;
MeasurementSimHitsMap measurementSimHitsMap;
measurements.reserve(gotSimHits.size());
measurementParticlesMap.reserve(gotSimHits.size());
measurementSimHitsMap.reserve(gotSimHits.size());
Expand Down
2 changes: 1 addition & 1 deletion Examples/Algorithms/Geant4/src/ParticleKillAction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ void ParticleKillAction::UserSteppingAction(const G4Step* step) {
// check if we have a particle assigned to track
if (trackIt != eventStore().trackIdMapping.end()) {
// set the outcome of the particle
const ActsFatras::Barcode particleId = trackIt->second;
const SimBarcode particleId = trackIt->second;
if (outOfVolume) {
eventStore().particleOutcome[particleId] =
ActsFatras::ParticleOutcome::KilledVolumeExit;
Expand Down
5 changes: 3 additions & 2 deletions Examples/Algorithms/Geant4/src/SensitiveSteppingAction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include "Acts/Geometry/GeometryIdentifier.hpp"
#include "Acts/Propagator/detail/SteppingLogger.hpp"
#include "Acts/Surfaces/Surface.hpp"
#include "Acts/Utilities/MultiIndex.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/Geant4/AlgebraConverters.hpp"
#include "ActsExamples/Geant4/EventStore.hpp"
#include "ActsExamples/Geant4/SensitiveSurfaceMapper.hpp"
Expand Down Expand Up @@ -67,7 +67,8 @@ std::array<Acts::Vector4, 4u> kinematicsOfStep(const G4Step* step) {
return {preStepPosition, preStepMomentum, postStepPosition, postStepMomentum};
}

ActsFatras::Hit hitFromStep(const G4Step* step, ActsFatras::Barcode particleId,
ActsFatras::Hit hitFromStep(const G4Step* step,
ActsExamples::SimBarcode particleId,
Acts::GeometryIdentifier geoId,
std::int32_t index) {
auto [preStepPosition, preStepMomentum, postStepPosition, postStepMomentum] =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,10 @@

#include "ActsExamples/Generators/Pythia8ProcessGenerator.hpp"

#include "Acts/Utilities/MathHelpers.hpp"
#include "ActsExamples/EventData/SimVertex.hpp"
#include "ActsFatras/EventData/Barcode.hpp"
#include "ActsFatras/EventData/Particle.hpp"
#include "ActsPlugins/FpeMonitoring/FpeMonitor.hpp"

#include <algorithm>
#include <iterator>
#include <ostream>
#include <random>
#include <utility>

#include <HepMC3/WriterAscii.h>
#include <Pythia8/Pythia.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
#pragma once

#include "ActsExamples/EventData/Graph.hpp"
#include "ActsExamples/EventData/Index.hpp"
#include "ActsExamples/EventData/SimHit.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/EventData/SpacePoint.hpp"
#include "ActsExamples/EventData/TruthMatching.hpp"
#include "ActsExamples/Framework/DataHandle.hpp"
#include "ActsExamples/Framework/IAlgorithm.hpp"

Expand Down Expand Up @@ -60,20 +60,20 @@ class TruthGraphBuilder final : public IAlgorithm {
std::vector<std::int64_t> buildFromMeasurements(
const SpacePointContainer& spacePoints,
const SimParticleContainer& particles,
const IndexMultimap<ActsFatras::Barcode>& measPartMap) const;
const MeasurementParticlesMap& measPartMap) const;

std::vector<std::int64_t> buildFromSimhits(
const SpacePointContainer& spacePoints,
const IndexMultimap<Index>& measHitMap, const SimHitContainer& simhits,
const MeasurementSimHitsMap& measHitMap, const SimHitContainer& simhits,
const SimParticleContainer& particles) const;

ReadDataHandle<SpacePointContainer> m_inputSpacePoints{this,
"InputSpacePoints"};
ReadDataHandle<SimParticleContainer> m_inputParticles{this, "InputParticles"};
ReadDataHandle<IndexMultimap<ActsFatras::Barcode>> m_inputMeasParticlesMap{
ReadDataHandle<MeasurementParticlesMap> m_inputMeasParticlesMap{
this, "InputMeasParticlesMap"};
ReadDataHandle<SimHitContainer> m_inputSimhits{this, "InputSimhits"};
ReadDataHandle<IndexMultimap<Index>> m_inputMeasSimhitMap{
ReadDataHandle<MeasurementSimHitsMap> m_inputMeasSimhitMap{
this, "InputMeasSimhitMap"};

WriteDataHandle<Graph> m_outputGraph{this, "OutputGraph"};
Expand Down
8 changes: 4 additions & 4 deletions Examples/Algorithms/TrackFindingGnn/src/TruthGraphBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ TruthGraphBuilder::TruthGraphBuilder(Config config,
std::vector<std::int64_t> TruthGraphBuilder::buildFromMeasurements(
const SpacePointContainer& spacePoints,
const SimParticleContainer& particles,
const IndexMultimap<ActsFatras::Barcode>& measPartMap) const {
const MeasurementParticlesMap& measPartMap) const {
if (m_cfg.targetMinPT < 500_MeV) {
ACTS_WARNING(
"truth graph building based on distance from origin, this breaks down "
"for low pT particles. Consider using a higher target pT value");
}

// Associate tracks to graph, collect momentum
std::unordered_map<ActsFatras::Barcode, std::vector<std::size_t>> tracks;
std::unordered_map<SimBarcode, std::vector<std::size_t>> tracks;

for (auto i = 0ul; i < spacePoints.size(); ++i) {
const auto measId =
Expand Down Expand Up @@ -131,10 +131,10 @@ struct HitInfo {

std::vector<std::int64_t> TruthGraphBuilder::buildFromSimhits(
const SpacePointContainer& spacePoints,
const IndexMultimap<Index>& measHitMap, const SimHitContainer& simhits,
const MeasurementSimHitsMap& measHitMap, const SimHitContainer& simhits,
const SimParticleContainer& particles) const {
// Associate tracks to graph, collect momentum
std::unordered_map<ActsFatras::Barcode, std::vector<HitInfo>> tracks;
std::unordered_map<SimBarcode, std::vector<HitInfo>> tracks;

for (auto i = 0ul; i < spacePoints.size(); ++i) {
const auto measId =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

#include "Acts/Geometry/GeometryIdentifier.hpp"
#include "Acts/Utilities/VectorHelpers.hpp"
#include "ActsExamples/EventData/Index.hpp"
#include "ActsExamples/EventData/Measurement.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/Framework/AlgorithmContext.hpp"
Expand All @@ -23,7 +22,7 @@ namespace ActsExamples {

bool ParticleSelector::MeasurementCounter::isValidParticle(
const SimParticle& particle,
const InverseMultimap<SimBarcode>& particleMeasurementsMap,
const ParticleMeasurementsMap& particleMeasurementsMap,
const MeasurementContainer& measurements) const {
const auto [measurementsBegin, measurementsEnd] =
particleMeasurementsMap.equal_range(particle.particleId());
Expand Down Expand Up @@ -127,11 +126,11 @@ ProcessCode ParticleSelector::execute(const AlgorithmContext& ctx) const {
// prepare input/ output types
const SimParticleContainer& inputParticles = m_inputParticles(ctx);

const static InverseMultimap<SimBarcode> emptyMeasurementParticlesMap;
const InverseMultimap<SimBarcode>& inputMeasurementParticlesMap =
const static ParticleMeasurementsMap emptyParticlesMeasurementMap;
const ParticleMeasurementsMap& inputParticlesMeasurementMap =
m_inputParticleMeasurementsMap.isInitialized()
? m_inputParticleMeasurementsMap(ctx)
: emptyMeasurementParticlesMap;
: emptyParticlesMeasurementMap;

const static MeasurementContainer emptyMeasurements;
const MeasurementContainer& inputMeasurements =
Expand Down Expand Up @@ -168,15 +167,15 @@ ProcessCode ParticleSelector::execute(const AlgorithmContext& ctx) const {
nInvalidHitCount += static_cast<std::size_t>(!validHitCount);

const std::size_t measurementCount =
inputMeasurementParticlesMap.count(p.particleId());
inputParticlesMeasurementMap.count(p.particleId());
const bool validMeasurementCount =
within(measurementCount, m_cfg.measurementsMin, m_cfg.measurementsMax);
nInvalidMeasurementCount +=
static_cast<std::size_t>(!validMeasurementCount);

const bool validMeasurementRegionCount =
m_cfg.measurementCounter.isValidParticle(
p, inputMeasurementParticlesMap, inputMeasurements);
p, inputParticlesMeasurementMap, inputMeasurements);
nInvalidMeasurementRegionCount +=
static_cast<std::size_t>(!validMeasurementRegionCount);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "ActsExamples/EventData/Index.hpp"
#include "ActsExamples/EventData/Measurement.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/EventData/TruthMatching.hpp"
#include "ActsExamples/Framework/DataHandle.hpp"
#include "ActsExamples/Framework/IAlgorithm.hpp"
#include "ActsExamples/Framework/ProcessCode.hpp"
Expand Down Expand Up @@ -137,7 +138,7 @@ class ParticleSelector final : public IAlgorithm {
Config m_cfg;

ReadDataHandle<SimParticleContainer> m_inputParticles{this, "InputParticles"};
ReadDataHandle<InverseMultimap<SimBarcode>> m_inputParticleMeasurementsMap{
ReadDataHandle<ParticleMeasurementsMap> m_inputParticleMeasurementsMap{
this, "InputParticleMeasurementsMap"};
ReadDataHandle<MeasurementContainer> m_inputMeasurements{this,
"InputMeasurements"};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ ProcessCode TrackTruthMatcher::execute(const AlgorithmContext& ctx) const {
// Get the majority particleId and majority particle counts
// Note that the majority particle might not be in the truth seeds
// collection
ActsFatras::Barcode majorityParticleId =
particleHitCounts.front().particleId;
SimBarcode majorityParticleId = particleHitCounts.front().particleId;
std::size_t nMajorityHits = particleHitCounts.front().hitCount;

if (!particles.contains(majorityParticleId)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "ActsExamples/EventData/SimHit.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/EventData/SpacePoint.hpp"
#include "ActsExamples/EventData/TruthMatching.hpp"
#include "ActsExamples/Framework/DataHandle.hpp"
#include "ActsExamples/Framework/IAlgorithm.hpp"
#include "ActsExamples/Framework/ProcessCode.hpp"
Expand Down Expand Up @@ -82,10 +83,10 @@ class TruthSeedingAlgorithm final : public IAlgorithm {
Config m_cfg;

ReadDataHandle<SimParticleContainer> m_inputParticles{this, "InputParticles"};
ReadDataHandle<InverseMultimap<SimBarcode>> m_inputParticleMeasurementsMap{
ReadDataHandle<ParticleMeasurementsMap> m_inputParticleMeasurementsMap{
this, "InputParticleMeasurementsMap"};
ReadDataHandle<SimHitContainer> m_inputSimHits{this, "InputHits"};
ReadDataHandle<InverseMultimap<Index>> m_inputMeasurementSimHitsMap{
ReadDataHandle<MeasurementSimHitsMap> m_inputMeasurementSimHitsMap{
this, "MeasurementSimHitsMap"};
ReadDataHandle<SpacePointContainer> m_inputSpacePoints{this,
"InputSpacePoints"};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "ActsExamples/EventData/ProtoTrack.hpp"
#include "ActsExamples/EventData/SimHit.hpp"
#include "ActsExamples/EventData/SimParticle.hpp"
#include "ActsExamples/EventData/TruthMatching.hpp"
#include "ActsExamples/Framework/DataHandle.hpp"
#include "ActsExamples/Framework/IAlgorithm.hpp"
#include "ActsExamples/Framework/ProcessCode.hpp"
Expand Down Expand Up @@ -59,7 +60,7 @@ class TruthTrackFinder final : public IAlgorithm {

ReadDataHandle<SimParticleContainer> m_inputParticles{this, "InputParticles"};

ReadDataHandle<InverseMultimap<SimBarcode>> m_inputParticleMeasurementsMap{
ReadDataHandle<ParticleMeasurementsMap> m_inputParticleMeasurementsMap{
this, "InputParticleMeasurementsMap"};

WriteDataHandle<ProtoTrackContainer> m_outputProtoTracks{this,
Expand All @@ -70,7 +71,7 @@ class TruthTrackFinder final : public IAlgorithm {

ReadDataHandle<SimHitContainer> m_inputSimHits{this, "InputHits"};

ReadDataHandle<InverseMultimap<Index>> m_inputMeasurementSimHitsMap{
ReadDataHandle<MeasurementSimHitsMap> m_inputMeasurementSimHitsMap{
this, "MeasurementSimHitsMap"};
};

Expand Down
Loading
Loading