Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PixelClusterSiHitDecoratorAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
10 #include "src/detail/Utilities.h"
11 
12 namespace ActsTrk {
13 
15  ISvcLocator *pSvcLocator)
16  : AthReentrantAlgorithm(name, pSvcLocator)
17  {}
18 
20  {
21  ATH_MSG_DEBUG( "Initializing " << name() << " ..." );
22 
23  ATH_CHECK( m_inputMeasurementsKey.initialize() );
27  ATH_CHECK( m_siHitsKey.initialize() );
28 
29  // SDO decorations
30  m_sdo_words = m_inputMeasurementsKey.key() + "." + m_sdo_words.key();
33 
34  ATH_CHECK( m_sdo_words.initialize() );
35  ATH_CHECK( m_sdo_depositsBarcode.initialize() );
36  ATH_CHECK( m_sdo_depositsEnergy.initialize() );
37 
38  // SiHit decorations
43 
47 
51 
53  ATH_CHECK( m_sihit_meanTime_decor_key.initialize() );
54  ATH_CHECK( m_sihit_barcode_decor_key.initialize() );
55  ATH_CHECK( m_sihit_pdgid_decor_key.initialize() );
56 
57  ATH_CHECK( m_sihit_startPosX_decor_key.initialize() );
58  ATH_CHECK( m_sihit_startPosY_decor_key.initialize() );
59  ATH_CHECK( m_sihit_startPosZ_decor_key.initialize() );
60 
61  ATH_CHECK( m_sihit_endPosX_decor_key.initialize() );
62  ATH_CHECK( m_sihit_endPosY_decor_key.initialize() );
63  ATH_CHECK( m_sihit_endPosZ_decor_key.initialize() );
64 
65  ATH_CHECK( detStore()->retrieve(m_PixelHelper, "PixelID") );
66 
67  return StatusCode::SUCCESS;
68  }
69 
70 
71  StatusCode PixelClusterSiHitDecoratorAlg::execute(const EventContext& ctx) const
72  {
73  ATH_MSG_DEBUG( "Executing " << name() << " ..." );
74 
75  ATH_MSG_DEBUG( "Retrieving TrackMeasurementValidationContainer with key: " << m_inputMeasurementsKey.key() );
77  ATH_CHECK( measurementHandle.isValid() );
78  const xAOD::TrackMeasurementValidationContainer* measurements = measurementHandle.cptr();
79 
80  ATH_MSG_DEBUG( "Retrieving PixelClusterContainer with key: " << m_inputClustersKey.key() );
82  ATH_CHECK( clusterHandle.isValid() );
83  const xAOD::PixelClusterContainer* clusters = clusterHandle.cptr();
84 
85  ATH_MSG_DEBUG( "Retrieving InDetSimDataCollection with key: " << m_SDOcontainer_key.key() );
87  ATH_CHECK( sdoHandle.isValid() );
88  const InDetSimDataCollection* sdos = sdoHandle.cptr();
89 
90  ATH_MSG_DEBUG("Retrieving SiHitCollection with key: " << m_siHitsKey.key());
92  ATH_CHECK(siHitsHandle.isValid());
93  const SiHitCollection* siHits = siHitsHandle.cptr();
94 
96  ATH_CHECK(pixelDetEleHandle.isValid());
97  const InDetDD::SiDetectorElementCollection* pixElements = pixelDetEleHandle.cptr();
98 
99  // SDO decorators
103 
104  // SiHit decorators
109 
113 
117 
118  // measurements and clusters have the same size
119  // measurement n corresponds to cluster n
120  ATH_CHECK( measurements->size() == clusters->size() );
121 
122  // organize the si hits in such a way we group them together by idhash
123  std::vector< std::vector< const SiHit* > > siHitsCollections(m_PixelHelper->wafer_hash_max());
124  for (const SiHit& siHit: *siHits) {
125  if (!siHit.isPixel()) {
126  ATH_MSG_ERROR("Si Hit in Pixel collection is not Pixel!!!");
127  return StatusCode::FAILURE;
128  }
129 
130  Identifier wafer_id(m_PixelHelper->wafer_id(siHit.getBarrelEndcap(),
131  siHit.getLayerDisk(),
132  siHit.getPhiModule(),
133  siHit.getEtaModule()));
134  IdentifierHash wafer_hash(m_PixelHelper->wafer_hash(wafer_id));
135 
136  if (wafer_hash >= m_PixelHelper->wafer_hash_max()) {
137  ATH_MSG_ERROR("There is a problem with Si Hit collection.");
138  ATH_MSG_ERROR("Wafer hash is too big");
139  return StatusCode::FAILURE;
140  }
141  siHitsCollections[wafer_hash].push_back(&siHit);
142  } // loop on si hits
143 
144 
146  pixelAccessor ( *clusters,
147  [] (const xAOD::PixelCluster& cl) -> IdentifierHash { return cl.identifierHash(); },
148  pixElements->size());
149 
150  // run on id hashes
151  const auto& allIdHashes = pixelAccessor.allIdentifiers();
152  for (const auto& hashId : allIdHashes) {
153  const InDetDD::SiDetectorElement *element = pixElements->getDetectorElement(hashId);
154  if ( not element ) {
155  ATH_MSG_FATAL( "Invalid pixel detector element for hash " << hashId);
156  return StatusCode::FAILURE;
157  }
158 
159  auto [startRange, stopRange] = pixelAccessor.rangesForIdentifierDirect(hashId).front();
160  const std::vector< const SiHit* >& siHitsWithCurrentHash = siHitsCollections.at(hashId);
161 
162  for (auto itr = startRange; itr != stopRange; ++itr) {
163  const xAOD::PixelCluster* cluster = *startRange;
164  const xAOD::TrackMeasurementValidation* measurement = measurements->at(cluster->index());
165  ATH_CHECK(measurement->identifier() == cluster->identifier() );
166 
167  auto [word, depositsBarcode, depositsEnergy] = ActsTrk::detail::getSDOInformation(cluster->rdoList(), *sdos);
168  std::vector<SiHit> compatibleSiHits = findAllHitsCompatibleWithCluster(*cluster, *element, siHitsWithCurrentHash, depositsBarcode);
169 
170  auto [energyDeposit, meanTime, barcode, pdgid,
171  startPosX, startPosY, startPosZ,
172  endPosX, endPosY, endPosZ] = ActsTrk::detail::getSiHitInformation(*element, compatibleSiHits);
173 
174  // attach SDO decorations
175  decor_sdo_words(*measurement) = std::move(word);
176  decor_sdo_depositsBarcode(*measurement) = std::move(depositsBarcode);
177  decor_sdo_depositsEnergy(*measurement) = std::move(depositsEnergy);
178 
179  // attach SiHit decorations
180  decor_sihit_energyDeposit(*measurement) = std::move(energyDeposit);
181  decor_sihit_meanTime(*measurement) = std::move(meanTime);
182  decor_sihit_barcode(*measurement) = std::move(barcode);
183  decor_sihit_pdgid(*measurement) = std::move(pdgid);
184 
185  decor_sihit_startPosX(*measurement) = std::move(startPosX);
186  decor_sihit_startPosY(*measurement) = std::move(startPosY);
187  decor_sihit_startPosZ(*measurement) = std::move(startPosZ);
188 
189  decor_sihit_endPosX(*measurement) = std::move(endPosX);
190  decor_sihit_endPosY(*measurement) = std::move(endPosY);
191  decor_sihit_endPosZ(*measurement) = std::move(endPosZ);
192  } // loop on clusters
193  } // loop on hash ids
194 
195  return StatusCode::SUCCESS;
196  }
197 
198 
200  const InDetDD::SiDetectorElement& element,
201  const std::vector<const SiHit*>& sihits,
202  const std::vector< std::vector< int > >& sdoTracks) const
203  {
204  std::vector<SiHit> matchingHits {};
205  std::vector<const SiHit*> multiMatchingHits {};
206 
207  for ( const SiHit* siHit : sihits) {
208  // Now we have all hits in the module that match lets check to see if they match the cluster
209  // Must be within +/- 1 hits of any hit in the cluster to be included
211  HepGeom::Point3D<double> averagePosition = 0.5 * (siHit->localStartPosition() + siHit->localEndPosition());
212  Amg::Vector2D pos = element.hitLocalToLocal( averagePosition.z(), averagePosition.y() );
213  InDetDD::SiCellId diode = element.cellIdOfPosition(pos);
214 
215  for( const auto& hitIdentifier : cluster.rdoList() ){
216  ATH_MSG_DEBUG("Truth Phi " << diode.phiIndex() << " Cluster Phi " << m_PixelHelper->phi_index( hitIdentifier ) );
217  ATH_MSG_DEBUG("Truth Eta " << diode.etaIndex() << " Cluster Eta " << m_PixelHelper->eta_index( hitIdentifier ) );
218  if( std::abs( static_cast<int>(diode.etaIndex()) - m_PixelHelper->eta_index( hitIdentifier ) ) <= 1 and
219  std::abs( static_cast<int>(diode.phiIndex()) - m_PixelHelper->phi_index( hitIdentifier ) ) <= 1 ) {
220  multiMatchingHits.push_back(siHit);
221  break;
222  }
223  } // list on rdos
224 
225  } else { // not m_useSiHitsGeometryMatching
226  auto siHitBarcode = HepMC::barcode(siHit->particleLink());
227  for ( const std::vector<int>& barcodeSDOColl : sdoTracks ) {
228  if (std::find(barcodeSDOColl.begin(), barcodeSDOColl.end(), siHitBarcode) == barcodeSDOColl.end()) continue;
229  multiMatchingHits.push_back(siHit);
230  break;
231  }
232  }
233 
234  } // loop on si hits
235 
236  // Now we will now make 1 SiHit for each true particle if the SiHits "touch" other
237  std::vector<const SiHit* >::iterator siHitIter = multiMatchingHits.begin();
238  std::vector<const SiHit* >::iterator siHitIter2 = multiMatchingHits.begin();
239  for ( ; siHitIter != multiMatchingHits.end(); ++siHitIter) {
240  const SiHit* lowestXPos = *siHitIter;
241  const SiHit* highestXPos = *siHitIter;
242 
243  // We will merge these hits
244  std::vector<const SiHit* > ajoiningHits;
245  ajoiningHits.push_back( *siHitIter );
246 
247  siHitIter2 = siHitIter + 1;
248  while ( siHitIter2 != multiMatchingHits.end() ) {
249  // Need to come from the same truth particle
250  if ( not HepMC::is_same_particle((*siHitIter)->particleLink(),
251  (*siHitIter2)->particleLink()) ) {
252  ++siHitIter2;
253  continue;
254  }
255 
256  // Check to see if the SiHits are compatible with each other.
257  if (std::abs((highestXPos->localEndPosition().x()-(*siHitIter2)->localStartPosition().x()))<0.00005 &&
258  std::abs((highestXPos->localEndPosition().y()-(*siHitIter2)->localStartPosition().y()))<0.00005 &&
259  std::abs((highestXPos->localEndPosition().z()-(*siHitIter2)->localStartPosition().z()))<0.00005 ) {
260  highestXPos = *siHitIter2;
261  ajoiningHits.push_back( *siHitIter2 );
262  // Dont use hit more than once
263  // @TODO could invalidate siHitIter
264  siHitIter2 = multiMatchingHits.erase( siHitIter2 );
265  } else if (std::abs((lowestXPos->localStartPosition().x()-(*siHitIter2)->localEndPosition().x()))<0.00005 &&
266  std::abs((lowestXPos->localStartPosition().y()-(*siHitIter2)->localEndPosition().y()))<0.00005 &&
267  std::abs((lowestXPos->localStartPosition().z()-(*siHitIter2)->localEndPosition().z()))<0.00005) {
268  lowestXPos = *siHitIter2;
269  ajoiningHits.push_back( *siHitIter2 );
270  // Dont use hit more than once
271  // @TODO could invalidate siHitIter
272  siHitIter2 = multiMatchingHits.erase( siHitIter2 );
273  } else {
274  ++siHitIter2;
275  }
276  } // while loop
277 
278  if ( ajoiningHits.empty() ) {
279  ATH_MSG_WARNING("This should really never happen");
280  continue;
281  }else if ( ajoiningHits.size() == 1 ) {
282  // Copy Si Hit ready to return
283  matchingHits.push_back( *ajoiningHits[0] );
284  continue;
285  } else {
286  // Build new SiHit and merge information together.
287  ATH_MSG_DEBUG("Merging " << ajoiningHits.size() << " SiHits together." );
288 
289  float energyDep {0.f};
290  float time {0.f};
291  for( const auto& siHit : ajoiningHits ){
292  energyDep += siHit->energyLoss();
293  time += siHit->meanTime();
294  }
295  time /= ajoiningHits.size();
296 
297  matchingHits.emplace_back(lowestXPos->localStartPosition(),
298  highestXPos->localEndPosition(),
299  energyDep,
300  time,
301  HepMC::barcode((*siHitIter)->particleLink()),
302  0, // 0 for pixel 1 for strip
303  (*siHitIter)->getBarrelEndcap(),
304  (*siHitIter)->getLayerDisk(),
305  (*siHitIter)->getEtaModule(),
306  (*siHitIter)->getPhiModule(),
307  (*siHitIter)->getSide() );
308 
309  ATH_MSG_DEBUG("Finished Merging " << ajoiningHits.size() << " SiHits together." );
310  }
311  } // loop on multi matching hits
312 
313  return matchingHits;
314  }
315 
316 
317 }
318 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
PixelClusterSiHitDecoratorAlg.h
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_startPosZ_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_startPosZ_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:57
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
PixelID::phi_index
int phi_index(const Identifier &id) const
Definition: PixelID.h:658
InDetDD::SolidStateDetectorElementBase::cellIdOfPosition
SiCellId cellIdOfPosition(const Amg::Vector2D &localPos) const
As in previous method but returns SiCellId.
Definition: SolidStateDetectorElementBase.cxx:224
ActsTrk::PixelClusterSiHitDecoratorAlg::m_PixelHelper
const PixelID * m_PixelHelper
Definition: PixelClusterSiHitDecoratorAlg.h:65
SiHit::localEndPosition
HepGeom::Point3D< double > localEndPosition() const
Definition: SiHit.cxx:153
ContainerAccessor
Definition: ContainerAccessor.h:25
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:30
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ContainerAccessor::allIdentifiers
std::vector< identifier_t > allIdentifiers() const
Function to return all available identifier (i.e. keys in the map)
Definition: ContainerAccessor.h:84
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
ActsTrk::detail::getSiHitInformation
std::tuple< std::vector< float >, std::vector< float >, std::vector< int >, std::vector< int >, std::vector< float >, std::vector< float >, std::vector< float >, std::vector< float >, std::vector< float >, std::vector< float > > getSiHitInformation(const InDetDD::SiDetectorElement &element, const std::vector< SiHit > &matchingHits)
Definition: Tracking/Acts/ActsObjectDecoration/src/detail/Utilities.cxx:57
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
ActsTrk::PixelClusterSiHitDecoratorAlg::m_useSiHitsGeometryMatching
Gaudi::Property< bool > m_useSiHitsGeometryMatching
Definition: PixelClusterSiHitDecoratorAlg.h:63
ActsTrk::PixelClusterSiHitDecoratorAlg::m_inputClustersKey
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_inputClustersKey
Definition: PixelClusterSiHitDecoratorAlg.h:39
AtlasHitsVector
Definition: AtlasHitsVector.h:33
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:210
Utilities.h
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_pdgid_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_pdgid_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:53
ActsTrk::detail::getSDOInformation
std::tuple< std::vector< int >, std::vector< std::vector< int > >, std::vector< std::vector< float > > > getSDOInformation(const std::vector< Identifier > &rdoList, const InDetSimDataCollection &sdoCollection)
Definition: Tracking/Acts/ActsObjectDecoration/src/detail/Utilities.cxx:13
InDetSimDataCollection
Definition: InDetSimDataCollection.h:25
ActsTrk::PixelClusterSiHitDecoratorAlg::m_inputMeasurementsKey
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_inputMeasurementsKey
Definition: PixelClusterSiHitDecoratorAlg.h:38
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_endPosX_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_endPosX_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:59
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sdo_words
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sdo_words
Definition: PixelClusterSiHitDecoratorAlg.h:45
InDetDD::SiCellId::phiIndex
int phiIndex() const
Get phi index. Equivalent to strip().
Definition: SiCellId.h:122
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_endPosZ_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_endPosZ_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:61
ActsTrk::PixelClusterSiHitDecoratorAlg::m_SDOcontainer_key
SG::ReadHandleKey< InDetSimDataCollection > m_SDOcontainer_key
Definition: PixelClusterSiHitDecoratorAlg.h:40
HepMC::is_same_particle
bool is_same_particle(const T1 &p1, const T2 &p2)
Method to establish if two particles in the GenEvent actually represent the same particle.
Definition: MagicNumbers.h:367
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sdo_depositsBarcode
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sdo_depositsBarcode
Definition: PixelClusterSiHitDecoratorAlg.h:46
ActsTrk::PixelClusterSiHitDecoratorAlg::m_siHitsKey
SG::ReadHandleKey< SiHitCollection > m_siHitsKey
Definition: PixelClusterSiHitDecoratorAlg.h:41
PixelID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: PixelID.h:364
ActsTrk::PixelClusterSiHitDecoratorAlg::m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Definition: PixelClusterSiHitDecoratorAlg.h:42
Trk::energyDeposit
@ energyDeposit
Definition: MeasurementType.h:32
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
SiHit
Definition: SiHit.h:19
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
ActsTrk::PixelClusterSiHitDecoratorAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: PixelClusterSiHitDecoratorAlg.cxx:71
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_barcode_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_barcode_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:52
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
xAOD::TrackMeasurementValidation_v1
Class describing a TrackMeasurementValidation.
Definition: TrackMeasurementValidation_v1.h:27
ContainerAccessor::rangesForIdentifierDirect
const boost::container::small_vector< Range, inline_size > rangesForIdentifierDirect(const identifier_t &identifier) const
Function to return the list of ranges corresponding to a given identifier.
Definition: ContainerAccessor.h:69
InDetDD::SiCellId::etaIndex
int etaIndex() const
Get eta index.
Definition: SiCellId.h:114
PixelID::wafer_hash
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
Definition: PixelID.h:387
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_meanTime_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_meanTime_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:51
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_startPosY_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_startPosY_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:56
ActsTrk::PixelClusterSiHitDecoratorAlg::PixelClusterSiHitDecoratorAlg
PixelClusterSiHitDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: PixelClusterSiHitDecoratorAlg.cxx:14
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
WriteDecorHandle.h
Handle class for adding a decoration to an object.
PixelID::eta_index
int eta_index(const Identifier &id) const
Definition: PixelID.h:664
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
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
InDetDD::SolidStateDetectorElementBase::hitLocalToLocal
Amg::Vector2D hitLocalToLocal(double xEta, double xPhi) const
Simulation/Hit local frame to reconstruction local frame.
Definition: SolidStateDetectorElementBase.cxx:95
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_endPosY_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_endPosY_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:60
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
IdentifierHash.h
xAOD::TrackMeasurementValidation_v1::identifier
uint64_t identifier() const
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
PixelID::wafer_hash_max
size_type wafer_hash_max(void) const
Definition: PixelID.cxx:831
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
InDetDD::SiCellId
Definition: SiCellId.h:29
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sdo_depositsEnergy
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sdo_depositsEnergy
Definition: PixelClusterSiHitDecoratorAlg.h:47
ContainerAccessor.h
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:55
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
SiCellId.h
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_energyDeposit_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_energyDeposit_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:50
ActsTrk::PixelClusterSiHitDecoratorAlg::findAllHitsCompatibleWithCluster
std::vector< SiHit > findAllHitsCompatibleWithCluster(const xAOD::PixelCluster &cluster, const InDetDD::SiDetectorElement &element, const std::vector< const SiHit * > &sihits, const std::vector< std::vector< int > > &sdoTracks) const
Definition: PixelClusterSiHitDecoratorAlg.cxx:199
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
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:15
SiHit::localStartPosition
HepGeom::Point3D< double > localStartPosition() const
Definition: SiHit.cxx:146
ActsTrk::PixelClusterSiHitDecoratorAlg::m_sihit_startPosX_decor_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_sihit_startPosX_decor_key
Definition: PixelClusterSiHitDecoratorAlg.h:55
SG::ReadCondHandle::cptr
const_pointer_type cptr()
Definition: ReadCondHandle.h:71
ActsTrk::PixelClusterSiHitDecoratorAlg::initialize
virtual StatusCode initialize() override
Definition: PixelClusterSiHitDecoratorAlg.cxx:19
Identifier
Definition: IdentifierFieldParser.cxx:14