ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::InDetToXAODSpacePointConversion Class Reference

#include <InDetToXAODSpacePointConversion.h>

Inheritance diagram for InDet::InDetToXAODSpacePointConversion:
Collaboration diagram for InDet::InDetToXAODSpacePointConversion:

Public Member Functions

 InDetToXAODSpacePointConversion (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor with parameters: More...
 
virtual StatusCode initialize () override
 
virtual StatusCode execute (const EventContext &ctx) const override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
virtual bool filterPassed (const EventContext &ctx) const
 
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode convertPixel (const EventContext &ctx, xAOD::PixelClusterContainer *cluster_xaod_container) const
 
StatusCode convertStrip (const EventContext &ctx, const Amg::Vector3D &vertex, xAOD::StripClusterContainer *cluster_xaod_container, std::unordered_map< Identifier, std::size_t > &mapClusters) const
 
StatusCode convertStripOverlap (const EventContext &ctx, const Amg::Vector3D &vertex, xAOD::StripClusterContainer *cluster_xaod_container, std::unordered_map< Identifier, std::size_t > &mapClusters) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadCondHandleKey< InDet::BeamSpotDatam_beamSpotKey
 
SG::ReadHandleKey< ::SpacePointContainerm_inSpacepointsPixel
 
SG::ReadHandleKey< ::SpacePointContainerm_inSpacepointsStrip
 
SG::ReadHandleKey< ::SpacePointOverlapCollectionm_inSpacepointsOverlap
 
SG::WriteHandleKey< xAOD::PixelClusterContainerm_outClustersPixel
 
SG::WriteHandleKey< xAOD::StripClusterContainerm_outClustersStrip
 
SG::WriteHandleKey< xAOD::SpacePointContainerm_outSpacepointsPixel
 
SG::WriteHandleKey< xAOD::SpacePointContainerm_outSpacepointsStrip
 
SG::WriteHandleKey< xAOD::SpacePointContainerm_outSpacepointsOverlap
 
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_pixelDetEleCollKey {this, "PixelDetEleCollKey", "ITkPixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}
 
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_stripDetEleCollKey {this, "StripDetEleCollKey", "ITkStripDetectorElementCollection", "Key of SiDetectorElementCollection for Strip"}
 
Gaudi::Property< bool > m_convertClusters {this, "ConvertClusters", false}
 
Gaudi::Property< bool > m_processPixel {this, "ProcessPixel", true}
 
Gaudi::Property< bool > m_processStrip {this, "ProcessStrip", true}
 
const PixelIDm_pixelID {nullptr}
 
const SCT_IDm_stripID {nullptr}
 
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 32 of file InDetToXAODSpacePointConversion.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ InDetToXAODSpacePointConversion()

InDet::InDetToXAODSpacePointConversion::InDetToXAODSpacePointConversion ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Constructor with parameters:

Definition at line 17 of file InDetToXAODSpacePointConversion.cxx.

19  : AthReentrantAlgorithm(name, pSvcLocator)
20  {}

Member Function Documentation

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64 {
65  return 0;
66 }

◆ convertPixel()

StatusCode InDet::InDetToXAODSpacePointConversion::convertPixel ( const EventContext &  ctx,
xAOD::PixelClusterContainer cluster_xaod_container 
) const
private

Definition at line 101 of file InDetToXAODSpacePointConversion.cxx.

103  {
104  static const SG::AuxElement::Accessor< ElementLink< ::SpacePointCollection > > linkAcc("pixelSpacePointLink");
105 
106  const InDetDD::SiDetectorElementCollection* pixElements = nullptr;
107  if (m_convertClusters) {
109  if (not pixelDetEleHandle.isValid()) {
110  ATH_MSG_FATAL(m_pixelDetEleCollKey.fullKey() << " is not available.");
111  return StatusCode::FAILURE;
112  }
113  pixElements = pixelDetEleHandle.cptr();
114  }
115 
116  // Input
118  ATH_CHECK( pixel_handle.isValid() );
119  const ::SpacePointContainer* pixel_container = pixel_handle.cptr();
120 
121  // Output
122  std::unique_ptr< xAOD::SpacePointContainer > pixel_xaod_container = std::make_unique< xAOD::SpacePointContainer >(SG::VIEW_ELEMENTS, SG::ALWAYS_TRACK_INDICES);
123  std::unique_ptr< xAOD::SpacePointAuxContainer > pixel_xaod_aux_container = std::make_unique< xAOD::SpacePointAuxContainer >();
124  pixel_xaod_container->setStore( pixel_xaod_aux_container.get() );
125 
126  size_t nsp = 0;
127  for (const ::SpacePointCollection *spc : *pixel_container) {
128  nsp += spc->size();
129  }
131  pixel_xaod_container->push_new (nsp, [&pool](){return pool.nextElementPtr();});
132  size_t isp = 0;
133 
134  // Conversion
135  for (const ::SpacePointCollection *spc : *pixel_container) {
136  for (const Trk::SpacePoint *sp : *spc) {
137  const InDet::PixelSpacePoint *indetSP = dynamic_cast<const InDet::PixelSpacePoint *>(sp);
138 
139  xAOD::SpacePoint* pixel_sp = pixel_xaod_container->at (isp++);
141 
142  // Also make cluster object, if requested
143  if (m_convertClusters) {
144  const std::pair<const Trk::PrepRawData*, const Trk::PrepRawData*>& clusterList = sp->clusterList();
145  const InDet::PixelCluster* theCluster = dynamic_cast<const InDet::PixelCluster*>(clusterList.first);
146  if (theCluster == nullptr) {
147  ATH_MSG_FATAL("Cannot cast InDet::PixelCluster");
148  }
149 
150  auto clusterId = clusterList.first->identify();
151  const InDetDD::SiDetectorElement *element = pixElements->getDetectorElement(m_pixelID->wafer_hash(m_pixelID->wafer_id(clusterId)));
152  if ( element == nullptr ) {
153  ATH_MSG_FATAL( "Invalid pixel detector element for cluster identifier " << clusterId );
154  return StatusCode::FAILURE;
155  }
156 
157  xAOD::PixelCluster * pixelCl = new xAOD::PixelCluster();
158  cluster_xaod_container->push_back(pixelCl);
159  ATH_CHECK( TrackingUtilities::convertInDetToXaodCluster(*theCluster, *element, *pixelCl) );
160  pixel_sp->setMeasurements( {cluster_xaod_container->back()} );
161  }
162 
163  // Add link to this space point
164  ElementLink< ::SpacePointCollection > link(indetSP, *spc);
165  linkAcc(*pixel_sp) = link;
166  }
167  }
168 
169  // Store
171  ATH_CHECK( pixel_xaod_handle.record( std::move(pixel_xaod_container), std::move(pixel_xaod_aux_container) ) );
172 
173  return StatusCode::SUCCESS;
174  }

◆ convertStrip()

StatusCode InDet::InDetToXAODSpacePointConversion::convertStrip ( const EventContext &  ctx,
const Amg::Vector3D vertex,
xAOD::StripClusterContainer cluster_xaod_container,
std::unordered_map< Identifier, std::size_t > &  mapClusters 
) const
private

Definition at line 176 of file InDetToXAODSpacePointConversion.cxx.

180  {
181  const InDetDD::SiDetectorElementCollection* stripElements = nullptr;
182  if (m_convertClusters) {
184  if (not stripDetEleHandle.isValid()) {
185  ATH_MSG_FATAL(m_stripDetEleCollKey.fullKey() << " is not available.");
186  return StatusCode::FAILURE;
187  }
188  stripElements = stripDetEleHandle.cptr();
189  }
190 
191  static const SG::AuxElement::Accessor< ElementLink< ::SpacePointCollection > > linkAcc("sctSpacePointLink");
192 
193  // Input
195  ATH_CHECK( strip_handle.isValid() );
196  const ::SpacePointContainer* strip_container = strip_handle.cptr();
197 
198  // Output
199  std::unique_ptr< xAOD::SpacePointContainer > strip_xaod_container = std::make_unique< xAOD::SpacePointContainer >();
200  std::unique_ptr< xAOD::SpacePointAuxContainer > strip_xaod_aux_container = std::make_unique< xAOD::SpacePointAuxContainer >();
201  strip_xaod_container->setStore( strip_xaod_aux_container.get() );
202 
203  strip_xaod_container->reserve(strip_container->size());
204  strip_xaod_aux_container->reserve(strip_container->size());
205 
206  // Conversion
207  for (const ::SpacePointCollection *spc : *strip_container) {
208  for (const Trk::SpacePoint *sp : *spc) {
209  const InDet::SCT_SpacePoint *indetSP = dynamic_cast<const InDet::SCT_SpacePoint *>(sp);
210 
211  strip_xaod_container->push_back( new xAOD::SpacePoint() );
212  ATH_CHECK( TrackingUtilities::convertTrkToXaodStripSpacePoint(*indetSP, vertex, *strip_xaod_container->back()) );
213 
214  // Also make cluster object, if requested
215  if (m_convertClusters) {
216  const std::pair<const Trk::PrepRawData*, const Trk::PrepRawData*>& clusterList = sp->clusterList();
217  const InDet::SCT_Cluster* theCluster1 = dynamic_cast<const InDet::SCT_Cluster*>(clusterList.first);
218  const InDet::SCT_Cluster* theCluster2 = dynamic_cast<const InDet::SCT_Cluster*>(clusterList.second);
219  if (theCluster1 == nullptr or
220  theCluster2 == nullptr) {
221  ATH_MSG_FATAL("Cannot cast InDet::SCT_Cluster");
222  }
223 
224  auto clusterId1 = clusterList.first->identify();
225  auto clusterId2 = clusterList.second->identify();
226  const InDetDD::SiDetectorElement *element1 = stripElements->getDetectorElement(m_stripID->wafer_hash(m_stripID->wafer_id(clusterId1)));
227  const InDetDD::SiDetectorElement *element2 = stripElements->getDetectorElement(m_stripID->wafer_hash(m_stripID->wafer_id(clusterId2)));
228  if ( element1 == nullptr ) {
229  ATH_MSG_FATAL( "Invalid strip detector element for cluster (1) identifiers " << clusterId1 );
230  return StatusCode::FAILURE;
231  }
232  if ( element2 == nullptr ) {
233  ATH_MSG_FATAL( "Invalid strip detector element for cluster (2) identifiers " << clusterId2 );
234  return StatusCode::FAILURE;
235  }
236  //tries to insert an entry with key clusterId. Returns false and does nothing if the key already exists.
237  auto insertEntry = [&mapClusters, cluster_xaod_container](const auto & clusterId)-> bool{
238  const auto & [p,inserted] = mapClusters.try_emplace(clusterId, cluster_xaod_container->size());
239  return inserted;
240  };
241  // if cluster is not there, add entry and add cluster to container
242  if (insertEntry(clusterId1)){
243  xAOD::StripCluster * stripCl1 = new xAOD::StripCluster();
244  cluster_xaod_container->push_back(stripCl1);
245  ATH_CHECK( TrackingUtilities::convertInDetToXaodCluster(*theCluster1, *element1, *stripCl1) );
246  }
247  if (insertEntry(clusterId2)) {
248  xAOD::StripCluster * stripCl2 = new xAOD::StripCluster();
249  cluster_xaod_container->push_back(stripCl2);
250  ATH_CHECK( TrackingUtilities::convertInDetToXaodCluster(*theCluster2, *element2, *stripCl2) );
251  }
252  // Get the clusters so that we can add a link to them
253  xAOD::StripCluster * stripCl1 = cluster_xaod_container->at(mapClusters[clusterId1]);
254  xAOD::StripCluster * stripCl2 = cluster_xaod_container->at(mapClusters[clusterId2]);
255  strip_xaod_container->back()->setMeasurements( {stripCl1, stripCl2} );
256  }
257 
258  // Add link to this space point
259  ElementLink< ::SpacePointCollection > link(indetSP, *spc);
260  linkAcc(*strip_xaod_container->back()) = link;
261  }
262  }
263 
264  // Store
266  ATH_CHECK( strip_xaod_handle.record( std::move(strip_xaod_container), std::move(strip_xaod_aux_container) ) );
267 
268  return StatusCode::SUCCESS;
269  }

◆ convertStripOverlap()

StatusCode InDet::InDetToXAODSpacePointConversion::convertStripOverlap ( const EventContext &  ctx,
const Amg::Vector3D vertex,
xAOD::StripClusterContainer cluster_xaod_container,
std::unordered_map< Identifier, std::size_t > &  mapClusters 
) const
private

Definition at line 272 of file InDetToXAODSpacePointConversion.cxx.

276  {
277  const InDetDD::SiDetectorElementCollection* stripElements = nullptr;
278  if (m_convertClusters) {
280  if (not stripDetEleHandle.isValid()) {
281  ATH_MSG_FATAL(m_stripDetEleCollKey.fullKey() << " is not available.");
282  return StatusCode::FAILURE;
283  }
284  stripElements = stripDetEleHandle.cptr();
285  }
286 
287  // Inputs
289  ATH_CHECK( strip_overlap_handle.isValid() );
290  const ::SpacePointOverlapCollection* strip_overlap_container = strip_overlap_handle.cptr();
291 
292  // Outputs
293  std::unique_ptr< xAOD::SpacePointContainer > strip_overlap_xaod_container = std::make_unique< xAOD::SpacePointContainer >();
294  std::unique_ptr< xAOD::SpacePointAuxContainer > strip_overlap_xaod_aux_container = std::make_unique< xAOD::SpacePointAuxContainer >();
295  strip_overlap_xaod_container->setStore( strip_overlap_xaod_aux_container.get() );
296 
297  strip_overlap_xaod_container->reserve(strip_overlap_container->size());
298  strip_overlap_xaod_aux_container->reserve(strip_overlap_container->size());
299 
300  // Conversion
301  static const SG::AuxElement::Accessor< ElementLink< ::SpacePointOverlapCollection > > stripSpacePointLinkAcc("stripOverlapSpacePointLink");
302 
303  for (const Trk::SpacePoint *sp : *strip_overlap_container) {
304  const InDet::SCT_SpacePoint *indetSP = dynamic_cast<const InDet::SCT_SpacePoint *>(sp);
305 
306  strip_overlap_xaod_container->push_back( new xAOD::SpacePoint() );
307  ATH_CHECK( TrackingUtilities::convertTrkToXaodStripSpacePoint(*indetSP, vertex, *strip_overlap_xaod_container->back()) );
308 
309  // Also make cluster object, if requested
310  if (m_convertClusters) {
311  const std::pair<const Trk::PrepRawData*, const Trk::PrepRawData*>& clusterList = sp->clusterList();
312  const InDet::SCT_Cluster* theCluster1 = dynamic_cast<const InDet::SCT_Cluster*>(clusterList.first);
313  const InDet::SCT_Cluster* theCluster2 = dynamic_cast<const InDet::SCT_Cluster*>(clusterList.second);
314  if (theCluster1 == nullptr or
315  theCluster2 == nullptr) {
316  ATH_MSG_FATAL("Cannot cast InDet::SCT_Cluster");
317  }
318 
319  auto clusterId1 = clusterList.first->identify();
320  auto clusterId2 = clusterList.second->identify();
321  const InDetDD::SiDetectorElement *element1 = stripElements->getDetectorElement(m_stripID->wafer_hash(m_stripID->wafer_id(clusterId1)));
322  const InDetDD::SiDetectorElement *element2 = stripElements->getDetectorElement(m_stripID->wafer_hash(m_stripID->wafer_id(clusterId2)));
323 
324  if ( element1 == nullptr ) {
325  ATH_MSG_FATAL( "Invalid strip detector element for cluster (1) identifiers " << clusterId1 );
326  return StatusCode::FAILURE;
327  }
328  if ( element2 == nullptr ) {
329  ATH_MSG_FATAL( "Invalid strip detector element for cluster (2) identifiers " << clusterId2 );
330  return StatusCode::FAILURE;
331  }
332  //tries to insert an entry with key clusterId. Returns false and does nothing if the key already exists.
333  auto insertEntry = [&mapClusters, cluster_xaod_container](const auto & clusterId)-> bool{
334  const auto & [p,inserted] = mapClusters.try_emplace(clusterId, cluster_xaod_container->size());
335  return inserted;
336  };
337  if (insertEntry(clusterId1)) {
338  xAOD::StripCluster * stripCl1 = new xAOD::StripCluster();
339  cluster_xaod_container->push_back(stripCl1);
340  ATH_CHECK( TrackingUtilities::convertInDetToXaodCluster(*theCluster1, *element1, *stripCl1) );
341  }
342  if (insertEntry(clusterId2)) {
343  xAOD::StripCluster * stripCl2 = new xAOD::StripCluster();
344  cluster_xaod_container->push_back(stripCl2);
345  ATH_CHECK( TrackingUtilities::convertInDetToXaodCluster(*theCluster2, *element2, *stripCl2) );
346  }
347 
348  xAOD::StripCluster * stripCl1 = cluster_xaod_container->at(mapClusters[clusterId1]);
349  xAOD::StripCluster * stripCl2 = cluster_xaod_container->at(mapClusters[clusterId2]);
350  strip_overlap_xaod_container->back()->setMeasurements( {stripCl1, stripCl2} );
351  }
352 
353  ElementLink< ::SpacePointOverlapCollection > TrkLink(sp, *strip_overlap_container);
354  stripSpacePointLinkAcc( *strip_overlap_xaod_container->back() ) = TrkLink;
355  }
356 
357  // Store
359  ATH_CHECK( strip_overlap_xaod_handle.record( std::move(strip_overlap_xaod_container), std::move(strip_overlap_xaod_aux_container) ) );
360 
361  return StatusCode::SUCCESS;
362  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode InDet::InDetToXAODSpacePointConversion::execute ( const EventContext &  ctx) const
overridevirtual

Definition at line 50 of file InDetToXAODSpacePointConversion.cxx.

51  {
52  ATH_MSG_DEBUG("Executing " << name() << " ...");
53 
54  // Conds
56  const InDet::BeamSpotData* beamSpot = *beamSpotHandle;
57  auto vertex = beamSpot->beamVtx().position();
58 
59  // Cluster Containers if requested
60  std::unique_ptr< xAOD::PixelClusterContainer > pixel_cluster_xaod_container = std::make_unique< xAOD::PixelClusterContainer >();
61  std::unique_ptr< xAOD::PixelClusterAuxContainer > pixel_cluster_xaod_aux_container = std::make_unique< xAOD::PixelClusterAuxContainer >();
62  pixel_cluster_xaod_container->setStore( pixel_cluster_xaod_aux_container.get() );
63 
64  std::unique_ptr< xAOD::StripClusterContainer > strip_cluster_xaod_container = std::make_unique< xAOD::StripClusterContainer >();
65  std::unique_ptr< xAOD::StripClusterAuxContainer > strip_cluster_xaod_aux_container = std::make_unique< xAOD::StripClusterAuxContainer >();
66  strip_cluster_xaod_container->setStore( strip_cluster_xaod_aux_container.get() );
67 
68  // Convert
69  if (m_processPixel.value()) {
70  ATH_CHECK( convertPixel(ctx, pixel_cluster_xaod_container.get()) );
71  }
72 
73  if (m_processStrip.value()) {
74  std::unordered_map<Identifier, std::size_t> mapClusters{};
76  strip_cluster_xaod_container.get(),
77  mapClusters) );
79  strip_cluster_xaod_container.get(),
80  mapClusters) );
81  }
82 
83  // Save optional clusters
84  if (m_convertClusters) {
85  if (m_processPixel.value()) {
87  ATH_CHECK( pixel_cluster_xaod_handle.record( std::move(pixel_cluster_xaod_container),
88  std::move(pixel_cluster_xaod_aux_container) ) );
89  }
90 
91  if (m_processStrip.value()) {
93  ATH_CHECK( strip_cluster_xaod_handle.record( std::move(strip_cluster_xaod_container),
94  std::move(strip_cluster_xaod_aux_container) ) );
95  }
96  }
97 
98  return StatusCode::SUCCESS;
99  }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90 {
91  // If we didn't find any symlinks to add, just return the collection
92  // from the base class. Otherwise, return the extended collection.
93  if (!m_extendedExtraObjects.empty()) {
95  }
96  return BaseAlg::extraOutputDeps();
97 }

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96  {
97  return execState( ctx ).filterPassed();
98  }

