ATLAS Offline Software
StripClusterTruthDecoratorAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 
12 namespace ActsTrk {
13 
15  ISvcLocator *pSvcLocator) :
16  AthReentrantAlgorithm(name, pSvcLocator)
17  {}
18 
19 
21  ATH_MSG_DEBUG("Initialize " << name() << " ...");
22 
23  // Read keys
27 
28  // Tracks only needed if we want on track clusters only
30 
31  // Write keys
32  ATH_CHECK(m_write_xaod_key.initialize());
33 
34  // Decorator
35  ATH_CHECK(m_trackMeasurement_link.initialize());
36 
39 
41  ATH_CHECK(m_measurement_waferID.initialize());
42  ATH_CHECK(m_measurement_bec.initialize());
43  ATH_CHECK(m_measurement_layer.initialize());
44  ATH_CHECK(m_measurement_sizePhi.initialize());
45  ATH_CHECK(m_measurement_sizeZ.initialize());
46  ATH_CHECK(m_measurement_SiWidth.initialize());
47  ATH_CHECK(m_measurement_eta_module.initialize());
48  ATH_CHECK(m_measurement_phi_module.initialize());
49  ATH_CHECK(m_measurement_omegax.initialize());
50  ATH_CHECK(m_measurement_omegay.initialize());
54  ATH_CHECK(m_measurement_side.initialize());
55 
57 
58  return StatusCode::SUCCESS;
59  }
60 
61  StatusCode StripClusterTruthDecoratorAlg::execute(const EventContext& ctx) const {
62 
65  const xAOD::StripClusterContainer *stripClusters = StripClusterContainer.cptr();
66 
68  ATH_CHECK(stripDetEleHandle.isValid());
69  const InDetDD::SiDetectorElementCollection* stripElements = stripDetEleHandle.cptr();
70 
71  const ActsTrk::MeasurementToTruthParticleAssociation* measToTruth(nullptr);
72  if (m_useTruthInfo) {
74  ATH_CHECK( measToTruthHandle.isValid());
75  measToTruth = measToTruthHandle.ptr();
76  }
77 
78  // Setup outputs
79  // Create the xAOD container and its auxiliary store:
81  ATH_CHECK(xaod.record(std::make_unique<xAOD::TrackMeasurementValidationContainer>(),
82  std::make_unique<xAOD::TrackMeasurementValidationAuxContainer>()));
83 
86 
102 
103  // collection
104  std::vector<bool> keepClusterCollection {};
105  ATH_CHECK( labelMeasurementToKeep(ctx, *stripClusters, keepClusterCollection) );
106  xAOD::TrackMeasurementValidationContainer *measurements = xaod.ptr();
107 
108  // loop over collection and convert to xAOD::TrackMeasurementValidation
109  for (std::size_t i(0); i<stripClusters->size(); ++i) {
110  if (not keepClusterCollection[i]) continue;
111  const xAOD::StripCluster* cluster = stripClusters->at(i);
112 
113  measurements->push_back( new xAOD::TrackMeasurementValidation() );
114  xAOD::TrackMeasurementValidation* measurement = measurements->back();
116  measurements->back()->index() );
117  ATH_CHECK( mlink.isValid() );
118  decorator_measurement_link(*cluster) = std::move(mlink);
119 
120  xAOD::DetectorIdentType clusterId = cluster->identifier();
121  xAOD::DetectorIDHashType hashId = cluster->identifierHash();
122 
123  const InDetDD::SiDetectorElement *element = stripElements->getDetectorElement(hashId);
124  if ( not element ) {
125  ATH_MSG_FATAL( "Invalid strip detector element for hash " << hashId );
126  return StatusCode::FAILURE;
127  }
128 
129  const std::vector<Identifier> rdoList = cluster->rdoList();
130  std::vector< std::uint64_t > rdoIdentifierList;
131  rdoIdentifierList.reserve(rdoList.size());
132  for( const Identifier& hitIdentifier : rdoList ){
133  rdoIdentifierList.push_back( hitIdentifier.get_compact() );
134  }
135 
136  //Set Identifier
137  measurement->setIdentifier( clusterId );
138  measurement->setRdoIdentifierList(std::move(rdoIdentifierList));
139 
140  //Set Global Position
141  auto gpos = cluster->globalPosition();
142  measurement->setGlobalPosition(gpos.x(), gpos.y(), gpos.z());
143 
144  // Set local position and error matrix
145  auto locpos = cluster->localPosition<1>();
146  measurement->setLocalPosition(locpos[0], locpos[1]);
147 
148  auto localCov = cluster->localCovariance<1>();
149  measurement->setLocalPositionError( localCov(0,0), 0., 0. );
150 
151  const Identifier waferId = m_stripHelper->wafer_id(hashId);
152  decor_detectorElementID(*measurement) = hashId;
153  decor_waferID(*measurement) = waferId.get_compact();
154  decor_bec(*measurement) = m_stripHelper->barrel_ec(waferId);
155  decor_layer(*measurement) = m_stripHelper->layer_disk(waferId);
156  decor_sizePhi(*measurement) = cluster->channelsInPhi();
157  decor_sizeZ(*measurement) = 0;
158  decor_SiWidth(*measurement) = cluster->channelsInPhi();
159  decor_eta_module(*measurement) = m_stripHelper->eta_module(waferId);
160  decor_phi_module(*measurement) = m_stripHelper->phi_module(waferId);
161  decor_omegax(*measurement) = 0;
162  decor_omegay(*measurement) = 0;
163  decor_LorentzShift(*measurement) = 0;
164  decor_centroid_xphi(*measurement) = 0;
165  decor_centroid_xeta(*measurement) = 0;
166  decor_side(*measurement) = m_stripHelper->side(waferId);
167  }
168 
169 
170  // Get a list of all true particle contributing to the cluster
171  if (m_useTruthInfo) {
174 
175  std::size_t measurementIndex = 0;
176  for (std::size_t i(0); i<stripClusters->size(); ++i) {
177  if (not keepClusterCollection[i]) continue;
178  const xAOD::StripCluster* cluster = stripClusters->at(i);
179  xAOD::TrackMeasurementValidation* measurement = measurements->at(measurementIndex);
180 
181  // Check the two match
182  if (cluster->identifier() != measurement->identifier()) {
183  ATH_MSG_ERROR("Cluster and Measurement are not matching!");
184  return StatusCode::FAILURE;
185  }
186 
187  if (cluster->index() >= measToTruth->size()) {
188  ATH_MSG_ERROR("PRD index "<< cluster->index() << " not present in the measurement to truth vector with size " << measToTruth->size());
189  return StatusCode::FAILURE;
190  }
191 
192  auto tps = measToTruth->at(cluster->index());
193 
194  std::vector<unsigned int> tp_indices;
195  std::vector<unsigned int> tp_barcodes;
196  for (auto tp : tps) {
197  tp_indices.push_back(tp->index());
198  tp_barcodes.push_back(HepMC::uniqueID(tp));
199  }
200 
201  decor_truth_indices(*measurement) = std::move(tp_indices);
202  decor_truth_barcode(*measurement) = std::move(tp_barcodes);
203  ++measurementIndex;
204  } // loop on clusters
205  }
206 
207  ATH_MSG_DEBUG( " recorded StripPrepData objects: size " << measurements->size() );
208  return StatusCode::SUCCESS;
209  }
210 
213  std::vector<bool>& labels) const
214 {
215  labels.clear();
217  labels.resize(clusters.size(), true);
218  return StatusCode::SUCCESS;
219  }
220  labels.resize(clusters.size(), false);
221 
222  static const SG::ConstAccessor< ElementLink<ActsTrk::TrackContainer> > decorator_trackLink("actsTrack");
223 
224  // get the tracks
226  SG::ReadHandle<xAOD::TrackParticleContainer> trackParticleHandle = SG::makeHandle( trackParticlesKey, ctx );
227  ATH_CHECK(trackParticleHandle.isValid());
228  const xAOD::TrackParticleContainer* trackParticles = trackParticleHandle.cptr();
229 
230  for (const xAOD::TrackParticle* trackParticle : *trackParticles) {
231  // Get the ACTS track object
232  ATH_CHECK( decorator_trackLink.isAvailable(*trackParticle) );
233  ElementLink<ActsTrk::TrackContainer> trackLink = decorator_trackLink(*trackParticle);
234  ATH_CHECK(trackLink.isValid());
235 
236  std::optional<ActsTrk::TrackContainer::ConstTrackProxy> optional_track = *trackLink;
237  if ( not optional_track.has_value() ) {
238  ATH_MSG_ERROR("Invalid track link for particle " << trackParticle->index());
239  return StatusCode::FAILURE;
240  }
241  ActsTrk::TrackContainer::ConstTrackProxy track = optional_track.value();
242 
243  // loop on track states
244  track.container().trackStateContainer()
245  .visitBackwards(track.tipIndex(),
246  [&labels]
247  (const typename ActsTrk::TrackContainer::ConstTrackStateProxy& state)
248  {
249  auto flags = state.typeFlags();
250  if (not flags.test(Acts::TrackStateFlag::MeasurementFlag) and
251  not flags.test(Acts::TrackStateFlag::OutlierFlag)) return;
252 
253  auto sl = state.getUncalibratedSourceLink().template get<ATLASUncalibSourceLink>();
254  if (sl == nullptr) return;
255 
256  const xAOD::UncalibratedMeasurement &cluster = getUncalibratedMeasurement(sl);
257  if (cluster.type() != xAOD::UncalibMeasType::StripClusterType) return;
258  labels.at(cluster.index()) = true;
259  });
260  } // loop on tracks
261  } // loop on read handle keys
262 
263  return StatusCode::SUCCESS;
264 }
265 
266 } // ActsTrk
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
xAOD::UncalibratedMeasurement_v1::identifier
DetectorIdentType identifier() const
Returns the full Identifier of the measurement.
ActsTrk::StripClusterTruthDecoratorAlg::m_trackMeasurement_link
SG::WriteDecorHandleKey< xAOD::StripClusterContainer > m_trackMeasurement_link
Definition: StripClusterTruthDecoratorAlg.h:63
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_centroid_xeta
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_centroid_xeta
Definition: StripClusterTruthDecoratorAlg.h:81
xAOD::UncalibratedMeasurement_v1::identifierHash
DetectorIDHashType identifierHash() const
Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash)
xAOD::DetectorIdentType
long unsigned int DetectorIdentType
Definition: MeasurementDefs.h:44
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
ActsTrk::StripClusterTruthDecoratorAlg::m_stripHelper
const SCT_ID * m_stripHelper
Definition: StripClusterTruthDecoratorAlg.h:87
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:27
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_layer
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_layer
Definition: StripClusterTruthDecoratorAlg.h:71
xAOD::StripCluster_v1::channelsInPhi
int channelsInPhi() const
Returns the dimensions of the cluster in numbers of channels in phi (x), respectively.
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_SiWidth
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_SiWidth
Definition: StripClusterTruthDecoratorAlg.h:74
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_sizeZ
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_sizeZ
Definition: StripClusterTruthDecoratorAlg.h:73
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_centroid_xphi
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_centroid_xphi
Definition: StripClusterTruthDecoratorAlg.h:80
ActsTrk::StripClusterTruthDecoratorAlg::initialize
virtual StatusCode initialize() override
Definition: StripClusterTruthDecoratorAlg.cxx:20
ActsTrk::StripClusterTruthDecoratorAlg::m_write_xaod_key
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > m_write_xaod_key
Definition: StripClusterTruthDecoratorAlg.h:61
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_truth_barcodes
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_truth_barcodes
Definition: StripClusterTruthDecoratorAlg.h:66
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:210
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Identifier::get_compact
value_type get_compact() const
Get the compact id.
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_LorentzShift
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_LorentzShift
Definition: StripClusterTruthDecoratorAlg.h:79
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_truth_indices
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_truth_indices
Definition: StripClusterTruthDecoratorAlg.h:65
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
xAOD::TrackMeasurementValidation_v1::setRdoIdentifierList
void setRdoIdentifierList(const std::vector< uint64_t > &rdoIdentifierList)
Sets the list of RDO identifiers.
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: SCT_ID.h:740
SG::ReadHandleKey< xAOD::TrackParticleContainer >
ActsTrk::StripClusterTruthDecoratorAlg::m_stripDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_stripDetEleCollKey
Definition: StripClusterTruthDecoratorAlg.h:57
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_omegax
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_omegax
Definition: StripClusterTruthDecoratorAlg.h:77
ActsTrk::MeasurementToTruthParticleAssociation
Definition: MeasurementToTruthParticleAssociation.h:18
StripClusterTruthDecoratorAlg.h
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_side
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_side
Definition: StripClusterTruthDecoratorAlg.h:82
xAOD::StripCluster_v1::rdoList
const std::vector< Identifier > rdoList() const
Returns the list of identifiers of the channels building the cluster.
Definition: StripCluster_v1.cxx:37
ActsTrk::StripClusterTruthDecoratorAlg::m_associationMap_key
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_associationMap_key
Definition: StripClusterTruthDecoratorAlg.h:56
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
ActsTrk::StripClusterTruthDecoratorAlg::labelMeasurementToKeep
StatusCode labelMeasurementToKeep(const EventContext &ctx, const xAOD::StripClusterContainer &clusters, std::vector< bool > &labels) const
Definition: StripClusterTruthDecoratorAlg.cxx:211
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
ActsTrk::StripClusterTruthDecoratorAlg::StripClusterTruthDecoratorAlg
StripClusterTruthDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: StripClusterTruthDecoratorAlg.cxx:14
xAOD::TrackMeasurementValidation_v1
Class describing a TrackMeasurementValidation.
Definition: TrackMeasurementValidation_v1.h:27
beamspotnt.labels
list labels
Definition: bin/beamspotnt.py:1446
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_bec
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_bec
Definition: StripClusterTruthDecoratorAlg.h:70
xAOD::TrackMeasurementValidation_v1::setLocalPosition
void setLocalPosition(float localX, float localY)
Sets the local position.
lumiFormat.i
int i
Definition: lumiFormat.py:85
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_sizePhi
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_sizePhi
Definition: StripClusterTruthDecoratorAlg.h:72
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_waferID
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_waferID
Definition: StripClusterTruthDecoratorAlg.h:69
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_omegay
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_omegay
Definition: StripClusterTruthDecoratorAlg.h:78
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_detectorElementID
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_detectorElementID
Definition: StripClusterTruthDecoratorAlg.h:68
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:116
xAOD::StripCluster_v1
Definition: StripCluster_v1.h:17
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::UncalibratedMeasurement_v1::localCovariance
ConstMatrixMap< N > localCovariance() const
Returns the local covariance of the measurement.
xAOD::TrackMeasurementValidation_v1::setIdentifier
void setIdentifier(uint64_t identifier)
Sets the identifier.
SG::AuxElement::index
size_t index() const
Return the index of this element within its container.
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
xAOD::UncalibratedMeasurement_v1::localPosition
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_phi_module
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_phi_module
Definition: StripClusterTruthDecoratorAlg.h:76
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ActsTrk::StripClusterTruthDecoratorAlg::m_keepOnlyOnTrackMeasurements
Gaudi::Property< bool > m_keepOnlyOnTrackMeasurements
Definition: StripClusterTruthDecoratorAlg.h:85
xAOD::TrackMeasurementValidation_v1::setGlobalPosition
void setGlobalPosition(float globalX, float globalY, float globalZ)
Sets the global position.
Definition: TrackMeasurementValidation_v1.cxx:50
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
xAOD::DetectorIDHashType
unsigned int DetectorIDHashType
@ detector ID element hash
Definition: MeasurementDefs.h:43
xAOD::TrackMeasurementValidation_v1::setLocalPositionError
void setLocalPositionError(float localXError, float localYError, float localXYCorrelation)
Sets the local position error.
Definition: TrackMeasurementValidation_v1.cxx:37
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
xAOD::TrackMeasurementValidation_v1::identifier
uint64_t identifier() const
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
ActsTrk::StripClusterTruthDecoratorAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: StripClusterTruthDecoratorAlg.cxx:61
SG::ReadHandle::ptr
const_pointer_type ptr()
Dereference the pointer.
xAOD::StripClusterContainer
StripClusterContainer_v1 StripClusterContainer
Define the version of the strip cluster container.
Definition: StripClusterContainer.h:14
ActsTrk::StripClusterTruthDecoratorAlg::m_trackParticlesKey
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_trackParticlesKey
Definition: StripClusterTruthDecoratorAlg.h:59
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
xAOD::StripCluster_v1::globalPosition
ConstVectorMap< 3 > globalPosition() const
Returns the global position of the strip cluster.
Definition: StripCluster_v1.cxx:15
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
ReadDecorHandle.h
Handle class for reading a decoration on an object.
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:24
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
ActsTrk::StripClusterTruthDecoratorAlg::m_clustercontainer_key
SG::ReadHandleKey< xAOD::StripClusterContainer > m_clustercontainer_key
Definition: StripClusterTruthDecoratorAlg.h:55
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
InDetDD::SiDetectorElementCollection::getDetectorElement
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
Definition: SiDetectorElementCollection.cxx:9
TrackContainer.h
HepMCHelpers.h
ActsTrk::StripClusterTruthDecoratorAlg::m_measurement_eta_module
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_eta_module
Definition: StripClusterTruthDecoratorAlg.h:75
SG::ReadCondHandle::cptr
const_pointer_type cptr()
Definition: ReadCondHandle.h:71
ActsTrk::StripClusterTruthDecoratorAlg::m_useTruthInfo
Gaudi::Property< bool > m_useTruthInfo
Definition: StripClusterTruthDecoratorAlg.h:84
Identifier
Definition: IdentifierFieldParser.cxx:14