ATLAS Offline Software
PixelClusterTruthDecoratorAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
13 
14 namespace ActsTrk {
15 
17  ISvcLocator *pSvcLocator) :
18  AthReentrantAlgorithm(name, pSvcLocator)
19  {}
20 
22  ATH_MSG_DEBUG("Initialize " << name() << " ...");
23 
24  // Read keys
28 
29  // Tracks only needed if we want on track clusters only
31 
32  // Write keys
33  ATH_CHECK(m_write_xaod_key.initialize());
34 
35  // Decorators
36  ATH_CHECK(m_trackMeasurement_link.initialize());
37 
40 
42  ATH_CHECK(m_measurement_waferID.initialize());
43  ATH_CHECK(m_measurement_bec.initialize());
44  ATH_CHECK(m_measurement_layer.initialize());
45  ATH_CHECK(m_measurement_sizePhi.initialize());
46  ATH_CHECK(m_measurement_sizeZ.initialize());
47  ATH_CHECK(m_measurement_SiWidth.initialize());
48  ATH_CHECK(m_measurement_eta_module.initialize());
49  ATH_CHECK(m_measurement_phi_module.initialize());
50  ATH_CHECK(m_measurement_omegax.initialize());
51  ATH_CHECK(m_measurement_omegay.initialize());
55  ATH_CHECK(m_measurement_side.initialize());
56 
57  ATH_CHECK(m_measurement_tots.initialize());
58 
59  ATH_CHECK( m_lorentzAngleTool.retrieve() );
60  ATH_CHECK( detStore()->retrieve(m_PixelHelper, "PixelID") );
61 
62  return StatusCode::SUCCESS;
63  }
64 
65  StatusCode PixelClusterTruthDecoratorAlg::execute(const EventContext& ctx) const {
66 
67  //Mandatory. Require if the algorithm is scheduled.
71 
73  ATH_CHECK(pixelDetEleHandle.isValid());
74  const InDetDD::SiDetectorElementCollection* pixelDetEle = pixelDetEleHandle.cptr();
75 
76  // Get the truth association map
77  const MeasurementToTruthParticleAssociation* measToTruth(nullptr);
78  if (m_useTruthInfo) {
80  ATH_CHECK(measToTruthHandle.isValid());
81  measToTruth = measToTruthHandle.cptr();
82  }
83 
84  // Setup outputs
85  // Create the xAOD container and its auxiliary store:
87  ATH_CHECK(xaod.record(std::make_unique<xAOD::TrackMeasurementValidationContainer>(),
88  std::make_unique<xAOD::TrackMeasurementValidationAuxContainer>()));
89 
90  // Decorations
93 
109 
111 
112  // Create output collection
113  std::vector<bool> keepClusterCollection {};
114  ATH_CHECK( labelMeasurementToKeep(ctx, *clusters, keepClusterCollection) );
115  xAOD::TrackMeasurementValidationContainer *measurements = xaod.ptr();
116 
117  // loop over collection and convert to xAOD::TrackMeasurementValidation
118  for (std::size_t i(0); i<clusters->size(); ++i) {
119  if (not keepClusterCollection[i]) continue;
120  const xAOD::PixelCluster* cluster = clusters->at(i);
121 
122  measurements->push_back( new xAOD::TrackMeasurementValidation() );
123  xAOD::TrackMeasurementValidation* measurement = measurements->back();
125  measurements->back()->index() );
126 
127  ATH_CHECK( mlink.isValid() );
128  decorator_measurement_link(*cluster) = std::move(mlink);
129 
130  xAOD::DetectorIdentType clusterId = cluster->identifier();
131  xAOD::DetectorIDHashType hashId = cluster->identifierHash();
132 
133  const InDetDD::SiDetectorElement *element = pixelDetEle->getDetectorElement(hashId);
134  if ( not element ) {
135  ATH_MSG_FATAL( "Invalid pixel detector element for hash " << hashId );
136  return StatusCode::FAILURE;
137  }
138 
139  const std::vector<Identifier> rdoList = cluster->rdoList();
140  std::vector< std::uint64_t > rdoIdentifierList;
141  rdoIdentifierList.reserve(rdoList.size());
142  int rowmin = std::numeric_limits<int>::max();
143  int rowmax = std::numeric_limits<int>::min();
144  int colmin = std::numeric_limits<int>::max();
145  int colmax = std::numeric_limits<int>::min();
146  for( const Identifier& hitIdentifier : rdoList ){
147  rdoIdentifierList.push_back( hitIdentifier.get_compact() );
148  //May want to addinformation about the individual hits here
149  int row = m_PixelHelper->phi_index(hitIdentifier);
150  int col = m_PixelHelper->eta_index(hitIdentifier);
151  rowmin = std::min(rowmin, row);
152  rowmax = std::max(rowmax, row);
153  colmin = std::min(colmin, col);
154  colmax = std::max(colmax, col);
155  }
156 
157  // compute centroid
158  const InDetDD::PixelModuleDesign* design = dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design());
159  if (not design) {
160  ATH_MSG_ERROR("Cannot retrieve detector design");
161  return StatusCode::FAILURE;
162  }
163  InDetDD::SiLocalPosition pos1 = design->positionFromColumnRow(colmin,rowmin);
164  InDetDD::SiLocalPosition pos2 = design->positionFromColumnRow(colmax,rowmin);
165  InDetDD::SiLocalPosition pos3 = design->positionFromColumnRow(colmin,rowmax);
166  InDetDD::SiLocalPosition pos4 = design->positionFromColumnRow(colmax,rowmax);
167  InDetDD::SiLocalPosition centroid = 0.25 * (pos1 + pos2 + pos3 + pos4);
168 
169  //Set Identifier
170  measurement->setIdentifier( clusterId );
171  measurement->setRdoIdentifierList(std::move(rdoIdentifierList));
172 
173  //Set Global Position
174  auto gpos = cluster->globalPosition();
175  measurement->setGlobalPosition(gpos.x(), gpos.y(), gpos.z());
176 
177  // Set local position and error matrix
178  auto locpos = cluster->localPosition<2>();
179  measurement->setLocalPosition(locpos[0], locpos[1]);
180 
181  auto localCov = cluster->localCovariance<2>();
182  measurement->setLocalPositionError( localCov(0,0), localCov(1,1), localCov(0,1) );
183 
184  const auto& [omegax, omegay] = TrackingUtilities::computeOmegas(*cluster,
185  *m_PixelHelper);
186 
187  const Identifier waferId = m_PixelHelper->wafer_id(hashId);
188  decor_detectorElementID(*measurement) = hashId;
189  decor_waferID(*measurement) = waferId.get_compact();
190  decor_bec(*measurement) = m_PixelHelper->barrel_ec(waferId);
191  decor_layer(*measurement) = m_PixelHelper->layer_disk(waferId);
192  decor_sizePhi(*measurement) = cluster->channelsInPhi();
193  decor_sizeZ(*measurement) = cluster->channelsInEta();
194  decor_SiWidth(*measurement) = cluster->channelsInPhi();
195  decor_eta_module(*measurement) = m_PixelHelper->eta_module(waferId);
196  decor_phi_module(*measurement) = m_PixelHelper->phi_module(waferId);
197  decor_omegax(*measurement) = omegax;
198  decor_omegay(*measurement) = omegay;
199  decor_LorentzShift(*measurement) = static_cast<float>( m_lorentzAngleTool->getLorentzShift(cluster->identifierHash(), ctx) );
200  decor_centroid_xphi(*measurement) = centroid.xPhi();
201  decor_centroid_xeta(*measurement) = centroid.xEta();
202  decor_side(*measurement) = 0;
203  decor_tots(*measurement) = cluster->totList();
204  }
205 
206 
207  // handle the truth
208  if (m_useTruthInfo) {
211 
212  // reset measurement counter
213  std::size_t measurementIndex = 0;
214  for (std::size_t i(0); i<clusters->size(); ++i) {
215  if (not keepClusterCollection[i]) continue;
216  const xAOD::PixelCluster* cluster = clusters->at(i);
217  xAOD::TrackMeasurementValidation* measurement = measurements->at(measurementIndex);
218 
219  // check the two match
220  if (cluster->identifier() != measurement->identifier()) {
221  ATH_MSG_ERROR("Cluster and Measurement are not matching!");
222  return StatusCode::FAILURE;
223  }
224 
225  // Use the MultiTruth Collection
226  // to get a list of all true particle contributing to the cluster
227  if (cluster->index() >= measToTruth->size()) {
228  ATH_MSG_ERROR( "PRD index "<< cluster->index() << " not present in the measurement to truth vector with size " << measToTruth->size() );
229  return StatusCode::FAILURE;
230  }
231 
232  auto tps = measToTruth->at(cluster->index());
233 
234  std::vector<unsigned int> tp_indices;
235  std::vector<unsigned int> tp_barcodes;
236  for (const auto& tp : tps) {
237  tp_indices.push_back(tp->index());
238  tp_barcodes.push_back(HepMC::uniqueID(tp));
239  }
240 
241  // decorate
242  decor_truth_indices(*measurement) = std::move(tp_indices);
243  decor_truth_barcode(*measurement) = std::move(tp_barcodes);
244  ++measurementIndex;
245  } // loop on clusters/measurements
246  } // if do truth
247 
248  ATH_MSG_DEBUG( " recorded PixelPrepData objects: size " << measurements->size() );
249  return StatusCode::SUCCESS;
250 }
251 
254  std::vector<bool>& labels) const
255 {
256  labels.clear();
258  labels.resize(clusters.size(), true);
259  return StatusCode::SUCCESS;
260  }
261  labels.resize(clusters.size(), false);
262 
263  static const SG::ConstAccessor< ElementLink<ActsTrk::TrackContainer> > decorator_trackLink("actsTrack");
264 
265  // get the tracks
267  SG::ReadHandle<xAOD::TrackParticleContainer> trackParticleHandle = SG::makeHandle( trackParticleKey, ctx );
268  ATH_CHECK(trackParticleHandle.isValid());
269  const xAOD::TrackParticleContainer* trackParticles = trackParticleHandle.cptr();
270 
271  for (const xAOD::TrackParticle* trackParticle : *trackParticles) {
272  // Get the ACTS track object
273  ATH_CHECK( decorator_trackLink.isAvailable(*trackParticle) );
274  ElementLink<ActsTrk::TrackContainer> trackLink = decorator_trackLink(*trackParticle);
275  ATH_CHECK(trackLink.isValid());
276 
277  std::optional<ActsTrk::TrackContainer::ConstTrackProxy> optional_track = *trackLink;
278  if ( not optional_track.has_value() ) {
279  ATH_MSG_ERROR("Invalid track link for particle " << trackParticle->index());
280  return StatusCode::FAILURE;
281  }
282  ActsTrk::TrackContainer::ConstTrackProxy track = optional_track.value();
283 
284  // loop on track states
285  track.container().trackStateContainer()
286  .visitBackwards(track.tipIndex(),
287  [&labels]
288  (const typename ActsTrk::TrackContainer::ConstTrackStateProxy& state)
289  {
290  auto flags = state.typeFlags();
291  if (not flags.test(Acts::TrackStateFlag::MeasurementFlag) and
292  not flags.test(Acts::TrackStateFlag::OutlierFlag)) return;
293 
294  auto sl = state.getUncalibratedSourceLink().template get<ATLASUncalibSourceLink>();
295  if (sl == nullptr) return;
296 
297  const xAOD::UncalibratedMeasurement &cluster = getUncalibratedMeasurement(sl);
298  if (cluster.type() != xAOD::UncalibMeasType::PixelClusterType) return;
299  labels.at(cluster.index()) = true;
300  });
301  } // loop on tracks
302  } // loop on read handle keys
303 
304  return StatusCode::SUCCESS;
305 }
306 
307 }
308 
309 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::UncalibratedMeasurement_v1::identifier
DetectorIdentType identifier() const
Returns the full Identifier of the measurement.
xAOD::UncalibratedMeasurement_v1::identifierHash
DetectorIDHashType identifierHash() const
Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash)
ActsTrk::PixelClusterTruthDecoratorAlg::m_PixelHelper
const PixelID * m_PixelHelper
Definition: PixelClusterTruthDecoratorAlg.h:95
ActsTrk::PixelClusterTruthDecoratorAlg::PixelClusterTruthDecoratorAlg
PixelClusterTruthDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: PixelClusterTruthDecoratorAlg.cxx:16
xAOD::DetectorIdentType
long unsigned int DetectorIdentType
Definition: MeasurementDefs.h:44
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:654
ActsTrk::PixelClusterTruthDecoratorAlg::m_keepOnlyOnTrackMeasurements
Gaudi::Property< bool > m_keepOnlyOnTrackMeasurements
Definition: PixelClusterTruthDecoratorAlg.h:93
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:27
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:45
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
ActsTrk::PixelClusterTruthDecoratorAlg::m_trackMeasurement_link
SG::WriteDecorHandleKey< xAOD::PixelClusterContainer > m_trackMeasurement_link
Definition: PixelClusterTruthDecoratorAlg.h:69
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_centroid_xphi
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_centroid_xphi
Definition: PixelClusterTruthDecoratorAlg.h:86
xAOD::PixelCluster_v1::rdoList
const std::vector< Identifier > rdoList() const
Returns the list of identifiers of the channels building the cluster.
Definition: PixelCluster_v1.cxx:42
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:615
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_centroid_xeta
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_centroid_xeta
Definition: PixelClusterTruthDecoratorAlg.h:87
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_phi_module
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_phi_module
Definition: PixelClusterTruthDecoratorAlg.h:82
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.
keylayer_zslicemap.row
row
Definition: keylayer_zslicemap.py:155
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_layer
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_layer
Definition: PixelClusterTruthDecoratorAlg.h:77
ActsTrk::PixelClusterTruthDecoratorAlg::m_clustercontainer_key
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_clustercontainer_key
Definition: PixelClusterTruthDecoratorAlg.h:60
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_bec
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_bec
Definition: PixelClusterTruthDecoratorAlg.h:76
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_LorentzShift
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_LorentzShift
Definition: PixelClusterTruthDecoratorAlg.h:85
Helpers.h
xAOD::TrackMeasurementValidation_v1::setRdoIdentifierList
void setRdoIdentifierList(const std::vector< uint64_t > &rdoIdentifierList)
Sets the list of RDO identifiers.
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_sizeZ
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_sizeZ
Definition: PixelClusterTruthDecoratorAlg.h:79
SG::ReadHandleKey< xAOD::TrackParticleContainer >
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_eta_module
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_eta_module
Definition: PixelClusterTruthDecoratorAlg.h:81
ActsTrk::MeasurementToTruthParticleAssociation
Definition: MeasurementToTruthParticleAssociation.h:18
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:360
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
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
PixelClusterTruthDecoratorAlg.h
TrackingUtilities::computeOmegas
std::pair< float, float > computeOmegas(const xAOD::PixelCluster &cluster, const PixelID &pixelID)
Definition: InnerDetector/InDetMeasurementUtilities/src/Helpers.cxx:9
xAOD::TrackMeasurementValidation_v1
Class describing a TrackMeasurementValidation.
Definition: TrackMeasurementValidation_v1.h:27
ActsTrk::PixelClusterTruthDecoratorAlg::m_associationMap_key
SG::ReadHandleKey< ActsTrk::MeasurementToTruthParticleAssociation > m_associationMap_key
Definition: PixelClusterTruthDecoratorAlg.h:61
beamspotnt.labels
list labels
Definition: bin/beamspotnt.py:1446
ActsTrk::PixelClusterTruthDecoratorAlg::m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Definition: PixelClusterTruthDecoratorAlg.h:65
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_truth_barcodes
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_truth_barcodes
Definition: PixelClusterTruthDecoratorAlg.h:72
xAOD::TrackMeasurementValidation_v1::setLocalPosition
void setLocalPosition(float localX, float localY)
Sets the local position.
lumiFormat.i
int i
Definition: lumiFormat.py:85
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_omegay
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_omegay
Definition: PixelClusterTruthDecoratorAlg.h:84
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_tots
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_tots
Definition: PixelClusterTruthDecoratorAlg.h:90
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::PixelClusterTruthDecoratorAlg::m_measurement_side
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_side
Definition: PixelClusterTruthDecoratorAlg.h:88
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:116
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_truth_indices
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_truth_indices
Definition: PixelClusterTruthDecoratorAlg.h:71
PixelID::eta_index
int eta_index(const Identifier &id) const
Definition: PixelID.h:660
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.
ActsTrk::PixelClusterTruthDecoratorAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: PixelClusterTruthDecoratorAlg.cxx:65
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.
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_waferID
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_waferID
Definition: PixelClusterTruthDecoratorAlg.h:75
ActsTrk::PixelClusterTruthDecoratorAlg::m_useTruthInfo
Gaudi::Property< bool > m_useTruthInfo
Definition: PixelClusterTruthDecoratorAlg.h:92
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
xAOD::UncalibratedMeasurement_v1::localPosition
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ActsTrk::PixelClusterTruthDecoratorAlg::m_lorentzAngleTool
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleTool
Definition: PixelClusterTruthDecoratorAlg.h:58
ActsTrk::PixelClusterTruthDecoratorAlg::m_write_xaod_key
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > m_write_xaod_key
Definition: PixelClusterTruthDecoratorAlg.h:66
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition: PixelID.h:622
PixelID::eta_module
int eta_module(const Identifier &id) const
Definition: PixelID.h:647
xAOD::TrackMeasurementValidation_v1::setGlobalPosition
void setGlobalPosition(float globalX, float globalY, float globalZ)
Sets the global position.
Definition: TrackMeasurementValidation_v1.cxx:50
xAOD::PixelCluster_v1::globalPosition
ConstVectorMap< 3 > globalPosition() const
Returns the global position of the pixel cluster.
Definition: PixelCluster_v1.cxx:15
xAOD::PixelClusterContainer
PixelClusterContainer_v1 PixelClusterContainer
Define the version of the pixel cluster container.
Definition: Event/xAOD/xAODInDetMeasurement/xAODInDetMeasurement/PixelClusterContainer.h:14
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
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)
xAOD::PixelCluster_v1::totList
const std::vector< int > & totList() const
Returns the list of ToT of the channels building the cluster.
SiDetectorElement.h
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_sizePhi
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_sizePhi
Definition: PixelClusterTruthDecoratorAlg.h:78
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_detectorElementID
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_detectorElementID
Definition: PixelClusterTruthDecoratorAlg.h:74
ActsTrk::PixelClusterTruthDecoratorAlg::labelMeasurementToKeep
StatusCode labelMeasurementToKeep(const EventContext &ctx, const xAOD::PixelClusterContainer &clusters, std::vector< bool > &labels) const
Definition: PixelClusterTruthDecoratorAlg.cxx:252
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
PixelModuleDesign.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
ActsTrk::PixelClusterTruthDecoratorAlg::initialize
virtual StatusCode initialize() override
Definition: PixelClusterTruthDecoratorAlg.cxx:21
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
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
xAOD::PixelCluster_v1::channelsInEta
int channelsInEta() const
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_omegax
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_omegax
Definition: PixelClusterTruthDecoratorAlg.h:83
PixelID::phi_module
int phi_module(const Identifier &id) const
Definition: PixelID.h:640
ActsTrk::PixelClusterTruthDecoratorAlg::m_measurement_SiWidth
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_SiWidth
Definition: PixelClusterTruthDecoratorAlg.h:80
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
NSWL1::centroid
Vertex centroid(const Polygon &p)
Definition: GeoUtils.cxx:59
HepMCHelpers.h
xAOD::PixelCluster_v1::channelsInPhi
int channelsInPhi() const
Returns the dimensions of the cluster in numbers of channels in phi (x) and eta (y) directions,...
SG::ReadCondHandle::cptr
const_pointer_type cptr()
Definition: ReadCondHandle.h:71
ActsTrk::PixelClusterTruthDecoratorAlg::m_trackParticlesKey
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_trackParticlesKey
Definition: PixelClusterTruthDecoratorAlg.h:63
Identifier
Definition: IdentifierFieldParser.cxx:14