◆ initialize()

StatusCode InDet::InDetToXAODSpacePointConversion::initialize ( )
overridevirtual

Definition at line 22 of file InDetToXAODSpacePointConversion.cxx.

23  {
24  ATH_MSG_DEBUG("Initializing " << name() << " ...");
25 
27 
31 
35 
38 
41 
43  ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID"));
44  ATH_CHECK(detStore()->retrieve(m_stripID,"SCT_ID"));
45  }
46 
47  return StatusCode::SUCCESS;
48  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::isClonable
overridevirtualinherited

Specify if the algorithm is clonable.

Reentrant algorithms are clonable.

Definition at line 68 of file AthCommonReentrantAlgorithm.cxx.

52 {
53  // Reentrant algorithms are clonable.
54  return true;
55 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100  {
101  execState( ctx ).setFilterPassed( state );
102  }

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext &  ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77 {
78  return BaseAlg::sysExecute (ctx);
79 }

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in InputMakerBase, and HypoBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107  {
109 
110  if (sc.isFailure()) {
111  return sc;
112  }
113 
114  ServiceHandle<ICondSvc> cs("CondSvc",name());
115  for (auto h : outputHandles()) {
116  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117  // do this inside the loop so we don't create the CondSvc until needed
118  if ( cs.retrieve().isFailure() ) {
119  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120  return StatusCode::SUCCESS;
121  }
122  if (cs->regHandle(this,*h).isFailure()) {
123  sc = StatusCode::FAILURE;
124  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125  << " with CondSvc");
126  }
127  }
128  }
129  return sc;
130 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_beamSpotKey

SG::ReadCondHandleKey<InDet::BeamSpotData> InDet::InDetToXAODSpacePointConversion::m_beamSpotKey
private
Initial value:
{ this, "BeamSpotKey", "BeamSpotData",
"SG key for beam spot" }

Definition at line 57 of file InDetToXAODSpacePointConversion.h.

◆ m_convertClusters

Gaudi::Property<bool> InDet::InDetToXAODSpacePointConversion::m_convertClusters {this, "ConvertClusters", false}
private

Definition at line 82 of file InDetToXAODSpacePointConversion.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_inSpacepointsOverlap

SG::ReadHandleKey< ::SpacePointOverlapCollection > InDet::InDetToXAODSpacePointConversion::m_inSpacepointsOverlap
private
Initial value:
{this, "InputStripOverlapSpacePointsName", "ITkOverlapSpacePoints",
"Input Strip overlap space points container"}

Definition at line 64 of file InDetToXAODSpacePointConversion.h.

◆ m_inSpacepointsPixel

SG::ReadHandleKey< ::SpacePointContainer > InDet::InDetToXAODSpacePointConversion::m_inSpacepointsPixel
private
Initial value:
{this, "InputPixelSpacePointsName", "ITkPixelSpacePoints",
"Input Pixel space points container"}

Definition at line 60 of file InDetToXAODSpacePointConversion.h.

◆ m_inSpacepointsStrip

SG::ReadHandleKey< ::SpacePointContainer > InDet::InDetToXAODSpacePointConversion::m_inSpacepointsStrip
private
Initial value:
{this, "InputStripSpacePointsName", "ITkStripSpacePoints",
"Input Strip space points container"}

Definition at line 62 of file InDetToXAODSpacePointConversion.h.

◆ m_outClustersPixel

SG::WriteHandleKey< xAOD::PixelClusterContainer > InDet::InDetToXAODSpacePointConversion::m_outClustersPixel
private
Initial value:
{this, "OutputPixelClustersName", "ITkPixelClusters",
"Output Pixel cluster container"}

Definition at line 67 of file InDetToXAODSpacePointConversion.h.

◆ m_outClustersStrip

SG::WriteHandleKey< xAOD::StripClusterContainer > InDet::InDetToXAODSpacePointConversion::m_outClustersStrip
private
Initial value:
{this, "OutputStripClustersName", "ITkStripClusters",
"Output Strip cluster container"}

Definition at line 69 of file InDetToXAODSpacePointConversion.h.

◆ m_outSpacepointsOverlap

SG::WriteHandleKey< xAOD::SpacePointContainer > InDet::InDetToXAODSpacePointConversion::m_outSpacepointsOverlap
private
Initial value:
{this, "OutputStripOverlapSpacePointsName", "ITkStripOverlapSpacePoints",
"Output Strip Overlap space points container"}

Definition at line 76 of file InDetToXAODSpacePointConversion.h.

◆ m_outSpacepointsPixel

SG::WriteHandleKey< xAOD::SpacePointContainer > InDet::InDetToXAODSpacePointConversion::m_outSpacepointsPixel
private
Initial value:
{this, "OutputPixelSpacePointsName", "ITkPixelSpacePoints",
"Output Pixel space points container"}

Definition at line 72 of file InDetToXAODSpacePointConversion.h.

◆ m_outSpacepointsStrip

SG::WriteHandleKey< xAOD::SpacePointContainer > InDet::InDetToXAODSpacePointConversion::m_outSpacepointsStrip
private
Initial value:
{this, "OutputStripSpacePointsName", "ITkStripSpacePoints",
"Output Strip space points container"}

Definition at line 74 of file InDetToXAODSpacePointConversion.h.

◆ m_pixelDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> InDet::InDetToXAODSpacePointConversion::m_pixelDetEleCollKey {this, "PixelDetEleCollKey", "ITkPixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"}
private

Definition at line 79 of file InDetToXAODSpacePointConversion.h.

◆ m_pixelID

const PixelID* InDet::InDetToXAODSpacePointConversion::m_pixelID {nullptr}
private

Definition at line 86 of file InDetToXAODSpacePointConversion.h.

◆ m_processPixel

Gaudi::Property<bool> InDet::InDetToXAODSpacePointConversion::m_processPixel {this, "ProcessPixel", true}
private

Definition at line 83 of file InDetToXAODSpacePointConversion.h.

◆ m_processStrip

Gaudi::Property<bool> InDet::InDetToXAODSpacePointConversion::m_processStrip {this, "ProcessStrip", true}
private

Definition at line 84 of file InDetToXAODSpacePointConversion.h.

◆ m_stripDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> InDet::InDetToXAODSpacePointConversion::m_stripDetEleCollKey {this, "StripDetEleCollKey", "ITkStripDetectorElementCollection", "Key of SiDetectorElementCollection for Strip"}
private

Definition at line 80 of file InDetToXAODSpacePointConversion.h.

◆ m_stripID

const SCT_ID* InDet::InDetToXAODSpacePointConversion::m_stripID {nullptr}
private

Definition at line 87 of file InDetToXAODSpacePointConversion.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
InDet::InDetToXAODSpacePointConversion::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: InDetToXAODSpacePointConversion.h:57
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDet::InDetToXAODSpacePointConversion::convertPixel
StatusCode convertPixel(const EventContext &ctx, xAOD::PixelClusterContainer *cluster_xaod_container) const
Definition: InDetToXAODSpacePointConversion.cxx:101
Trk::SpacePoint
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:35
InDet::InDetToXAODSpacePointConversion::m_processStrip
Gaudi::Property< bool > m_processStrip
Definition: InDetToXAODSpacePointConversion.h:84
TrackingUtilities::convertInDetToXaodCluster
StatusCode convertInDetToXaodCluster(const InDet::PixelCluster &indetCluster, const InDetDD::SiDetectorElement &element, xAOD::PixelCluster &xaodCluster)
Definition: ClusterConversionUtilities.cxx:74
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
InDet::InDetToXAODSpacePointConversion::m_outSpacepointsStrip
SG::WriteHandleKey< xAOD::SpacePointContainer > m_outSpacepointsStrip
Definition: InDetToXAODSpacePointConversion.h:74
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:27
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
InDet::InDetToXAODSpacePointConversion::m_outClustersPixel
SG::WriteHandleKey< xAOD::PixelClusterContainer > m_outClustersPixel
Definition: InDetToXAODSpacePointConversion.h:67
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
InDet::InDetToXAODSpacePointConversion::m_inSpacepointsStrip
SG::ReadHandleKey< ::SpacePointContainer > m_inSpacepointsStrip
Definition: InDetToXAODSpacePointConversion.h:62
InDet::InDetToXAODSpacePointConversion::m_inSpacepointsPixel
SG::ReadHandleKey< ::SpacePointContainer > m_inSpacepointsPixel
Definition: InDetToXAODSpacePointConversion.h:60
pool
pool namespace
Definition: libname.h:15
AthCommonDataStore::renounce
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
Definition: AthCommonDataStore.h:380
SG::ALWAYS_TRACK_INDICES
@ ALWAYS_TRACK_INDICES
Always track indices, regardless of the setting of the ownership policy.
Definition: IndexTrackingPolicy.h:43
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:210
InDet::InDetToXAODSpacePointConversion::m_pixelID
const PixelID * m_pixelID
Definition: InDetToXAODSpacePointConversion.h:86
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
xAOD::SpacePoint_v1
Definition: SpacePoint_v1.h:29
InDet::InDetToXAODSpacePointConversion::convertStripOverlap
StatusCode convertStripOverlap(const EventContext &ctx, const Amg::Vector3D &vertex, xAOD::StripClusterContainer *cluster_xaod_container, std::unordered_map< Identifier, std::size_t > &mapClusters) const
Definition: InDetToXAODSpacePointConversion.cxx:272
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::PixelSpacePoint
Definition: PixelSpacePoint.h:31
TrackingUtilities::convertTrkToXaodPixelSpacePoint
StatusCode convertTrkToXaodPixelSpacePoint(const InDet::PixelSpacePoint &trkSpacePoint, xAOD::SpacePoint &xaodSpacePoint)
Definition: SpacePointConversionUtilities.cxx:12
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
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
DataVector::push_new
size_type push_new(size_type n, F alloc)
Create and add a number of new elements to the end of the container.
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
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::InDetToXAODSpacePointConversion::convertStrip
StatusCode convertStrip(const EventContext &ctx, const Amg::Vector3D &vertex, xAOD::StripClusterContainer *cluster_xaod_container, std::unordered_map< Identifier, std::size_t > &mapClusters) const
Definition: InDetToXAODSpacePointConversion.cxx:176
AthCommonReentrantAlgorithm::extraOutputDeps
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Definition: AthCommonReentrantAlgorithm.cxx:89
xAOD::StripCluster
StripCluster_v1 StripCluster
Define the version of the strip cluster class.
Definition: StripCluster.h:13
xAOD::AuxContainerBase::reserve
virtual void reserve(size_t size) override
Reserve a given size for the arrays.
Definition: AuxContainerBase.cxx:535
InDet::InDetToXAODSpacePointConversion::m_outSpacepointsPixel
SG::WriteHandleKey< xAOD::SpacePointContainer > m_outSpacepointsPixel
Definition: InDetToXAODSpacePointConversion.h:72
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
PixelID::wafer_hash
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
Definition: PixelID.h:383
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
InDet::InDetToXAODSpacePointConversion::m_outSpacepointsOverlap
SG::WriteHandleKey< xAOD::SpacePointContainer > m_outSpacepointsOverlap
Definition: InDetToXAODSpacePointConversion.h:76
xAOD::PixelCluster
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.
Definition: Event/xAOD/xAODInDetMeasurement/xAODInDetMeasurement/PixelCluster.h:13
InDet::InDetToXAODSpacePointConversion::m_outClustersStrip
SG::WriteHandleKey< xAOD::StripClusterContainer > m_outClustersStrip
Definition: InDetToXAODSpacePointConversion.h:69
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
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
AthCommonReentrantAlgorithm::sysExecute
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
Definition: AthCommonReentrantAlgorithm.cxx:76
xAOD::StripCluster_v1
Definition: StripCluster_v1.h:17
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT_ID::wafer_hash
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
Definition: SCT_ID.h:492
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::SpacePoint_v1::setMeasurements
void setMeasurements(std::vector< const xAOD::UncalibratedMeasurement * > &&value)
Sets the index of the measurements.
InDet::SCT_Cluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SCT_Cluster.h:34
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
InDet::InDetToXAODSpacePointConversion::m_convertClusters
Gaudi::Property< bool > m_convertClusters
Definition: InDetToXAODSpacePointConversion.h:82
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
TrackingUtilities::convertTrkToXaodStripSpacePoint
StatusCode convertTrkToXaodStripSpacePoint(const InDet::SCT_SpacePoint &trkSpacePoint, const Amg::Vector3D &vertex, xAOD::SpacePoint &xaodSpacePoint)
Definition: SpacePointConversionUtilities.cxx:43
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
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)
InDet::SCT_SpacePoint
Definition: SCT_SpacePoint.h:31
InDet::PixelCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h:49
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
InDet::BeamSpotData
Definition: BeamSpotData.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
h
xAOD::SpacePointContainer
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
Definition: Event/xAOD/xAODInDetMeasurement/xAODInDetMeasurement/SpacePointContainer.h:14
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
InDet::InDetToXAODSpacePointConversion::m_inSpacepointsOverlap
SG::ReadHandleKey< ::SpacePointOverlapCollection > m_inSpacepointsOverlap
Definition: InDetToXAODSpacePointConversion.h:64
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:63
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthCommonReentrantAlgorithm.cxx:107
python.BuildSignatureFlags.beamSpot
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
Definition: BuildSignatureFlags.py:491
InDet::InDetToXAODSpacePointConversion::m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Definition: InDetToXAODSpacePointConversion.h:79
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
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
InDet::InDetToXAODSpacePointConversion::m_processPixel
Gaudi::Property< bool > m_processPixel
Definition: InDetToXAODSpacePointConversion.h:83
AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthCommonReentrantAlgorithm.h:114
InDet::InDetToXAODSpacePointConversion::m_stripDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_stripDetEleCollKey
Definition: InDetToXAODSpacePointConversion.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
InDet::InDetToXAODSpacePointConversion::m_stripID
const SCT_ID * m_stripID
Definition: InDetToXAODSpacePointConversion.h:87
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >
SG::ReadCondHandle::cptr
const_pointer_type cptr()
Definition: ReadCondHandle.h:71