Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::DumpObjects Class Reference

#include <DumpObjects.h>

Inheritance diagram for InDet::DumpObjects:
Collaboration diagram for InDet::DumpObjects:

Public Member Functions

 DumpObjects (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~DumpObjects ()
 
virtual StatusCode initialize () override final
 
virtual StatusCode execute () override final
 
virtual StatusCode finalize () override final
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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 > &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

bool isPassed (HepMC::ConstGenParticlePtr particle, float &px, float &py, float &pz, float &pt, float &eta, float &vx, float &vy, float &vz, float &radius, float &status, float &charge, std::vector< int > &vParentID, std::vector< int > &vParentBarcode, int &vProdNin, int &vProdNout, int &vProdStatus, int &vProdBarcode)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

const PixelIDm_pixelID {}
 
const SCT_IDm_SCT_ID {}
 
const InDetDD::PixelDetectorManagerm_pixelManager {}
 
const InDetDD::SCT_DetectorManagerm_SCT_Manager {}
 
int m_event {}
 
int m_selected {}
 
ServiceHandle< IPartPropSvc > m_particlePropSvc
 
const HepPDT::ParticleDataTable * m_particleDataTable {}
 
std::string m_name
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {this, "EventInfoKey", "EventInfo"}
 
SG::ReadHandleKey< McEventCollectionm_mcEventCollectionKey {this, "TruthEventKey", "TruthEvent"}
 
SG::ReadHandleKey< InDet::PixelClusterContainerm_pixelClusterKey {this, "PixelClusterKey", "ITkPixelClusters"}
 
SG::ReadHandleKey< InDet::SCT_ClusterContainerm_stripClusterKey {this, "StripClusterKey", "ITkStripClusters"}
 
SG::ReadHandleKey< InDetSimDataCollectionm_pixelSDOKey {this, "PixelSDOKey", "ITkPixelSDO_Map"}
 
SG::ReadHandleKey< InDetSimDataCollectionm_stripSDOKey {this, "StripSDOKey", "ITkStripSDO_Map"}
 
SG::ReadHandleKey< xAOD::SpacePointContainerm_xaodPixelSpacePointContainerKey {this,"xAODInputPixelSpacePoints", "ITkPixelSpacePoints"}
 
SG::ReadHandleKey< xAOD::SpacePointContainerm_xaodStripSpacePointContainerKey {this,"xAODInputSpacePointsContainerKey", "ITkStripSpacePoints"}
 
SG::ReadHandleKey< xAOD::SpacePointContainerm_xaodStripSpacePointOverlapContainerKey {this,"xAODInputSpacePointsOverlapContainerKey", "ITkStripOverlapSpacePoints"}
 
SG::ReadHandleKey< TrackCollectionm_tracksKey {this, "TracksKey", "CombinedITkTracks"}
 
SG::ReadHandleKey< TrackTruthCollectionm_tracksTruthKey {this, "TracksTruthKey", "CombinedITkTracksTruthCollection"}
 
SG::ReadHandleKey< DetailedTrackTruthCollectionm_detailedTracksTruthKey
 
int m_offset {}
 
float m_max_eta = 4.0
 
float m_min_pt = 1000.
 
int m_max_barcode = 200e3
 
float m_maxProdVertex = 260.
 
std::string m_ntupleFileName
 jobOption: Ntuple file name More...
 
std::string m_ntupleDirName
 jobOption: Ntuple directory name More...
 
std::string m_ntupleTreeName
 jobOption: Ntuple tree name More...
 
int m_maxCL {}
 jobOption: maximum number of clusters More...
 
int m_maxPart {}
 jobOption: maximum number of particles More...
 
int m_maxSP {}
 jobOption: maximum number of space points More...
 
int m_maxTRK {}
 
int m_maxDTT {}
 
bool m_rootFile {}
 jobOption: save data in root format More...
 
TTree * m_nt {}
 
unsigned int m_run_number {}
 
unsigned long long m_event_number {}
 
int m_nSE {}
 
int * m_SEID {}
 
int m_nCL {}
 
int * m_CLindex {}
 
std::vector< std::string > * m_CLhardware {}
 
double * m_CLx {}
 
double * m_CLy {}
 
double * m_CLz {}
 
int * m_CLbarrel_endcap {}
 
int * m_CLlayer_disk {}
 
int * m_CLeta_module {}
 
int * m_CLphi_module {}
 
int * m_CLside {}
 
uint64_t * m_CLmoduleID {}
 
std::vector< std::vector< int > > * m_CLparticleLink_eventIndex {}
 
std::vector< std::vector< int > > * m_CLparticleLink_barcode {}
 
std::vector< std::vector< bool > > * m_CLbarcodesLinked {}
 
std::vector< std::vector< float > > * m_CLparticle_charge {}
 
std::vector< std::vector< int > > * m_CLphis {}
 
std::vector< std::vector< int > > * m_CLetas {}
 
std::vector< std::vector< int > > * m_CLtots {}
 
double * m_CLloc_direction1 {}
 
double * m_CLloc_direction2 {}
 
double * m_CLloc_direction3 {}
 
double * m_CLJan_loc_direction1 {}
 
double * m_CLJan_loc_direction2 {}
 
double * m_CLJan_loc_direction3 {}
 
int * m_CLpixel_count {}
 
float * m_CLcharge_count {}
 
float * m_CLloc_eta {}
 
float * m_CLloc_phi {}
 
float * m_CLglob_eta {}
 
float * m_CLglob_phi {}
 
double * m_CLeta_angle {}
 
double * m_CLphi_angle {}
 
float * m_CLnorm_x {}
 
float * m_CLnorm_y {}
 
float * m_CLnorm_z {}
 
std::vector< std::vector< double > > * m_CLlocal_cov {}
 
int m_nPartEVT {}
 
int * m_Part_event_number {}
 
int * m_Part_barcode {}
 
float * m_Part_px {}
 
float * m_Part_py {}
 
float * m_Part_pz {}
 
float * m_Part_pt {}
 
float * m_Part_eta {}
 
float * m_Part_vx {}
 
float * m_Part_vy {}
 
float * m_Part_vz {}
 
float * m_Part_radius {}
 
float * m_Part_status {}
 
float * m_Part_charge {}
 
int * m_Part_pdg_id {}
 
int * m_Part_passed {}
 
int * m_Part_vProdNin {}
 
int * m_Part_vProdNout {}
 
int * m_Part_vProdStatus {}
 
int * m_Part_vProdBarcode {}
 
std::vector< std::vector< int > > * m_Part_vParentID {}
 
std::vector< std::vector< int > > * m_Part_vParentBarcode {}
 
int m_nSP {}
 
int * m_SPindex {}
 
double * m_SPx {}
 
double * m_SPy {}
 
double * m_SPz {}
 
int * m_SPCL1_index {}
 
int * m_SPCL2_index {}
 
int * m_SPisOverlap {}
 
double * m_SPradius {}
 
double * m_SPcovr {}
 
double * m_SPcovz {}
 
float * m_SPhl_topstrip {}
 
float * m_SPhl_botstrip {}
 
std::vector< std::vector< float > > * m_SPtopStripDirection {}
 
std::vector< std::vector< float > > * m_SPbottomStripDirection {}
 
std::vector< std::vector< float > > * m_SPstripCenterDistance {}
 
std::vector< std::vector< float > > * m_SPtopStripCenterPosition {}
 
int m_nTRK {}
 
int * m_TRKindex {}
 
int * m_TRKtrack_fitter {}
 
int * m_TRKparticle_hypothesis {}
 
std::vector< std::vector< int > > * m_TRKproperties {}
 
std::vector< std::vector< int > > * m_TRKpattern {}
 
int * m_TRKndof {}
 
int * m_TRKmot {}
 
int * m_TRKoot {}
 
float * m_TRKchiSq {}
 
std::vector< std::vector< int > > * m_TRKmeasurementsOnTrack_pixcl_sctcl_index {}
 
std::vector< std::vector< int > > * m_TRKoutliersOnTrack_pixcl_sctcl_index {}
 
int * m_TRKcharge {}
 
std::vector< std::vector< double > > * m_TRKperigee_position {}
 
std::vector< std::vector< double > > * m_TRKperigee_momentum {}
 
int * m_TTCindex {}
 
int * m_TTCevent_index {}
 
int * m_TTCparticle_link {}
 
float * m_TTCprobability {}
 
int m_nDTT {}
 
int * m_DTTindex {}
 
int * m_DTTsize {}
 
std::vector< std::vector< int > > * m_DTTtrajectory_eventindex {}
 
std::vector< std::vector< int > > * m_DTTtrajectory_barcode {}
 
std::vector< std::vector< int > > * m_DTTstTruth_subDetType {}
 
std::vector< std::vector< int > > * m_DTTstTrack_subDetType {}
 
std::vector< std::vector< int > > * m_DTTstCommon_subDetType {}
 
DataObjIDColl m_extendedExtraObjects
 
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 54 of file DumpObjects.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ DumpObjects()

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

Definition at line 57 of file DumpObjects.cxx.

59  : AthAlgorithm(name, pSvcLocator),
60  m_particlePropSvc("PartPropSvc", name) {
61  declareProperty("Offset", m_offset);
62  declareProperty("FileName", m_name = "");
63  //
64  declareProperty("NtupleFileName", m_ntupleFileName);
65  declareProperty("NtupleDirectoryName", m_ntupleDirName);
66  declareProperty("NtupleTreeName", m_ntupleTreeName);
67  declareProperty("maxCL", m_maxCL = 1500000);
68  declareProperty("maxPart", m_maxPart = 1500000);
69  declareProperty("maxSP", m_maxSP = 1500000);
70  declareProperty("maxTRK", m_maxTRK = 1500000);
71  declareProperty("maxDTT", m_maxDTT = 1500000);
72 
73  declareProperty("rootFile", m_rootFile);
74 }

◆ ~DumpObjects()

InDet::DumpObjects::~DumpObjects ( )
inline

Definition at line 57 of file DumpObjects.h.

57 {}

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  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< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  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< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  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< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  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< 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< 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< 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< 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< 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< Algorithm > >::declareProperty ( Gaudi::Property< T > &  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< 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< 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< 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::DumpObjects::execute ( )
finaloverridevirtual

Definition at line 372 of file DumpObjects.cxx.

372  {
373  //-------------------------------
374  //
375  const EventContext &ctx = Gaudi::Hive::currentContext();
376 
377  m_event++;
378 
379  // map cluster ID to an index
380  // in order to connect the cluster to spacepoints
381  std::map<Identifier, long int> clusterIDMapIdx;
382  m_selected = 0; // global indices for clusters
383 
384  std::map<Identifier, long int> clusterIDMapSpacePointIdx; // key: cluster indentifier, value: spacepoint index
385 
386  // create a container with HepMcParticleLink and list of clusters
387  // particle barcode --> is accepted and number of clusters
388  std::map<std::pair<int, int>, std::pair<bool, int>> allTruthParticles;
389 
390  const McEventCollection *mcCollptr = nullptr;
391  SG::ReadHandle<McEventCollection> mcEventCollectionHandle{m_mcEventCollectionKey, ctx};
392  if (not mcEventCollectionHandle.isValid()) {
393  ATH_MSG_WARNING(" McEventCollection not found: " << m_mcEventCollectionKey.key());
394  return StatusCode::FAILURE;
395  }
396  mcCollptr = mcEventCollectionHandle.cptr();
397 
398  // dump out event ID
399  const xAOD::EventInfo *eventInfo = nullptr;
400  SG::ReadHandle<xAOD::EventInfo> eventInfoHandle(m_eventInfoKey, ctx);
401  if (not eventInfoHandle.isValid()) {
402  ATH_MSG_WARNING(" EventInfo not found: " << m_eventInfoKey.key());
403  return StatusCode::FAILURE;
404  }
405  eventInfo = eventInfoHandle.cptr();
406 
407  m_run_number = eventInfo->runNumber();
408  m_event_number = eventInfo->eventNumber();
409 
410  std::map<int, int> allSubEvents;
411 
412  m_nSE = 0;
413 
414  bool duplicateSubeventID = false;
415  for (unsigned int cntr = 0; cntr < mcCollptr->size(); ++cntr) {
416  int ID = mcCollptr->at(cntr)->event_number();
417  if (m_rootFile)
418  m_SEID[m_nSE++] = ID;
419 
420  if (m_nSE == m_maxCL) {
421  ATH_MSG_WARNING("DUMP : hit max number of subevent ID");
422  break;
423  }
424  std::map<int, int>::iterator it = allSubEvents.find(ID);
425  if (it == allSubEvents.end())
426  allSubEvents.insert(std::make_pair(ID, 1));
427  else {
428  it->second++;
429  duplicateSubeventID = true;
430  }
431  }
432 
433  if (duplicateSubeventID) {
434  ATH_MSG_WARNING("Duplicate subevent ID in event " << m_event);
435  }
436 
437  m_nPartEVT = 0;
438 
439  if (m_rootFile) {
440  (*m_Part_vParentID).clear();
441  (*m_Part_vParentBarcode).clear();
442  }
443 
444  for (unsigned int cntr = 0; cntr < mcCollptr->size(); ++cntr) {
445  const HepMC::GenEvent *genEvt = (mcCollptr->at(cntr));
446 
447  // for ( HepMC::GenEvent::particle_const_iterator p = genEvt->particles_begin(); p != genEvt->particles_end(); ++p )
448  // {
449 
453 
454  for (auto p : *genEvt) {
455  //*p is a GenParticle
456  float px, py, pz, pt, eta, vx, vy, vz, radius, status, charge = 0.;
457  std::vector<int> vParentID;
458  std::vector<int> vParentBarcode;
459 
460  int vProdNin, vProdNout, vProdStatus, vProdBarcode;
461  bool passed = isPassed(p, px, py, pz, pt, eta, vx, vy, vz, radius, status, charge, vParentID, vParentBarcode,
462  vProdNin, vProdNout, vProdStatus, vProdBarcode);
463  allTruthParticles.insert(std::make_pair(std::make_pair(genEvt->event_number(), HepMC::barcode(p)),
464  std::make_pair(passed, 0))); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
465  // subevent, barcode, px, py, pz, pt, eta, vx, vy, vz, radius, status, charge
466  if (m_rootFile) {
467  m_Part_event_number[m_nPartEVT] = genEvt->event_number();
468  m_Part_barcode[m_nPartEVT] = HepMC::barcode(p); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
474  m_Part_vx[m_nPartEVT] = vx;
475  m_Part_vy[m_nPartEVT] = vy;
476  m_Part_vz[m_nPartEVT] = vz;
480  m_Part_pdg_id[m_nPartEVT] = p->pdg_id();
481  m_Part_passed[m_nPartEVT] = (passed ? true : false);
482  m_Part_vProdNin[m_nPartEVT] = vProdNin;
483  m_Part_vProdNout[m_nPartEVT] = vProdNout;
484  m_Part_vProdStatus[m_nPartEVT] = vProdStatus;
485  m_Part_vProdBarcode[m_nPartEVT] = vProdBarcode;
486  (*m_Part_vParentID).push_back(vParentID);
487  (*m_Part_vParentBarcode).push_back(vParentBarcode);
488  }
489 
490  m_nPartEVT++;
491  if (m_nPartEVT == m_maxPart) {
492  ATH_MSG_WARNING("DUMP : hit max number of particle events");
493  break;
494  }
495  }
496  }
497 
499  SG::ReadHandle<InDet::PixelClusterContainer> pixelClusterContainerHandle{m_pixelClusterKey, ctx};
500  if (not pixelClusterContainerHandle.isValid()) {
501  ATH_MSG_WARNING(" PixelClusterContainer not found: " << m_pixelClusterKey.key());
502  return StatusCode::FAILURE;
503  }
504  PixelClusterContainer = pixelClusterContainerHandle.cptr();
505 
507  SG::ReadHandle<InDet::SCT_ClusterContainer> stripClusterContainerHandle{m_stripClusterKey, ctx};
508  if (not stripClusterContainerHandle.isValid()) {
509  ATH_MSG_WARNING(" SCT_ClusterContainer not found: " << m_stripClusterKey.key());
510  return StatusCode::FAILURE;
511  }
512  SCT_ClusterContainer = stripClusterContainerHandle.cptr();
513 
514  auto cartesion_to_spherical = [](const Amg::Vector3D &xyzVec, float &eta_, float &phi_) {
515  float r3 = 0;
516  for (int idx = 0; idx < 3; ++idx) {
517  r3 += xyzVec[idx] * xyzVec[idx];
518  }
519  r3 = sqrt(r3);
520  phi_ = atan2(xyzVec[1], xyzVec[0]);
521  float theta_ = acos(xyzVec[2] / r3);
522  eta_ = log(tan(0.5 * theta_));
523  };
524 
528 
529  m_nCL = 0;
530  if (m_rootFile) {
531  (*m_CLhardware).clear();
532  (*m_CLparticleLink_eventIndex).clear();
533  (*m_CLparticleLink_barcode).clear();
534  (*m_CLbarcodesLinked).clear();
535  (*m_CLparticle_charge).clear();
536  (*m_CLphis).clear();
537  (*m_CLetas).clear();
538  (*m_CLtots).clear();
539  (*m_CLlocal_cov).clear();
540  }
541 
542  if (PixelClusterContainer->size() > 0) {
543 
544  const InDetSimDataCollection *sdoCollection = 0;
545  SG::ReadHandle<InDetSimDataCollection> sdoCollectionHandle{m_pixelSDOKey, ctx};
546  if (not sdoCollectionHandle.isValid()) {
547  ATH_MSG_WARNING(" InDetSimDataCollection not found: " << m_pixelSDOKey.key());
548  return StatusCode::FAILURE;
549  }
550  sdoCollection = sdoCollectionHandle.cptr();
551 
552  for (const auto clusterCollection : *PixelClusterContainer) {
553  // skip empty collections
554  if (clusterCollection->empty())
555  continue;
556 
557  int barrel_endcap = m_pixelID->barrel_ec(clusterCollection->identify());
558  int layer_disk = m_pixelID->layer_disk(clusterCollection->identify());
559  int eta_module = m_pixelID->eta_module(clusterCollection->identify());
560  int phi_module = m_pixelID->phi_module(clusterCollection->identify());
561 
562  InDetDD::SiDetectorElement *element = m_pixelManager->getDetectorElement(clusterCollection->identify());
563 
564  Amg::Vector3D my_normal = element->normal();
565  float norm_x = fabs(my_normal.x()) > 1e-5 ? my_normal.x() : 0.;
566  float norm_y = fabs(my_normal.y()) > 1e-5 ? my_normal.y() : 0.;
567  float norm_z = fabs(my_normal.z()) > 1e-5 ? my_normal.z() : 0.;
568 
569  const InDetDD::PixelModuleDesign *design(dynamic_cast<const InDetDD::PixelModuleDesign *>(&element->design()));
570 
571  if (not design) {
572  ATH_MSG_ERROR("Dynamic cast failed at " << __LINE__ << " of MergedPixelsTool.cxx.");
573  return StatusCode::FAILURE;
574  }
575 
576  // loop over collection
577  for (const auto cluster : *clusterCollection) {
578  Identifier clusterId = cluster->identify();
579  if (!clusterId.is_valid()) {
580  ATH_MSG_WARNING("Pixel cluster identifier is not valid");
581  }
582 
583  const Amg::MatrixX &local_cov = cluster->localCovariance();
584 
585  std::vector<std::pair<int, int>> barcodes = {};
586  std::vector<int> particleLink_eventIndex = {};
587  std::vector<int> particleLink_barcode = {};
588  std::vector<bool> barcodesLinked = {};
589  std::vector<float> charge = {};
590  std::vector<int> phis = {};
591  std::vector<int> etas = {};
592  std::vector<int> tots = {};
593  int min_eta = 999;
594  int min_phi = 999;
595  int max_eta = -999;
596  int max_phi = -999;
597 
598  float charge_count = 0;
599  int pixel_count = 0;
600 
601  for (unsigned int rdo = 0; rdo < cluster->rdoList().size(); rdo++) {
602  const auto &rdoID = cluster->rdoList().at(rdo);
603  int phi = m_pixelID->phi_index(rdoID);
604  int eta = m_pixelID->eta_index(rdoID);
605  if (min_eta > eta)
606  min_eta = eta;
607  if (min_phi > phi)
608  min_phi = phi;
609  if (max_eta < eta)
610  max_eta = eta;
611  if (max_phi < phi)
612  max_phi = phi;
613 
614  ++pixel_count;
615  charge_count += cluster->totList().at(rdo);
616 
617  phis.push_back(phi);
618  etas.push_back(eta);
619  tots.push_back(cluster->totList().at(rdo));
620 
621  auto pos = sdoCollection->find(rdoID);
622  if (pos != sdoCollection->end()) {
623  for (auto deposit : pos->second.getdeposits()) {
624  const HepMcParticleLink &particleLink = deposit.first;
625  std::pair<int, int> barcode(particleLink.eventIndex(), particleLink.barcode());
626  // if (particleLink.isValid()) allTruthParticles.at(barcode).second++; // JB comment this out
627  if (std::find(barcodes.begin(), barcodes.end(), barcode) == barcodes.end()) {
628  barcodes.push_back(barcode);
629  particleLink_eventIndex.push_back(particleLink.eventIndex());
630  particleLink_barcode.push_back(particleLink.barcode());
631  charge.push_back(deposit.second);
632  barcodesLinked.push_back(particleLink.isValid());
633  }
634  }
635  }
636  }
637 
638  InDetDD::SiLocalPosition localPos_entry = design->localPositionOfCell(InDetDD::SiCellId(min_phi, min_eta));
639  InDetDD::SiLocalPosition localPos_exit = design->localPositionOfCell(InDetDD::SiCellId(max_phi, max_eta));
640 
641  Amg::Vector3D localStartPosition(localPos_entry.xEta() - 0.5 * element->etaPitch(),
642  localPos_entry.xPhi() - 0.5 * element->phiPitch(),
643  -0.5 * element->thickness());
644  Amg::Vector3D localEndPosition(localPos_exit.xEta() + 0.5 * element->etaPitch(),
645  localPos_exit.xPhi() + 0.5 * element->phiPitch(), 0.5 * element->thickness());
646 
647  // local direction in local coordinates
648  // clusterShape: [lx, ly, lz]
649  Amg::Vector3D localDirection = localEndPosition - localStartPosition;
650 
651  float loc_eta = 0, loc_phi = 0; // clusterShape: [leta, lphi]
652  cartesion_to_spherical(localDirection, loc_eta, loc_phi);
653 
654  Amg::Vector3D globalStartPosition = element->globalPosition(localStartPosition);
655  Amg::Vector3D globalEndPosition = element->globalPosition(localEndPosition);
656 
657  Amg::Vector3D direction = globalEndPosition - globalStartPosition;
658  float glob_eta = 0, glob_phi = 0; // clusterShape: [geta, gphi]
659  cartesion_to_spherical(direction, glob_eta, glob_phi);
660 
661  Amg::Vector3D my_phiax = element->phiAxis();
662  Amg::Vector3D my_etaax = element->etaAxis();
663 
664  float trkphicomp = direction.dot(my_phiax);
665  float trketacomp = direction.dot(my_etaax);
666  float trknormcomp = direction.dot(my_normal);
667  double phi_angle = atan2(trknormcomp, trkphicomp);
668  double eta_angle = atan2(trknormcomp, trketacomp);
669  // now dumping all the values now
670  clusterIDMapIdx[cluster->identify()] = m_selected;
671  std::vector<double> v_local_cov;
672  if (local_cov.size() > 0) {
673  for (size_t i = 0, nRows = local_cov.rows(), nCols = local_cov.cols(); i < nRows; i++) {
674  for (size_t j = 0; j < nCols; ++j) {
675  v_local_cov.push_back(local_cov(i, j));
676  }
677  }
678  }
679  if (m_rootFile) {
680  // fill TTree
682  (*m_CLhardware).push_back("PIXEL");
683  m_CLx[m_nCL] = cluster->globalPosition().x();
684  m_CLy[m_nCL] = cluster->globalPosition().y();
685  m_CLz[m_nCL] = cluster->globalPosition().z();
686  m_CLbarrel_endcap[m_nCL] = barrel_endcap;
687  m_CLlayer_disk[m_nCL] = layer_disk;
688  m_CLeta_module[m_nCL] = eta_module;
689  m_CLphi_module[m_nCL] = phi_module;
690  m_CLside[m_nCL] = 0;
691  m_CLmoduleID[m_nCL] = clusterCollection->identify().get_compact();
692  (*m_CLparticleLink_eventIndex).push_back(particleLink_eventIndex);
693  (*m_CLparticleLink_barcode).push_back(particleLink_barcode);
694  (*m_CLbarcodesLinked).push_back(barcodesLinked);
695  (*m_CLparticle_charge).push_back(charge);
696  (*m_CLetas).push_back(etas);
697  (*m_CLphis).push_back(phis);
698  (*m_CLtots).push_back(tots);
699  m_CLloc_direction1[m_nCL] = localDirection[0];
700  m_CLloc_direction2[m_nCL] = localDirection[1];
701  m_CLloc_direction3[m_nCL] = localDirection[2];
705  m_CLpixel_count[m_nCL] = pixel_count;
706  m_CLcharge_count[m_nCL] = charge_count;
707  m_CLloc_eta[m_nCL] = loc_eta;
708  m_CLloc_phi[m_nCL] = loc_phi;
709  m_CLglob_eta[m_nCL] = glob_eta;
710  m_CLglob_phi[m_nCL] = glob_phi;
711  m_CLeta_angle[m_nCL] = eta_angle;
712  m_CLphi_angle[m_nCL] = phi_angle;
713  m_CLnorm_x[m_nCL] = norm_x;
714  m_CLnorm_y[m_nCL] = norm_y;
715  m_CLnorm_z[m_nCL] = norm_z;
716  (*m_CLlocal_cov).push_back(v_local_cov);
717  }
718  m_nCL++;
719  m_selected++;
720  if (m_nCL == m_maxCL) {
721  ATH_MSG_WARNING("DUMP : hit max number of clusters");
722  break;
723  }
724  }
725  }
726  }
727 
731 
732  if (SCT_ClusterContainer->size() > 0) {
733  const InDetSimDataCollection *sdoCollection = 0;
734  SG::ReadHandle<InDetSimDataCollection> sdoCollectionHandle{m_stripSDOKey, ctx};
735  if (not sdoCollectionHandle.isValid()) {
736  ATH_MSG_WARNING(" InDetSimDataCollection not found: " << m_stripSDOKey.key());
737  return StatusCode::FAILURE;
738  }
739  sdoCollection = sdoCollectionHandle.cptr();
740 
741  for (const auto clusterCollection : *SCT_ClusterContainer) {
742  // skip empty collections
743  if (clusterCollection->empty())
744  continue;
745 
746  int barrel_endcap = m_SCT_ID->barrel_ec(clusterCollection->identify());
747  int layer_disk = m_SCT_ID->layer_disk(clusterCollection->identify());
748  int eta_module = m_SCT_ID->eta_module(clusterCollection->identify());
749  int phi_module = m_SCT_ID->phi_module(clusterCollection->identify());
750  int side = m_SCT_ID->side(clusterCollection->identify());
751 
752  InDetDD::SiDetectorElement *element = m_SCT_Manager->getDetectorElement(clusterCollection->identify());
753 
754  Amg::Vector3D my_normal = element->normal();
755  float norm_x = fabs(my_normal.x()) > 1e-5 ? my_normal.x() : 0.;
756  float norm_y = fabs(my_normal.y()) > 1e-5 ? my_normal.y() : 0.;
757  float norm_z = fabs(my_normal.z()) > 1e-5 ? my_normal.z() : 0.;
758 
759  // loop over collection
760  for (const auto cluster : *clusterCollection) {
761  Identifier clusterId = cluster->identify();
762  if (!clusterId.is_valid()) {
763  ATH_MSG_WARNING("SCT cluster identifier is not valid");
764  }
765 
766  const Amg::MatrixX &local_cov = cluster->localCovariance();
767 
768  std::vector<std::pair<int, int>> barcodes = {};
769  std::vector<int> particleLink_eventIndex = {};
770  std::vector<int> particleLink_barcode = {};
771  std::vector<bool> barcodesLinked = {};
772  std::vector<float> charge = {};
773 
774  std::vector<int> tots = {};
775  std::vector<int> strip_ids = {};
776  int min_strip = 999;
777  int max_strip = -999;
778 
779  float charge_count = 0;
780  int pixel_count = 0;
781 
782  for (unsigned int rdo = 0; rdo < cluster->rdoList().size(); rdo++) {
783  const auto &rdoID = cluster->rdoList().at(rdo);
784 
785  int strip = m_SCT_ID->strip(rdoID);
786 
787  if (min_strip > strip)
788  min_strip = strip;
789  if (max_strip < strip)
790  max_strip = strip;
791  strip_ids.push_back(strip);
792  // tots.push_back(cluster->totList().at(rdo));
793  tots.push_back(0); // FIXME
794  ++pixel_count;
795  // find barcodes of the truth particles
796  auto pos = sdoCollection->find(rdoID);
797  if (pos != sdoCollection->end()) {
798  for (auto deposit : pos->second.getdeposits()) {
799  const HepMcParticleLink &particleLink = deposit.first;
800  std::pair<int, int> barcode(particleLink.eventIndex(), particleLink.barcode());
801  // note that we are not filling the map allTruthParticles here - OK, we are not using this map for
802  // anything
803  if (std::find(barcodes.begin(), barcodes.end(), barcode) == barcodes.end()) {
804  barcodes.push_back(barcode);
805  particleLink_eventIndex.push_back(particleLink.eventIndex());
806  particleLink_barcode.push_back(particleLink.barcode());
807  charge.push_back(deposit.second);
808  barcodesLinked.push_back(particleLink.isValid());
809  }
810  }
811  }
812  }
813 
814  // retrieve cluster shape
815  const InDetDD::SCT_ModuleSideDesign *design(
816  dynamic_cast<const InDetDD::SCT_ModuleSideDesign *>(&element->design()));
817  if (not design) {
818  ATH_MSG_ERROR("Failed at " << __LINE__ << " of accessing SCT ModuleSide Design");
819  return StatusCode::FAILURE;
820  }
821 
822  Amg::Vector2D locpos = cluster->localPosition();
823  std::pair<Amg::Vector3D, Amg::Vector3D> ends(
824  element->endsOfStrip(InDetDD::SiLocalPosition(locpos.y(), locpos.x(), 0)));
825 
826  Amg::Vector3D JanDirection = ends.second - ends.first;
827 
828  InDetDD::SiLocalPosition localPos_entry = design->localPositionOfCell(InDetDD::SiCellId(min_strip));
829  InDetDD::SiLocalPosition localPos_exit = design->localPositionOfCell(InDetDD::SiCellId(max_strip));
830 
831  Amg::Vector3D localStartPosition(localPos_entry.xEta() - 0.5 * element->etaPitch(),
832  localPos_entry.xPhi() - 0.5 * element->phiPitch(),
833  -0.5 * element->thickness());
834  Amg::Vector3D localEndPosition(localPos_exit.xEta() + 0.5 * element->etaPitch(),
835  localPos_exit.xPhi() + 0.5 * element->phiPitch(), 0.5 * element->thickness());
836 
837  Amg::Vector3D localDirection = localEndPosition - localStartPosition;
838  float loc_eta = 0, loc_phi = 0; // clusterShape: [leta, lphi]
839  cartesion_to_spherical(localDirection, loc_eta, loc_phi);
840 
841  Amg::Vector3D globalStartPosition = element->globalPosition(localStartPosition);
842  Amg::Vector3D globalEndPosition = element->globalPosition(localEndPosition);
843 
844  Amg::Vector3D direction = globalEndPosition - globalStartPosition;
845  float glob_eta = 0, glob_phi = 0; // clusterShape: [geta, gphi]
846  cartesion_to_spherical(direction, glob_eta, glob_phi);
847 
848  Amg::Vector3D my_phiax = element->phiAxis();
849  Amg::Vector3D my_etaax = element->etaAxis();
850 
851  float trkphicomp = direction.dot(my_phiax);
852  float trketacomp = direction.dot(my_etaax);
853  float trknormcomp = direction.dot(my_normal);
854  double phi_angle = atan2(trknormcomp, trkphicomp);
855  double eta_angle = atan2(trknormcomp, trketacomp);
856 
857  // now dumping all the values now
858  clusterIDMapIdx[cluster->identify()] = m_selected;
859  // cluster shape
860  std::vector<int> cst;
861  for (unsigned strip = 0; strip < strip_ids.size(); strip++) {
862  cst.push_back(-1);
863  }
864  std::vector<double> v_local_cov;
865  if (local_cov.size() > 0) {
866  for (size_t i = 0, nRows = local_cov.rows(), nCols = local_cov.cols(); i < nRows; i++) {
867  for (size_t j = 0; j < nCols; ++j) {
868  v_local_cov.push_back(local_cov(i, j));
869  }
870  }
871  }
872  if (m_rootFile) {
874  (*m_CLhardware).push_back("STRIP");
875  m_CLx[m_nCL] = cluster->globalPosition().x();
876  m_CLy[m_nCL] = cluster->globalPosition().y();
877  m_CLz[m_nCL] = cluster->globalPosition().z();
878  m_CLbarrel_endcap[m_nCL] = barrel_endcap;
879  m_CLlayer_disk[m_nCL] = layer_disk;
880  m_CLeta_module[m_nCL] = eta_module;
881  m_CLphi_module[m_nCL] = phi_module;
882  m_CLside[m_nCL] = side;
883  m_CLmoduleID[m_nCL] = clusterCollection->identify().get_compact();
884  (*m_CLparticleLink_eventIndex).push_back(particleLink_eventIndex);
885  (*m_CLparticleLink_barcode).push_back(particleLink_barcode);
886  (*m_CLbarcodesLinked).push_back(barcodesLinked);
887  (*m_CLparticle_charge).push_back(charge);
888  (*m_CLetas).push_back(strip_ids);
889  (*m_CLphis).push_back(cst);
890  (*m_CLtots).push_back(tots);
891  m_CLloc_direction1[m_nCL] = localDirection[0];
892  m_CLloc_direction2[m_nCL] = localDirection[1];
893  m_CLloc_direction3[m_nCL] = localDirection[2];
894  m_CLJan_loc_direction1[m_nCL] = JanDirection[0];
895  m_CLJan_loc_direction2[m_nCL] = JanDirection[1];
896  m_CLJan_loc_direction3[m_nCL] = JanDirection[2];
897  m_CLpixel_count[m_nCL] = pixel_count;
898  m_CLcharge_count[m_nCL] = charge_count;
899  m_CLloc_eta[m_nCL] = loc_eta;
900  m_CLloc_phi[m_nCL] = loc_phi;
901  m_CLglob_eta[m_nCL] = glob_eta;
902  m_CLglob_phi[m_nCL] = glob_phi;
903  m_CLeta_angle[m_nCL] = eta_angle;
904  m_CLphi_angle[m_nCL] = phi_angle;
905  m_CLnorm_x[m_nCL] = norm_x;
906  m_CLnorm_y[m_nCL] = norm_y;
907  m_CLnorm_z[m_nCL] = norm_z;
908  (*m_CLlocal_cov).push_back(v_local_cov);
909  }
910 
911  m_nCL++;
912  m_selected++;
913  if (m_nCL == m_maxCL) {
914  ATH_MSG_WARNING("DUMP : hit max number of clusters");
915  break;
916  }
917  }
918  }
919  }
920 
921 
925 
926  static const SG::Accessor< ElementLink<SpacePointCollection> > linkAcc("pixelSpacePointLink");
927  static const SG::Accessor< ElementLink< ::SpacePointCollection > > striplinkAcc("sctSpacePointLink");
928  static const SG::Accessor< ElementLink< ::SpacePointOverlapCollection > > stripOverlaplinkAcc("stripOverlapSpacePointLink");
929 
930  // xAOD Containers
931  const xAOD::SpacePointContainer *xAODPixelSPContainer = nullptr;
932 
934 
935  if (not xAODPixelSpacePointContainerHandle.isValid()) {
936  ATH_MSG_ERROR(" SpacePointContainer not found: " << m_xaodPixelSpacePointContainerKey.key());
937  return StatusCode::FAILURE;
938  }
939 
940  xAODPixelSPContainer = xAODPixelSpacePointContainerHandle.cptr();
941 
942 
943  const xAOD::SpacePointContainer *xAODStripSPContainer = 0;
944  SG::ReadHandle<xAOD::SpacePointContainer> xAODStripSpacePointContainerHandle{m_xaodStripSpacePointContainerKey, ctx};
945  if (not xAODStripSpacePointContainerHandle.isValid()) {
946  ATH_MSG_ERROR(" SpacePointContainer not found: " << m_xaodStripSpacePointContainerKey.key());
947  return StatusCode::FAILURE;
948  }
949  xAODStripSPContainer = xAODStripSpacePointContainerHandle.cptr();
950 
951 
952  const xAOD::SpacePointContainer *xAODStripSPOverlapContainer = 0;
953  SG::ReadHandle<xAOD::SpacePointContainer> xAODStripSpacePointOverlapContainerHandle{m_xaodStripSpacePointOverlapContainerKey, ctx};
954  if (not xAODStripSpacePointOverlapContainerHandle.isValid()) {
955  ATH_MSG_ERROR(" SpacePointContainer not found: " << m_xaodStripSpacePointOverlapContainerKey.key());
956  return StatusCode::FAILURE;
957  }
958  xAODStripSPOverlapContainer = xAODStripSpacePointOverlapContainerHandle.cptr();
959 
960  int sp_index = 0;
961  m_nSP = 0;
962 
963  if (xAODPixelSPContainer && xAODPixelSPContainer->size() > 0) {
964  for (const auto sp : *xAODPixelSPContainer) {
965 
966  if (not linkAcc.isAvailable(*sp))
967  ATH_MSG_FATAL("no pixel SpacePoint link for xAOD::SpacePoint");
968 
969 
970  auto trk_sp = *linkAcc(*sp);
971  const InDet::SiCluster *cl = static_cast<const InDet::SiCluster*>(trk_sp->clusterList().first);
972 
973  if (m_rootFile) {
974  m_SPindex[m_nSP] = sp_index;
975  m_SPx[m_nSP] = sp->globalPosition().x();
976  m_SPy[m_nSP] = sp->globalPosition().y();
977  m_SPz[m_nSP] = sp->globalPosition().z();
978  m_SPradius[m_nSP] = sp->radius();
979  m_SPcovr[m_nSP] = sp->varianceR();
980  m_SPcovz[m_nSP] = sp->varianceZ();
981  m_SPCL1_index[m_nSP] = clusterIDMapIdx[cl->identify()];
982  m_SPCL2_index[m_nSP] = -1;
983  m_SPisOverlap[m_nSP] = -1;
984  }
985 
986  sp_index++;
987  m_nSP++;
988  if (m_nSP == m_maxSP) {
989  ATH_MSG_WARNING("DUMP : hit max number of space points");
990  break;
991  }
992  } // loop on container
993  } // container not empty
994 
995  if (xAODStripSPContainer && xAODStripSPContainer->size() > 0) {
996 
997  //loop over collection
998  for (const auto sp : *xAODStripSPContainer) {
999 
1000  ATH_CHECK(striplinkAcc.isAvailable(*sp));
1001 
1002  auto trk_sp = *striplinkAcc(*sp);
1003  const InDet::SiCluster *cl_1 = static_cast<const InDet::SiCluster *>(trk_sp->clusterList().first);
1004  const InDet::SiCluster *cl_2 = static_cast<const InDet::SiCluster *>(trk_sp->clusterList().second);
1005 
1006  if (m_rootFile) {
1007 
1008  m_SPindex[m_nSP] = sp_index;
1009  m_SPx[m_nSP] = sp->globalPosition().x();
1010  m_SPy[m_nSP] = sp->globalPosition().y();
1011  m_SPz[m_nSP] = sp->globalPosition().z();
1012  m_SPradius[m_nSP] = sp->radius();
1013  m_SPcovr[m_nSP] = sp->varianceR();
1014  m_SPcovz[m_nSP] = sp->varianceZ();
1015  m_SPCL1_index[m_nSP] = clusterIDMapIdx[cl_1->identify()];
1016  m_SPCL2_index[m_nSP] = clusterIDMapIdx[cl_2->identify()];
1017  m_SPisOverlap[m_nSP] = 0;
1018  m_SPhl_topstrip[m_nSP] = sp->topHalfStripLength();
1019  m_SPhl_botstrip[m_nSP] = sp->bottomHalfStripLength();
1020 
1021 
1022  std::vector<float> topstripDir(sp->topStripDirection().data(),
1023  sp->topStripDirection().data() +
1024  sp->topStripDirection().size());
1025 
1026  std::vector<float> botstripDir(sp->bottomStripDirection().data(),
1027  sp->bottomStripDirection().data() +
1028  sp->bottomStripDirection().size());
1029 
1030  std::vector<float> DstripCnt(sp->stripCenterDistance().data(),
1031  sp->stripCenterDistance().data() +
1032  sp->stripCenterDistance().size());
1033 
1034  std::vector<float> topstripCnt(sp->topStripCenter().data(),
1035  sp->topStripCenter().data() +
1036  sp->topStripCenter().size());
1037 
1038  (*m_SPtopStripDirection).push_back(topstripDir);
1039  (*m_SPbottomStripDirection).push_back(botstripDir);
1040  (*m_SPstripCenterDistance).push_back(DstripCnt);
1041  (*m_SPtopStripCenterPosition).push_back(topstripCnt);
1042 
1043  }
1044 
1045  sp_index++;
1046  m_nSP++;
1047 
1048  if (m_nSP == m_maxSP) {
1049  ATH_MSG_WARNING("DUMP : hit max number of space points");
1050  break;
1051  }
1052  }
1053  }
1054 
1055 
1056  if (xAODStripSPOverlapContainer && xAODStripSPOverlapContainer->size() > 0) {
1057 
1058  //loop over collection
1059  for (const auto sp : *xAODStripSPOverlapContainer) {
1060 
1061  ATH_CHECK(stripOverlaplinkAcc.isAvailable(*sp));
1062 
1063  auto trk_sp = *stripOverlaplinkAcc(*sp);
1064  const InDet::SiCluster *cl_1 = static_cast<const InDet::SiCluster *>(trk_sp->clusterList().first);
1065  const InDet::SiCluster *cl_2 = static_cast<const InDet::SiCluster *>(trk_sp->clusterList().second);
1066 
1067  if (m_rootFile) {
1068 
1069  m_SPindex[m_nSP] = sp_index;
1070  m_SPx[m_nSP] = sp->globalPosition().x();
1071  m_SPy[m_nSP] = sp->globalPosition().y();
1072  m_SPz[m_nSP] = sp->globalPosition().z();
1073  m_SPradius[m_nSP] = sp->radius();
1074  m_SPcovr[m_nSP] = sp->varianceR();
1075  m_SPcovz[m_nSP] = sp->varianceZ();
1076  m_SPCL1_index[m_nSP] = clusterIDMapIdx[cl_1->identify()];
1077  m_SPCL2_index[m_nSP] = clusterIDMapIdx[cl_2->identify()];
1078 
1079  int flag = compute_overlap_SP_flag(m_CLeta_module[clusterIDMapIdx[cl_1->identify()]],
1080  m_CLphi_module[clusterIDMapIdx[cl_1->identify()]],
1081  m_CLeta_module[clusterIDMapIdx[cl_2->identify()]],
1082  m_CLphi_module[clusterIDMapIdx[cl_2->identify()]]);
1083 
1084  if ( flag<1 || flag > 3 )
1085  ATH_MSG_WARNING("Unexpected overlap SP flag: "<<flag);
1086 
1087 
1089  m_SPhl_topstrip[m_nSP] = sp->topHalfStripLength();
1090  m_SPhl_botstrip[m_nSP] = sp->bottomHalfStripLength();
1091 
1092 
1093  std::vector<float> topstripDir(sp->topStripDirection().data(),
1094  sp->topStripDirection().data() +
1095  sp->topStripDirection().size());
1096 
1097  std::vector<float> botstripDir(sp->bottomStripDirection().data(),
1098  sp->bottomStripDirection().data() +
1099  sp->bottomStripDirection().size());
1100 
1101  std::vector<float> DstripCnt(sp->stripCenterDistance().data(),
1102  sp->stripCenterDistance().data() +
1103  sp->stripCenterDistance().size());
1104 
1105  std::vector<float> topstripCnt(sp->topStripCenter().data(),
1106  sp->topStripCenter().data() +
1107  sp->topStripCenter().size());
1108 
1109  (*m_SPtopStripDirection).push_back(topstripDir);
1110  (*m_SPbottomStripDirection).push_back(botstripDir);
1111  (*m_SPstripCenterDistance).push_back(DstripCnt);
1112  (*m_SPtopStripCenterPosition).push_back(topstripCnt);
1113 
1114  }
1115 
1116  sp_index++;
1117  m_nSP++;
1118  if (m_nSP == m_maxSP) {
1119  ATH_MSG_WARNING("DUMP : hit max number of space points");
1120  break;
1121  }
1122  } // loop on container
1123  } // container not empty
1124 
1125 
1129 
1130  const TrackCollection *trackCollection = 0;
1131  SG::ReadHandle<TrackCollection> trackCollectionHandle{m_tracksKey, ctx};
1132  if (not trackCollectionHandle.isValid()) {
1133  ATH_MSG_WARNING(" TrackCollection not found: " << m_tracksKey.key());
1134  return StatusCode::FAILURE;
1135  }
1136  trackCollection = trackCollectionHandle.cptr();
1137 
1138  const TrackTruthCollection *trackTruthCollection = 0;
1139  SG::ReadHandle<TrackTruthCollection> trackTruthCollectionHandle{m_tracksTruthKey, ctx};
1140  if (not trackTruthCollectionHandle.isValid()) {
1141  ATH_MSG_WARNING(" TrackTruthCollection not found: " << m_tracksTruthKey.key());
1142  return StatusCode::FAILURE;
1143  }
1144  trackTruthCollection = trackTruthCollectionHandle.cptr();
1145 
1146  int trk_index = 0;
1147 
1148  // loop over tracks (and track truth) objects
1149  TrackCollection::const_iterator trackIterator = (*trackCollection).begin();
1150  m_nTRK = 0;
1151  if (m_rootFile) {
1152  (*m_TRKproperties).clear();
1153  (*m_TRKpattern).clear();
1154  (*m_TRKperigee_position).clear();
1155  (*m_TRKperigee_momentum).clear();
1156  (*m_TRKmeasurementsOnTrack_pixcl_sctcl_index).clear();
1157  (*m_TRKoutliersOnTrack_pixcl_sctcl_index).clear();
1158  }
1159 
1160  for (; trackIterator < (*trackCollection).end(); ++trackIterator) {
1161  if (!((*trackIterator))) {
1162  ATH_MSG_WARNING("TrackCollection contains empty entries");
1163  continue;
1164  }
1165  const Trk::TrackInfo &info = (*trackIterator)->info();
1166  const Trk::FitQuality *fitQuality = (*trackIterator)->fitQuality();
1167  const Trk::Perigee *perigeeParameters = (*trackIterator)->perigeeParameters();
1168  const DataVector<const Trk::MeasurementBase> *measurementsOnTrack = (*trackIterator)->measurementsOnTrack();
1169  const DataVector<const Trk::MeasurementBase> *outliersOnTrack = (*trackIterator)->outliersOnTrack();
1170 
1171  ElementLink<TrackCollection> tracklink;
1172  tracklink.setElement(const_cast<Trk::Track *>(*trackIterator));
1173  tracklink.setStorableObject(*trackCollection);
1174  const ElementLink<TrackCollection> tracklink2 = tracklink;
1175  TrackTruthCollection::const_iterator found = trackTruthCollection->find(tracklink2);
1176 
1177  const std::bitset<Trk::TrackInfo::NumberOfTrackProperties> &properties = info.properties();
1178  std::vector<int> v_properties;
1179  for (std::size_t i = 0; i < properties.size(); i++) {
1180  if (properties[i]) {
1181  v_properties.push_back(i);
1182  }
1183  }
1184 
1185  const std::bitset<Trk::TrackInfo::NumberOfTrackRecoInfo> &pattern = info.patternRecognition();
1186  std::vector<int> v_pattern;
1187  for (std::size_t i = 0; i < pattern.size(); i++) {
1188  if (pattern[i]) {
1189  v_pattern.push_back(i);
1190  }
1191  }
1192 
1193  int ndof = -1;
1194  float chiSq = 0;
1195  if (fitQuality) {
1196  ndof = fitQuality->numberDoF();
1197  chiSq = fitQuality->chiSquared();
1198  }
1199  std::vector<double> position, momentum;
1200  int charge = 0;
1201  if (perigeeParameters) {
1202  position.push_back(perigeeParameters->position()[0]);
1203  position.push_back(perigeeParameters->position()[1]);
1204  position.push_back(perigeeParameters->position()[2]);
1205  momentum.push_back(perigeeParameters->momentum()[0]);
1206  momentum.push_back(perigeeParameters->momentum()[1]);
1207  momentum.push_back(perigeeParameters->momentum()[2]);
1208  charge = perigeeParameters->charge();
1209  } else {
1210  position.push_back(0);
1211  position.push_back(0);
1212  position.push_back(0);
1213  momentum.push_back(0);
1214  momentum.push_back(0);
1215  momentum.push_back(0);
1216  }
1217  int mot = 0;
1218  int oot = 0;
1219  if (measurementsOnTrack)
1220  mot = measurementsOnTrack->size();
1221  if (outliersOnTrack)
1222  oot = outliersOnTrack->size();
1223  std::vector<int> measurementsOnTrack_pixcl_sctcl_index, outliersOnTrack_pixcl_sctcl_index;
1224  int TTCindex, TTCevent_index, TTCparticle_link;
1225  float TTCprobability;
1226  if (measurementsOnTrack) {
1227  for (size_t i = 0; i < measurementsOnTrack->size(); i++) {
1228  const Trk::MeasurementBase *mb = (*measurementsOnTrack)[i];
1229  const InDet::PixelClusterOnTrack *pixcl = dynamic_cast<const InDet::PixelClusterOnTrack *>(mb);
1230  const InDet::SCT_ClusterOnTrack *sctcl = dynamic_cast<const InDet::SCT_ClusterOnTrack *>(mb);
1231  if (pixcl) {
1232  measurementsOnTrack_pixcl_sctcl_index.push_back(clusterIDMapIdx[pixcl->prepRawData()->identify()]);
1233  }
1234  else if (sctcl) {
1235  measurementsOnTrack_pixcl_sctcl_index.push_back(clusterIDMapIdx[sctcl->prepRawData()->identify()]);
1236  } else {
1237  measurementsOnTrack_pixcl_sctcl_index.push_back(-1);
1238  }
1239  }
1240  }
1241  if (outliersOnTrack) {
1242  for (size_t i = 0; i < outliersOnTrack->size(); i++) {
1243  const Trk::MeasurementBase *mb = (*outliersOnTrack)[i];
1244  const InDet::PixelClusterOnTrack *pixcl = dynamic_cast<const InDet::PixelClusterOnTrack *>(mb);
1245  const InDet::SCT_ClusterOnTrack *sctcl = dynamic_cast<const InDet::SCT_ClusterOnTrack *>(mb);
1246  if (pixcl) {
1247  outliersOnTrack_pixcl_sctcl_index.push_back(clusterIDMapIdx[pixcl->prepRawData()->identify()]);
1248  } else if (sctcl) {
1249  outliersOnTrack_pixcl_sctcl_index.push_back(clusterIDMapIdx[sctcl->prepRawData()->identify()]);
1250  } else {
1251  outliersOnTrack_pixcl_sctcl_index.push_back(-1);
1252  }
1253  }
1254  }
1255  if (found != trackTruthCollection->end()) {
1256  TTCindex = found->first.index();
1257  TTCevent_index = found->second.particleLink().eventIndex();
1258  TTCparticle_link = found->second.particleLink().barcode();
1259  TTCprobability = found->second.probability();
1260  } else {
1261  TTCindex = TTCevent_index = TTCparticle_link = -999;
1262  TTCprobability = -1;
1263  }
1264 
1265  if (m_rootFile) {
1266  m_TRKindex[m_nTRK] = trk_index;
1267  m_TRKtrack_fitter[m_nTRK] = info.trackFitter();
1268  m_TRKndof[m_nTRK] = info.trackFitter();
1269  m_TRKparticle_hypothesis[m_nTRK] = info.particleHypothesis();
1270  (*m_TRKproperties).push_back(v_properties);
1271  (*m_TRKpattern).push_back(v_pattern);
1272  m_TRKndof[m_nTRK] = ndof;
1273  m_TRKchiSq[m_nTRK] = chiSq;
1274  (*m_TRKmeasurementsOnTrack_pixcl_sctcl_index).push_back(measurementsOnTrack_pixcl_sctcl_index);
1275  (*m_TRKoutliersOnTrack_pixcl_sctcl_index).push_back(outliersOnTrack_pixcl_sctcl_index);
1277  (*m_TRKperigee_position).push_back(position);
1278  (*m_TRKperigee_momentum).push_back(momentum);
1279  m_TRKmot[m_nTRK] = mot;
1280  m_TRKoot[m_nTRK] = oot;
1281  m_TTCindex[m_nTRK] = TTCindex;
1282  m_TTCevent_index[m_nTRK] = TTCevent_index;
1283  m_TTCparticle_link[m_nTRK] = TTCparticle_link;
1284  m_TTCprobability[m_nTRK] = TTCprobability;
1285  }
1286 
1287  trk_index++;
1288  // index
1289  m_nTRK++;
1290  if (m_nTRK == m_maxTRK) {
1291  ATH_MSG_WARNING("DUMP : hit max number of track events");
1292  break;
1293  }
1294  }
1295 
1296  const DetailedTrackTruthCollection *detailedTrackTruthCollection = 0;
1297  SG::ReadHandle<DetailedTrackTruthCollection> detailedTrackTruthCollectionHandle{m_detailedTracksTruthKey, ctx};
1298  if (not detailedTrackTruthCollectionHandle.isValid()) {
1299  ATH_MSG_WARNING(" DetailedTrackTruthCollection not found: " << m_detailedTracksTruthKey.key());
1300  return StatusCode::FAILURE;
1301  }
1302  detailedTrackTruthCollection = detailedTrackTruthCollectionHandle.cptr();
1303 
1304  m_nDTT = 0;
1305  if (m_rootFile) {
1306  (*m_DTTtrajectory_eventindex).clear();
1307  (*m_DTTtrajectory_barcode).clear();
1308  (*m_DTTstTruth_subDetType).clear();
1309  (*m_DTTstTrack_subDetType).clear();
1310  (*m_DTTstCommon_subDetType).clear();
1311  }
1312 
1313  // loop over DetailedTrackTruth objects
1314  DetailedTrackTruthCollection::const_iterator detailedTrackTruthIterator = (*detailedTrackTruthCollection).begin();
1315  for (; detailedTrackTruthIterator != (*detailedTrackTruthCollection).end(); ++detailedTrackTruthIterator) {
1316  std::vector<int> DTTtrajectory_eventindex, DTTtrajectory_barcode, DTTstTruth_subDetType, DTTstTrack_subDetType,
1317  DTTstCommon_subDetType;
1318  const TruthTrajectory &traj = detailedTrackTruthIterator->second.trajectory();
1319  for (size_t j = 0; j < traj.size(); j++) {
1320  DTTtrajectory_eventindex.push_back(traj[j].eventIndex());
1321  DTTtrajectory_barcode.push_back(traj[j].barcode());
1322  }
1323  const SubDetHitStatistics &stTruth = detailedTrackTruthIterator->second.statsTruth();
1324  const SubDetHitStatistics &stTrack = detailedTrackTruthIterator->second.statsTrack();
1325  const SubDetHitStatistics &stCommon = detailedTrackTruthIterator->second.statsCommon();
1326  for (unsigned j = 0; j < SubDetHitStatistics::NUM_SUBDETECTORS; j++) {
1327  DTTstTruth_subDetType.push_back(stTruth[SubDetHitStatistics::SubDetType(j)]);
1328  }
1329  for (unsigned j = 0; j < SubDetHitStatistics::NUM_SUBDETECTORS; j++) {
1330  DTTstTrack_subDetType.push_back(stTrack[SubDetHitStatistics::SubDetType(j)]);
1331  }
1332  for (unsigned j = 0; j < SubDetHitStatistics::NUM_SUBDETECTORS; j++) {
1333  DTTstCommon_subDetType.push_back(stCommon[SubDetHitStatistics::SubDetType(j)]);
1334  }
1335 
1336  if (m_rootFile) {
1337  m_DTTindex[m_nDTT] = detailedTrackTruthIterator->first.index();
1338  m_DTTsize[m_nDTT] = traj.size();
1339  (*m_DTTtrajectory_eventindex).push_back(DTTtrajectory_eventindex);
1340  (*m_DTTtrajectory_barcode).push_back(DTTtrajectory_barcode);
1341  (*m_DTTstTruth_subDetType).push_back(DTTstTruth_subDetType);
1342  (*m_DTTstTrack_subDetType).push_back(DTTstTrack_subDetType);
1343  (*m_DTTstCommon_subDetType).push_back(DTTstCommon_subDetType);
1344  }
1345 
1346  m_nDTT++;
1347  }
1348 
1349  // Once all the information for this event has been filled in the arrays,
1350  // copy content of the arrays to the TTree
1351  if (m_rootFile)
1352  m_nt->Fill();
1353 
1354  return StatusCode::SUCCESS;
1355 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< 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 & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode InDet::DumpObjects::finalize ( )
finaloverridevirtual

Definition at line 1358 of file DumpObjects.cxx.

1358  {
1359  //--------------------------------
1360  if (m_rootFile) {
1361  delete[] m_SEID;
1362 
1363  delete[] m_CLindex;
1364  delete m_CLhardware;
1365  delete[] m_CLx;
1366  delete[] m_CLy;
1367  delete[] m_CLz;
1368  delete[] m_CLbarrel_endcap;
1369  delete[] m_CLlayer_disk;
1370  delete[] m_CLeta_module;
1371  delete[] m_CLphi_module;
1372  delete[] m_CLside;
1373  delete[] m_CLmoduleID;
1375  delete m_CLparticleLink_barcode;
1376  delete m_CLbarcodesLinked;
1377  delete m_CLparticle_charge;
1378  delete m_CLphis;
1379  delete m_CLetas;
1380  delete m_CLtots;
1381  delete[] m_CLloc_direction1;
1382  delete[] m_CLloc_direction2;
1383  delete[] m_CLloc_direction3;
1384  delete[] m_CLJan_loc_direction1;
1385  delete[] m_CLJan_loc_direction2;
1386  delete[] m_CLJan_loc_direction3;
1387  delete[] m_CLpixel_count;
1388  delete[] m_CLcharge_count;
1389  delete[] m_CLloc_eta;
1390  delete[] m_CLloc_phi;
1391  delete[] m_CLglob_eta;
1392  delete[] m_CLglob_phi;
1393  delete[] m_CLeta_angle;
1394  delete[] m_CLphi_angle;
1395  delete[] m_CLnorm_x;
1396  delete[] m_CLnorm_y;
1397  delete[] m_CLnorm_z;
1398  delete m_CLlocal_cov;
1399 
1400  delete[] m_Part_event_number;
1401  delete[] m_Part_barcode;
1402  delete[] m_Part_px;
1403  delete[] m_Part_py;
1404  delete[] m_Part_pz;
1405  delete[] m_Part_pt;
1406  delete[] m_Part_eta;
1407  delete[] m_Part_vx;
1408  delete[] m_Part_vy;
1409  delete[] m_Part_vz;
1410  delete[] m_Part_radius;
1411  delete[] m_Part_status;
1412  delete[] m_Part_charge;
1413  delete[] m_Part_pdg_id;
1414  delete[] m_Part_passed;
1415 
1416  delete[] m_Part_vProdNin;
1417  delete[] m_Part_vProdNout;
1418  delete[] m_Part_vProdStatus;
1419  delete[] m_Part_vProdBarcode;
1420  delete m_Part_vParentID;
1421  delete m_Part_vParentBarcode;
1422 
1423  delete[] m_SPindex;
1424  delete[] m_SPx;
1425  delete[] m_SPy;
1426  delete[] m_SPz;
1427  delete[] m_SPCL1_index;
1428  delete[] m_SPCL2_index;
1429  delete[] m_SPisOverlap;
1430  delete[] m_SPradius;
1431  delete[] m_SPcovr;
1432  delete[] m_SPcovz;
1433  delete[] m_SPhl_topstrip;
1434  delete[] m_SPhl_botstrip;
1435  delete m_SPtopStripDirection;
1436  delete m_SPbottomStripDirection;
1437  delete m_SPstripCenterDistance;
1439 
1440  delete[] m_TRKindex;
1441  delete[] m_TRKtrack_fitter;
1442  delete[] m_TRKparticle_hypothesis;
1443  delete m_TRKproperties;
1444  delete m_TRKpattern;
1445  delete[] m_TRKndof;
1446  delete[] m_TRKmot;
1447  delete[] m_TRKoot;
1448  delete[] m_TRKchiSq;
1451  delete[] m_TRKcharge;
1452  delete m_TRKperigee_position;
1453  delete m_TRKperigee_momentum;
1454  delete[] m_TTCindex;
1455  delete[] m_TTCevent_index;
1456  delete[] m_TTCparticle_link;
1457  delete[] m_TTCprobability;
1458 
1459  delete[] m_DTTindex;
1460  delete[] m_DTTsize;
1462  delete m_DTTtrajectory_barcode;
1463  delete m_DTTstTruth_subDetType;
1464  delete m_DTTstTrack_subDetType;
1465  delete m_DTTstCommon_subDetType;
1466  }
1467 
1468  return StatusCode::SUCCESS;
1469 }

◆ initialize()

StatusCode InDet::DumpObjects::initialize ( )
finaloverridevirtual

Definition at line 77 of file DumpObjects.cxx.

77  {
78 //-------------------------------------------
79  m_event = m_offset;
80 
81  // ReadHandle keys
91 
92  ATH_CHECK(m_tracksKey.initialize());
95 
96 
97 
98 
99  // Grab PixelID helper
100  ATH_CHECK (detStore()->retrieve(m_pixelID, "PixelID") );
101 
102  if (!detStore()->contains<InDetDD::PixelDetectorManager>("Pixel") ||
103  detStore()->retrieve(m_pixelManager, "Pixel").isFailure()) {
104  // if Pixel retrieval fails, try ITkPixel
105  if (!detStore()->contains<InDetDD::PixelDetectorManager>("ITkPixel") ||
106  detStore()->retrieve(m_pixelManager, "ITkPixel").isFailure()) {
107  return StatusCode::FAILURE;
108  }
109  }
110 
111  // Grab SCT_ID helper
112  ATH_CHECK (detStore()->retrieve(m_SCT_ID,"SCT_ID") );
113 
114  if (!detStore()->contains<InDetDD::SCT_DetectorManager>("SCT") ||
115  detStore()->retrieve(m_SCT_Manager, "SCT").isFailure()) {
116  // if SCT retrieval fails, try ITkStrip
117  if (!detStore()->contains<InDetDD::SCT_DetectorManager>("ITkStrip") ||
118  detStore()->retrieve(m_SCT_Manager, "ITkStrip").isFailure()) {
119  return StatusCode::FAILURE;
120  }
121  }
122 
123  // particle property service
124  ATH_CHECK (m_particlePropSvc.retrieve());
125 
126  // and the particle data table
128  if (m_particleDataTable == 0) {
129  ATH_MSG_ERROR("Could not get ParticleDataTable! Cannot associate pdg code with charge. Aborting. ");
130  return StatusCode::FAILURE;
131  }
132 
133  // Define the TTree
134  //
135  SmartIF<ITHistSvc> tHistSvc{Gaudi::svcLocator()->service("THistSvc")};
136  ATH_CHECK(tHistSvc.isValid());
137  m_nt = new TTree(TString(m_ntupleTreeName), "Athena Dump for GNN4ITk");
138  // NB: we must not delete the tree, this is done by THistSvc
139  std::string fullNtupleName = m_ntupleFileName + m_ntupleDirName + m_ntupleTreeName;
140  StatusCode sc = tHistSvc->regTree(fullNtupleName, m_nt);
141  if (sc.isFailure()) {
142  ATH_MSG_ERROR("Unable to register TTree: " << fullNtupleName);
143  return sc;
144  }
145 
146  if (m_rootFile) {
147  m_SEID = new int[m_maxCL];
148 
149  m_CLindex = new int[m_maxCL];
150  m_CLhardware = new std::vector<std::string>;
151  m_CLx = new double[m_maxCL];
152  m_CLy = new double[m_maxCL];
153  m_CLz = new double[m_maxCL];
154  m_CLbarrel_endcap = new int[m_maxCL];
155  m_CLlayer_disk = new int[m_maxCL];
156  m_CLeta_module = new int[m_maxCL];
157  m_CLphi_module = new int[m_maxCL];
158  m_CLside = new int[m_maxCL];
160  m_CLparticleLink_eventIndex = new std::vector<std::vector<int>>;
161  m_CLparticleLink_barcode = new std::vector<std::vector<int>>;
162  m_CLbarcodesLinked = new std::vector<std::vector<bool>>;
163  m_CLparticle_charge = new std::vector<std::vector<float>>;
164  m_CLphis = new std::vector<std::vector<int>>;
165  m_CLetas = new std::vector<std::vector<int>>;
166  m_CLtots = new std::vector<std::vector<int>>;
167  m_CLloc_direction1 = new double[m_maxCL];
168  m_CLloc_direction2 = new double[m_maxCL];
169  m_CLloc_direction3 = new double[m_maxCL];
170  m_CLJan_loc_direction1 = new double[m_maxCL];
171  m_CLJan_loc_direction2 = new double[m_maxCL];
172  m_CLJan_loc_direction3 = new double[m_maxCL];
173  m_CLpixel_count = new int[m_maxCL];
174  m_CLcharge_count = new float[m_maxCL];
175  m_CLloc_eta = new float[m_maxCL];
176  m_CLloc_phi = new float[m_maxCL];
177  m_CLglob_eta = new float[m_maxCL];
178  m_CLglob_phi = new float[m_maxCL];
179  m_CLeta_angle = new double[m_maxCL];
180  m_CLphi_angle = new double[m_maxCL];
181  m_CLnorm_x = new float[m_maxCL];
182  m_CLnorm_y = new float[m_maxCL];
183  m_CLnorm_z = new float[m_maxCL];
184  m_CLlocal_cov = new std::vector<std::vector<double>>;
185 
186  m_Part_event_number = new int[m_maxPart];
187  m_Part_barcode = new int[m_maxPart];
188  m_Part_px = new float[m_maxPart];
189  m_Part_py = new float[m_maxPart];
190  m_Part_pz = new float[m_maxPart];
191  m_Part_pt = new float[m_maxPart];
192  m_Part_eta = new float[m_maxPart];
193  m_Part_vx = new float[m_maxPart];
194  m_Part_vy = new float[m_maxPart];
195  m_Part_vz = new float[m_maxPart];
196  m_Part_radius = new float[m_maxPart];
197  m_Part_status = new float[m_maxPart];
198  m_Part_charge = new float[m_maxPart];
199  m_Part_pdg_id = new int[m_maxPart];
200  m_Part_passed = new int[m_maxPart];
201  m_Part_vProdNin = new int[m_maxPart];
202  m_Part_vProdNout = new int[m_maxPart];
203  m_Part_vProdStatus = new int[m_maxPart];
204  m_Part_vProdBarcode = new int[m_maxPart];
205  m_Part_vParentID = new std::vector<std::vector<int>>;
206  m_Part_vParentBarcode = new std::vector<std::vector<int>>;
207 
208  m_SPindex = new int[m_maxSP];
209  m_SPx = new double[m_maxSP];
210  m_SPy = new double[m_maxSP];
211  m_SPz = new double[m_maxSP];
212  m_SPCL1_index = new int[m_maxSP];
213  m_SPCL2_index = new int[m_maxSP];
214  m_SPisOverlap = new int[m_maxSP];
215 
216  m_SPradius = new double[m_maxSP];
217  m_SPcovr = new double[m_maxSP];
218  m_SPcovz = new double[m_maxSP];
219  m_SPhl_topstrip = new float[m_maxSP];
220  m_SPhl_botstrip = new float[m_maxSP];
221  m_SPtopStripDirection = new std::vector<std::vector<float>>;
222  m_SPbottomStripDirection = new std::vector<std::vector<float>>;
223  m_SPstripCenterDistance = new std::vector<std::vector<float>>;
224  m_SPtopStripCenterPosition = new std::vector<std::vector<float>>;
225 
226  m_TRKindex = new int[m_maxTRK];
227  m_TRKtrack_fitter = new int[m_maxTRK];
229  m_TRKproperties = new std::vector<std::vector<int>>;
230  m_TRKpattern = new std::vector<std::vector<int>>;
231  m_TRKndof = new int[m_maxTRK];
232  m_TRKmot = new int[m_maxTRK];
233  m_TRKoot = new int[m_maxTRK];
234  m_TRKchiSq = new float[m_maxTRK];
235  m_TRKmeasurementsOnTrack_pixcl_sctcl_index = new std::vector<std::vector<int>>;
236  m_TRKoutliersOnTrack_pixcl_sctcl_index = new std::vector<std::vector<int>>;
237  m_TRKcharge = new int[m_maxTRK];
238  m_TRKperigee_position = new std::vector<std::vector<double>>;
239  m_TRKperigee_momentum = new std::vector<std::vector<double>>;
240  m_TTCindex = new int[m_maxTRK];
241  m_TTCevent_index = new int[m_maxTRK];
242  m_TTCparticle_link = new int[m_maxTRK];
243  m_TTCprobability = new float[m_maxTRK];
244 
245  m_DTTindex = new int[m_maxDTT];
246  m_DTTsize = new int[m_maxDTT];
247  m_DTTtrajectory_eventindex = new std::vector<std::vector<int>>;
248  m_DTTtrajectory_barcode = new std::vector<std::vector<int>>;
249  m_DTTstTruth_subDetType = new std::vector<std::vector<int>>;
250  m_DTTstTrack_subDetType = new std::vector<std::vector<int>>;
251  m_DTTstCommon_subDetType = new std::vector<std::vector<int>>;
252 
253  m_nt->Branch("run_number", &m_run_number, "run_number/i");
254  m_nt->Branch("event_number", &m_event_number, "event_number/l");
255 
256  m_nt->Branch("nSE", &m_nSE, "nSE/I");
257  m_nt->Branch("SEID", m_SEID, "SEID[nSE]/I");
258 
259  m_nt->Branch("nCL", &m_nCL, "nCL/I");
260  m_nt->Branch("CLindex", m_CLindex, "CLindex[nCL]/I");
261  m_nt->Branch("CLhardware", &m_CLhardware);
262  m_nt->Branch("CLx", m_CLx, "CLx[nCL]/D");
263  m_nt->Branch("CLy", m_CLy, "CLy[nCL]/D");
264  m_nt->Branch("CLz", m_CLz, "CLz[nCL]/D");
265  m_nt->Branch("CLbarrel_endcap", m_CLbarrel_endcap, "CLbarrel_endcap[nCL]/I");
266  m_nt->Branch("CLlayer_disk", m_CLlayer_disk, "CLlayer_disk[nCL]/I");
267  m_nt->Branch("CLeta_module", m_CLeta_module, "CLeta_module[nCL]/I");
268  m_nt->Branch("CLphi_module", m_CLphi_module, "CLphi_module[nCL]/I");
269  m_nt->Branch("CLside", m_CLside, "CLside[nCL]/I");
270  m_nt->Branch("CLmoduleID", m_CLmoduleID, "CLmoduleID[nCL]/l");
271  m_nt->Branch("CLparticleLink_eventIndex", &m_CLparticleLink_eventIndex);
272  m_nt->Branch("CLparticleLink_barcode", &m_CLparticleLink_barcode);
273  m_nt->Branch("CLbarcodesLinked", &m_CLbarcodesLinked);
274  m_nt->Branch("CLparticle_charge", &m_CLparticle_charge);
275  m_nt->Branch("CLphis", &m_CLphis);
276  m_nt->Branch("CLetas", &m_CLetas);
277  m_nt->Branch("CLtots", &m_CLtots);
278  m_nt->Branch("CLloc_direction1", m_CLloc_direction1, "CLloc_direction1[nCL]/D");
279  m_nt->Branch("CLloc_direction2", m_CLloc_direction2, "CLloc_direction2[nCL]/D");
280  m_nt->Branch("CLloc_direction3", m_CLloc_direction3, "CLloc_direction3[nCL]/D");
281  m_nt->Branch("CLJan_loc_direction1", m_CLJan_loc_direction1, "CLJan_loc_direction1[nCL]/D");
282  m_nt->Branch("CLJan_loc_direction2", m_CLJan_loc_direction2, "CLJan_loc_direction2[nCL]/D");
283  m_nt->Branch("CLJan_loc_direction3", m_CLJan_loc_direction3, "CLJan_loc_direction3[nCL]/D");
284  m_nt->Branch("CLpixel_count", m_CLpixel_count, "CLpixel_count[nCL]/I");
285  m_nt->Branch("CLcharge_count", m_CLcharge_count, "CLcharge_count[nCL]/F");
286  m_nt->Branch("CLloc_eta", m_CLloc_eta, "CLloc_eta[nCL]/F");
287  m_nt->Branch("CLloc_phi", m_CLloc_phi, "CLloc_phi[nCL]/F");
288  m_nt->Branch("CLglob_eta", m_CLglob_eta, "CLglob_eta[nCL]/F");
289  m_nt->Branch("CLglob_phi", m_CLglob_phi, "CLglob_phi[nCL]/F");
290  m_nt->Branch("CLeta_angle", m_CLeta_angle, "CLeta_angle[nCL]/D");
291  m_nt->Branch("CLphi_angle", m_CLphi_angle, "CLphi_angle[nCL]/D");
292  m_nt->Branch("CLnorm_x", m_CLnorm_x, "CLnorm_x[nCL]/F");
293  m_nt->Branch("CLnorm_y", m_CLnorm_y, "CLnorm_y[nCL]/F");
294  m_nt->Branch("CLnorm_z", m_CLnorm_z, "CLnorm_z[nCL]/F");
295  m_nt->Branch("CLlocal_cov", &m_CLlocal_cov);
296 
297  m_nt->Branch("nPartEVT", &m_nPartEVT, "nPartEVT/I");
298  m_nt->Branch("Part_event_number", m_Part_event_number, "Part_event_number[nPartEVT]/I");
299  m_nt->Branch("Part_barcode", m_Part_barcode, "Part_barcode[nPartEVT]/I");
300  m_nt->Branch("Part_px", m_Part_px, "Part_px[nPartEVT]/F");
301  m_nt->Branch("Part_py", m_Part_py, "Part_py[nPartEVT]/F");
302  m_nt->Branch("Part_pz", m_Part_pz, "Part_pz[nPartEVT]/F");
303  m_nt->Branch("Part_pt", m_Part_pt, "Part_pt[nPartEVT]/F");
304  m_nt->Branch("Part_eta", m_Part_eta, "Part_eta[nPartEVT]/F");
305  m_nt->Branch("Part_vx", m_Part_vx, "Part_vx[nPartEVT]/F");
306  m_nt->Branch("Part_vy", m_Part_vy, "Part_vy[nPartEVT]/F");
307  m_nt->Branch("Part_vz", m_Part_vz, "Part_vz[nPartEVT]/F");
308  m_nt->Branch("Part_radius", m_Part_radius, "Part_radius[nPartEVT]/F");
309  m_nt->Branch("Part_status", m_Part_status, "Part_status[nPartEVT]/F");
310  m_nt->Branch("Part_charge", m_Part_charge, "Part_charge[nPartEVT]/F");
311  m_nt->Branch("Part_pdg_id", m_Part_pdg_id, "Part_pdg_id[nPartEVT]/I");
312  m_nt->Branch("Part_passed", m_Part_passed, "Part_passed[nPartEVT]/I");
313  m_nt->Branch("Part_vProdNin", m_Part_vProdNin, "Part_vProdNin[nPartEVT]/I");
314  m_nt->Branch("Part_vProdNout", m_Part_vProdNout, "Part_vProdNout[nPartEVT]/I");
315  m_nt->Branch("Part_vProdStatus", m_Part_vProdStatus, "Part_vProdStatus[nPartEVT]/I");
316  m_nt->Branch("Part_vProdBarcode", m_Part_vProdBarcode, "Part_vProdBarcode[nPartEVT]/I");
317  m_nt->Branch("Part_vParentID", &m_Part_vParentID);
318  m_nt->Branch("Part_vParentBarcode", &m_Part_vParentBarcode);
319 
320  m_nt->Branch("nSP", &m_nSP, "nSP/I");
321  m_nt->Branch("SPindex", m_SPindex, "SPindex[nSP]/I");
322  m_nt->Branch("SPx", m_SPx, "SPx[nSP]/D");
323  m_nt->Branch("SPy", m_SPy, "SPy[nSP]/D");
324  m_nt->Branch("SPz", m_SPz, "SPz[nSP]/D");
325  m_nt->Branch("SPCL1_index", m_SPCL1_index, "SPCL1_index[nSP]/I");
326  m_nt->Branch("SPCL2_index", m_SPCL2_index, "SPCL2_index[nSP]/I");
327  m_nt->Branch("SPisOverlap", m_SPisOverlap, "SPisOverlap[nSP]/I");
328  m_nt->Branch("SPradius",m_SPradius, "SPradius[nSP]/D");
329  m_nt->Branch("SPcovr",m_SPcovr, "SPradius[nSP]/D");
330  m_nt->Branch("SPcovz",m_SPcovz, "SPradius[nSP]/D");
331  m_nt->Branch("SPhl_topstrip",m_SPhl_topstrip, "SPhl_topstrip[nSP]/F");
332  m_nt->Branch("SPhl_botstrip",m_SPhl_botstrip, "SPhl_botstrip[nSP]/F");
333  m_nt->Branch("SPtopStripDirection",&m_SPtopStripDirection);
334  m_nt->Branch("SPbottomStripDirection",&m_SPbottomStripDirection);
335  m_nt->Branch("SPstripCenterDistance",&m_SPstripCenterDistance);
336  m_nt->Branch("SPtopStripCenterPosition",m_SPtopStripCenterPosition);
337 
338  m_nt->Branch("nTRK", &m_nTRK, "nTRK/I");
339  m_nt->Branch("TRKindex", m_TRKindex, "TRKindex[nTRK]/I");
340  m_nt->Branch("TRKtrack_fitter", m_TRKtrack_fitter, "TRKtrack_fitter[nTRK]/I");
341  m_nt->Branch("TRKparticle_hypothesis", m_TRKparticle_hypothesis, "TRKparticle_hypothesis[nTRK]/I");
342  m_nt->Branch("TRKproperties", &m_TRKproperties);
343  m_nt->Branch("TRKpattern", &m_TRKpattern);
344  m_nt->Branch("TRKndof", m_TRKndof, "TRKndof[nTRK]/I");
345  m_nt->Branch("TRKmot", m_TRKmot, "TRKmot[nTRK]/I");
346  m_nt->Branch("TRKoot", m_TRKoot, "TRKoot[nTRK]/I");
347  m_nt->Branch("TRKchiSq", m_TRKchiSq, "TRKchiSq[nTRK]/F");
348  m_nt->Branch("TRKmeasurementsOnTrack_pixcl_sctcl_index", &m_TRKmeasurementsOnTrack_pixcl_sctcl_index);
349  m_nt->Branch("TRKoutliersOnTrack_pixcl_sctcl_index", &m_TRKoutliersOnTrack_pixcl_sctcl_index);
350  m_nt->Branch("TRKcharge", m_TRKcharge, "TRKcharge[nTRK]/I");
351  m_nt->Branch("TRKperigee_position", &m_TRKperigee_position);
352  m_nt->Branch("TRKperigee_momentum", &m_TRKperigee_momentum);
353  m_nt->Branch("TTCindex", m_TTCindex, "TTCindex[nTRK]/I");
354  m_nt->Branch("TTCevent_index", m_TTCevent_index, "TTCevent_index[nTRK]/I");
355  m_nt->Branch("TTCparticle_link", m_TTCparticle_link, "TTCparticle_link[nTRK]/I");
356  m_nt->Branch("TTCprobability", m_TTCprobability, "TTCprobability[nTRK]/F");
357 
358  m_nt->Branch("nDTT", &m_nDTT, "nDTT/I");
359  m_nt->Branch("DTTindex", m_DTTindex, "DTTindex[nDTT]/I");
360  m_nt->Branch("DTTsize", m_DTTsize, "DTTsize[nDTT]/I");
361  m_nt->Branch("DTTtrajectory_eventindex", &m_DTTtrajectory_eventindex);
362  m_nt->Branch("DTTtrajectory_barcode", &m_DTTtrajectory_barcode);
363  m_nt->Branch("DTTstTruth_subDetType", &m_DTTstTruth_subDetType);
364  m_nt->Branch("DTTstTrack_subDetType", &m_DTTstTrack_subDetType);
365  m_nt->Branch("DTTstCommon_subDetType", &m_DTTstCommon_subDetType);
366  }
367 
368  return StatusCode::SUCCESS;
369 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< 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.

◆ isPassed()

bool InDet::DumpObjects::isPassed ( HepMC::ConstGenParticlePtr  particle,
float &  px,
float &  py,
float &  pz,
float &  pt,
float &  eta,
float &  vx,
float &  vy,
float &  vz,
float &  radius,
float &  status,
float &  charge,
std::vector< int > &  vParentID,
std::vector< int > &  vParentBarcode,
int &  vProdNin,
int &  vProdNout,
int &  vProdStatus,
int &  vProdBarcode 
)
private

Definition at line 1472 of file DumpObjects.cxx.

1475  {
1476  //--------------------------------------------------------------------------------------------
1477 
1478  px = particle->momentum().px();
1479  py = particle->momentum().py();
1480  pz = particle->momentum().pz();
1481 
1482  pt = std::sqrt(px * px + py * py);
1483  eta = particle->momentum().eta();
1484 
1485  int pdgCode = particle->pdg_id();
1486 
1487  int absPdgCode = std::abs(pdgCode);
1488  // get the charge: ap->charge() is used later, DOES NOT WORK RIGHT NOW
1489  const HepPDT::ParticleData *ap = m_particleDataTable->particle(absPdgCode);
1490  charge = 1.;
1491  if (ap)
1492  charge = ap->charge();
1493  // since the PDT table only has abs(PID) values for the charge
1494  charge *= (pdgCode > 0.) ? 1. : -1.;
1495 
1496  status = particle->status();
1497 
1498  if (particle->production_vertex()) {
1499  vx = particle->production_vertex()->position().x();
1500  vy = particle->production_vertex()->position().y();
1501  vz = particle->production_vertex()->position().z();
1502  radius = particle->production_vertex()->position().perp();
1503  } else {
1504  vx = vy = vz = -1;
1505  radius = 999;
1506  if (status == 1)
1507  ATH_MSG_WARNING("no vertex for particle with status 1");
1508  }
1509 
1510  if (particle->production_vertex()) {
1511  vProdNin = particle->production_vertex()->particles_in_size();
1512  vProdNout = particle->production_vertex()->particles_out_size();
1513  vProdStatus = particle->production_vertex()->id();
1514  vProdBarcode = HepMC::barcode(particle->production_vertex()); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1515 #ifdef HEPMC3
1516  for (const auto &p : particle->production_vertex()->particles_in()) {
1517  vParentID.push_back(p->pdg_id());
1518  vParentBarcode.push_back(HepMC::barcode(p)); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1519  }
1520 #else
1521  for (auto ip = particle->production_vertex()->particles_in_const_begin();
1522  ip != particle->production_vertex()->particles_in_const_end();
1523  ++ip)
1524  {
1525  vParentID.push_back((*ip)->pdg_id());
1526  vParentBarcode.push_back(HepMC::barcode(*ip)); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1527  }
1528 #endif
1529  } else {
1530  vProdNin = 0;
1531  vProdNout = 0;
1532  vProdStatus = -999;
1533  vProdBarcode = 999;
1534  }
1535 
1536  bool passEta = (pt > 0.1) ? (std::abs(eta) < m_max_eta) : false;
1537  if (not passEta)
1538  return false;
1539 
1540  bool passPt = (pt > m_min_pt);
1541  if (not passPt)
1542  return false;
1543 
1544  bool passBarcode = (HepMC::barcode(particle) < m_max_barcode); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1545  if (not passBarcode)
1546  return false;
1547 
1548  bool passCharge = not(charge == 0.);
1549  if (not passCharge)
1550  return false;
1551 
1552  bool passStatus = (status == 1);
1553  if (not passStatus)
1554  return false;
1555 
1556  bool passProdRadius = (radius < m_maxProdVertex);
1557  if (not passProdRadius)
1558  return false;
1559 
1560  return true;
1561 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< 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< 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< 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< 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< 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  }

◆ sysInitialize()

StatusCode AthAlgorithm::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< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< 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< 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_CLbarcodesLinked

std::vector<std::vector<bool> >* InDet::DumpObjects::m_CLbarcodesLinked {}
private

Definition at line 140 of file DumpObjects.h.

◆ m_CLbarrel_endcap

int* InDet::DumpObjects::m_CLbarrel_endcap {}
private

Definition at line 132 of file DumpObjects.h.

◆ m_CLcharge_count

float* InDet::DumpObjects::m_CLcharge_count {}
private

Definition at line 146 of file DumpObjects.h.

◆ m_CLeta_angle

double* InDet::DumpObjects::m_CLeta_angle {}
private

Definition at line 149 of file DumpObjects.h.

◆ m_CLeta_module

int* InDet::DumpObjects::m_CLeta_module {}
private

Definition at line 134 of file DumpObjects.h.

◆ m_CLetas

std::vector<std::vector<int> > * InDet::DumpObjects::m_CLetas {}
private

Definition at line 142 of file DumpObjects.h.

◆ m_CLglob_eta

float* InDet::DumpObjects::m_CLglob_eta {}
private

Definition at line 148 of file DumpObjects.h.

◆ m_CLglob_phi

float * InDet::DumpObjects::m_CLglob_phi {}
private

Definition at line 148 of file DumpObjects.h.

◆ m_CLhardware

std::vector<std::string>* InDet::DumpObjects::m_CLhardware {}
private

Definition at line 128 of file DumpObjects.h.

◆ m_CLindex

int* InDet::DumpObjects::m_CLindex {}
private

Definition at line 127 of file DumpObjects.h.

◆ m_CLJan_loc_direction1

double* InDet::DumpObjects::m_CLJan_loc_direction1 {}
private

Definition at line 144 of file DumpObjects.h.

◆ m_CLJan_loc_direction2

double * InDet::DumpObjects::m_CLJan_loc_direction2 {}
private

Definition at line 144 of file DumpObjects.h.

◆ m_CLJan_loc_direction3

double * InDet::DumpObjects::m_CLJan_loc_direction3 {}
private

Definition at line 144 of file DumpObjects.h.

◆ m_CLlayer_disk

int* InDet::DumpObjects::m_CLlayer_disk {}
private

Definition at line 133 of file DumpObjects.h.

◆ m_CLloc_direction1

double* InDet::DumpObjects::m_CLloc_direction1 {}
private

Definition at line 143 of file DumpObjects.h.

◆ m_CLloc_direction2

double * InDet::DumpObjects::m_CLloc_direction2 {}
private

Definition at line 143 of file DumpObjects.h.

◆ m_CLloc_direction3

double * InDet::DumpObjects::m_CLloc_direction3 {}
private

Definition at line 143 of file DumpObjects.h.

◆ m_CLloc_eta

float* InDet::DumpObjects::m_CLloc_eta {}
private

Definition at line 147 of file DumpObjects.h.

◆ m_CLloc_phi

float * InDet::DumpObjects::m_CLloc_phi {}
private

Definition at line 147 of file DumpObjects.h.

◆ m_CLlocal_cov

std::vector<std::vector<double> >* InDet::DumpObjects::m_CLlocal_cov {}
private

Definition at line 151 of file DumpObjects.h.

◆ m_CLmoduleID

uint64_t* InDet::DumpObjects::m_CLmoduleID {}
private

Definition at line 137 of file DumpObjects.h.

◆ m_CLnorm_x

float* InDet::DumpObjects::m_CLnorm_x {}
private

Definition at line 150 of file DumpObjects.h.

◆ m_CLnorm_y

float * InDet::DumpObjects::m_CLnorm_y {}
private

Definition at line 150 of file DumpObjects.h.

◆ m_CLnorm_z

float * InDet::DumpObjects::m_CLnorm_z {}
private

Definition at line 150 of file DumpObjects.h.

◆ m_CLparticle_charge

std::vector<std::vector<float> >* InDet::DumpObjects::m_CLparticle_charge {}
private

Definition at line 141 of file DumpObjects.h.

◆ m_CLparticleLink_barcode

std::vector<std::vector<int> >* InDet::DumpObjects::m_CLparticleLink_barcode {}
private

Definition at line 139 of file DumpObjects.h.

◆ m_CLparticleLink_eventIndex

std::vector<std::vector<int> >* InDet::DumpObjects::m_CLparticleLink_eventIndex {}
private

Definition at line 138 of file DumpObjects.h.

◆ m_CLphi_angle

double * InDet::DumpObjects::m_CLphi_angle {}
private

Definition at line 149 of file DumpObjects.h.

◆ m_CLphi_module

int* InDet::DumpObjects::m_CLphi_module {}
private

Definition at line 135 of file DumpObjects.h.

◆ m_CLphis

std::vector<std::vector<int> >* InDet::DumpObjects::m_CLphis {}
private

Definition at line 142 of file DumpObjects.h.

◆ m_CLpixel_count

int* InDet::DumpObjects::m_CLpixel_count {}
private

Definition at line 145 of file DumpObjects.h.

◆ m_CLside

int* InDet::DumpObjects::m_CLside {}
private

Definition at line 136 of file DumpObjects.h.

◆ m_CLtots

std::vector<std::vector<int> > * InDet::DumpObjects::m_CLtots {}
private

Definition at line 142 of file DumpObjects.h.

◆ m_CLx

double* InDet::DumpObjects::m_CLx {}
private

Definition at line 129 of file DumpObjects.h.

◆ m_CLy

double* InDet::DumpObjects::m_CLy {}
private

Definition at line 130 of file DumpObjects.h.

◆ m_CLz

double* InDet::DumpObjects::m_CLz {}
private

Definition at line 131 of file DumpObjects.h.

◆ m_detailedTracksTruthKey

SG::ReadHandleKey<DetailedTrackTruthCollection> InDet::DumpObjects::m_detailedTracksTruthKey
private
Initial value:
{this, "DetailedTracksTruthKey",
"CombinedITkTracksDetailedTruth"}

Definition at line 96 of file DumpObjects.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DTTindex

int* InDet::DumpObjects::m_DTTindex {}
private

Definition at line 200 of file DumpObjects.h.

◆ m_DTTsize

int * InDet::DumpObjects::m_DTTsize {}
private

Definition at line 200 of file DumpObjects.h.

◆ m_DTTstCommon_subDetType

std::vector<std::vector<int> > * InDet::DumpObjects::m_DTTstCommon_subDetType {}
private

Definition at line 202 of file DumpObjects.h.

◆ m_DTTstTrack_subDetType

std::vector<std::vector<int> > * InDet::DumpObjects::m_DTTstTrack_subDetType {}
private

Definition at line 202 of file DumpObjects.h.

◆ m_DTTstTruth_subDetType

std::vector<std::vector<int> > * InDet::DumpObjects::m_DTTstTruth_subDetType {}
private

Definition at line 201 of file DumpObjects.h.

◆ m_DTTtrajectory_barcode

std::vector<std::vector<int> > * InDet::DumpObjects::m_DTTtrajectory_barcode {}
private

Definition at line 201 of file DumpObjects.h.

◆ m_DTTtrajectory_eventindex

std::vector<std::vector<int> >* InDet::DumpObjects::m_DTTtrajectory_eventindex {}
private

Definition at line 201 of file DumpObjects.h.

◆ m_event

int InDet::DumpObjects::m_event {}
private

Definition at line 72 of file DumpObjects.h.

◆ m_event_number

unsigned long long InDet::DumpObjects::m_event_number {}
private

Definition at line 121 of file DumpObjects.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> InDet::DumpObjects::m_eventInfoKey {this, "EventInfoKey", "EventInfo"}
private

Definition at line 79 of file DumpObjects.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_max_barcode

int InDet::DumpObjects::m_max_barcode = 200e3
private

Definition at line 104 of file DumpObjects.h.

◆ m_max_eta

float InDet::DumpObjects::m_max_eta = 4.0
private

Definition at line 102 of file DumpObjects.h.

◆ m_maxCL

int InDet::DumpObjects::m_maxCL {}
private

jobOption: maximum number of clusters

Definition at line 112 of file DumpObjects.h.

◆ m_maxDTT

int InDet::DumpObjects::m_maxDTT {}
private

Definition at line 116 of file DumpObjects.h.

◆ m_maxPart

int InDet::DumpObjects::m_maxPart {}
private

jobOption: maximum number of particles

Definition at line 113 of file DumpObjects.h.

◆ m_maxProdVertex

float InDet::DumpObjects::m_maxProdVertex = 260.
private

Definition at line 105 of file DumpObjects.h.

◆ m_maxSP

int InDet::DumpObjects::m_maxSP {}
private

jobOption: maximum number of space points

Definition at line 114 of file DumpObjects.h.

◆ m_maxTRK

int InDet::DumpObjects::m_maxTRK {}
private

Definition at line 115 of file DumpObjects.h.

◆ m_mcEventCollectionKey

SG::ReadHandleKey<McEventCollection> InDet::DumpObjects::m_mcEventCollectionKey {this, "TruthEventKey", "TruthEvent"}
private

Definition at line 80 of file DumpObjects.h.

◆ m_min_pt

float InDet::DumpObjects::m_min_pt = 1000.
private

Definition at line 103 of file DumpObjects.h.

◆ m_name

std::string InDet::DumpObjects::m_name
private

Definition at line 76 of file DumpObjects.h.

◆ m_nCL

int InDet::DumpObjects::m_nCL {}
private

Definition at line 126 of file DumpObjects.h.

◆ m_nDTT

int InDet::DumpObjects::m_nDTT {}
private

Definition at line 199 of file DumpObjects.h.

◆ m_nPartEVT

int InDet::DumpObjects::m_nPartEVT {}
private

Definition at line 153 of file DumpObjects.h.

◆ m_nSE

int InDet::DumpObjects::m_nSE {}
private

Definition at line 123 of file DumpObjects.h.

◆ m_nSP

int InDet::DumpObjects::m_nSP {}
private

Definition at line 168 of file DumpObjects.h.

◆ m_nt

TTree* InDet::DumpObjects::m_nt {}
private

Definition at line 118 of file DumpObjects.h.

◆ m_nTRK

int InDet::DumpObjects::m_nTRK {}
private

Definition at line 187 of file DumpObjects.h.

◆ m_ntupleDirName

std::string InDet::DumpObjects::m_ntupleDirName
private

jobOption: Ntuple directory name

Definition at line 110 of file DumpObjects.h.

◆ m_ntupleFileName

std::string InDet::DumpObjects::m_ntupleFileName
private

jobOption: Ntuple file name

Definition at line 109 of file DumpObjects.h.

◆ m_ntupleTreeName

std::string InDet::DumpObjects::m_ntupleTreeName
private

jobOption: Ntuple tree name

Definition at line 111 of file DumpObjects.h.

◆ m_offset

int InDet::DumpObjects::m_offset {}
private

Definition at line 99 of file DumpObjects.h.

◆ m_Part_barcode

int* InDet::DumpObjects::m_Part_barcode {}
private

Definition at line 155 of file DumpObjects.h.

◆ m_Part_charge

float* InDet::DumpObjects::m_Part_charge {}
private

Definition at line 162 of file DumpObjects.h.

◆ m_Part_eta

float* InDet::DumpObjects::m_Part_eta {}
private

Definition at line 158 of file DumpObjects.h.

◆ m_Part_event_number

int* InDet::DumpObjects::m_Part_event_number {}
private

Definition at line 154 of file DumpObjects.h.

◆ m_Part_passed

int* InDet::DumpObjects::m_Part_passed {}
private

Definition at line 164 of file DumpObjects.h.

◆ m_Part_pdg_id

int* InDet::DumpObjects::m_Part_pdg_id {}
private

Definition at line 163 of file DumpObjects.h.

◆ m_Part_pt

float* InDet::DumpObjects::m_Part_pt {}
private

Definition at line 157 of file DumpObjects.h.

◆ m_Part_px

float* InDet::DumpObjects::m_Part_px {}
private

Definition at line 156 of file DumpObjects.h.

◆ m_Part_py

float * InDet::DumpObjects::m_Part_py {}
private

Definition at line 156 of file DumpObjects.h.

◆ m_Part_pz

float * InDet::DumpObjects::m_Part_pz {}
private

Definition at line 156 of file DumpObjects.h.

◆ m_Part_radius

float* InDet::DumpObjects::m_Part_radius {}
private

Definition at line 160 of file DumpObjects.h.

◆ m_Part_status

float* InDet::DumpObjects::m_Part_status {}
private

Definition at line 161 of file DumpObjects.h.

◆ m_Part_vParentBarcode

std::vector<std::vector<int> > * InDet::DumpObjects::m_Part_vParentBarcode {}
private

Definition at line 166 of file DumpObjects.h.

◆ m_Part_vParentID

std::vector<std::vector<int> >* InDet::DumpObjects::m_Part_vParentID {}
private

Definition at line 166 of file DumpObjects.h.

◆ m_Part_vProdBarcode

int * InDet::DumpObjects::m_Part_vProdBarcode {}
private

Definition at line 165 of file DumpObjects.h.

◆ m_Part_vProdNin

int* InDet::DumpObjects::m_Part_vProdNin {}
private

Definition at line 165 of file DumpObjects.h.

◆ m_Part_vProdNout

int * InDet::DumpObjects::m_Part_vProdNout {}
private

Definition at line 165 of file DumpObjects.h.

◆ m_Part_vProdStatus

int * InDet::DumpObjects::m_Part_vProdStatus {}
private

Definition at line 165 of file DumpObjects.h.

◆ m_Part_vx

float* InDet::DumpObjects::m_Part_vx {}
private

Definition at line 159 of file DumpObjects.h.

◆ m_Part_vy

float * InDet::DumpObjects::m_Part_vy {}
private

Definition at line 159 of file DumpObjects.h.

◆ m_Part_vz

float * InDet::DumpObjects::m_Part_vz {}
private

Definition at line 159 of file DumpObjects.h.

◆ m_particleDataTable

const HepPDT::ParticleDataTable* InDet::DumpObjects::m_particleDataTable {}
private

Definition at line 75 of file DumpObjects.h.

◆ m_particlePropSvc

ServiceHandle<IPartPropSvc> InDet::DumpObjects::m_particlePropSvc
private

Definition at line 74 of file DumpObjects.h.

◆ m_pixelClusterKey

SG::ReadHandleKey<InDet::PixelClusterContainer> InDet::DumpObjects::m_pixelClusterKey {this, "PixelClusterKey", "ITkPixelClusters"}
private

Definition at line 82 of file DumpObjects.h.

◆ m_pixelID

const PixelID* InDet::DumpObjects::m_pixelID {}
private

Definition at line 68 of file DumpObjects.h.

◆ m_pixelManager

const InDetDD::PixelDetectorManager* InDet::DumpObjects::m_pixelManager {}
private

Definition at line 70 of file DumpObjects.h.

◆ m_pixelSDOKey

SG::ReadHandleKey<InDetSimDataCollection> InDet::DumpObjects::m_pixelSDOKey {this, "PixelSDOKey", "ITkPixelSDO_Map"}
private

Definition at line 85 of file DumpObjects.h.

◆ m_rootFile

bool InDet::DumpObjects::m_rootFile {}
private

jobOption: save data in root format

Definition at line 117 of file DumpObjects.h.

◆ m_run_number

unsigned int InDet::DumpObjects::m_run_number {}
private

Definition at line 120 of file DumpObjects.h.

◆ m_SCT_ID

const SCT_ID* InDet::DumpObjects::m_SCT_ID {}
private

Definition at line 69 of file DumpObjects.h.

◆ m_SCT_Manager

const InDetDD::SCT_DetectorManager* InDet::DumpObjects::m_SCT_Manager {}
private

Definition at line 71 of file DumpObjects.h.

◆ m_SEID

int* InDet::DumpObjects::m_SEID {}
private

Definition at line 124 of file DumpObjects.h.

◆ m_selected

int InDet::DumpObjects::m_selected {}
private

Definition at line 73 of file DumpObjects.h.

◆ m_SPbottomStripDirection

std::vector<std::vector<float> >* InDet::DumpObjects::m_SPbottomStripDirection {}
private

Definition at line 183 of file DumpObjects.h.

◆ m_SPCL1_index

int* InDet::DumpObjects::m_SPCL1_index {}
private

Definition at line 171 of file DumpObjects.h.

◆ m_SPCL2_index

int * InDet::DumpObjects::m_SPCL2_index {}
private

Definition at line 171 of file DumpObjects.h.

◆ m_SPcovr

double* InDet::DumpObjects::m_SPcovr {}
private

Definition at line 175 of file DumpObjects.h.

◆ m_SPcovz

double* InDet::DumpObjects::m_SPcovz {}
private

Definition at line 176 of file DumpObjects.h.

◆ m_SPhl_botstrip

float* InDet::DumpObjects::m_SPhl_botstrip {}
private

Definition at line 180 of file DumpObjects.h.

◆ m_SPhl_topstrip

float* InDet::DumpObjects::m_SPhl_topstrip {}
private

Definition at line 178 of file DumpObjects.h.

◆ m_SPindex

int* InDet::DumpObjects::m_SPindex {}
private

Definition at line 169 of file DumpObjects.h.

◆ m_SPisOverlap

int* InDet::DumpObjects::m_SPisOverlap {}
private

Definition at line 172 of file DumpObjects.h.

◆ m_SPradius

double* InDet::DumpObjects::m_SPradius {}
private

Definition at line 174 of file DumpObjects.h.

◆ m_SPstripCenterDistance

std::vector<std::vector<float> >* InDet::DumpObjects::m_SPstripCenterDistance {}
private

Definition at line 184 of file DumpObjects.h.

◆ m_SPtopStripCenterPosition

std::vector<std::vector<float> >* InDet::DumpObjects::m_SPtopStripCenterPosition {}
private

Definition at line 185 of file DumpObjects.h.

◆ m_SPtopStripDirection

std::vector<std::vector<float> >* InDet::DumpObjects::m_SPtopStripDirection {}
private

Definition at line 182 of file DumpObjects.h.

◆ m_SPx

double* InDet::DumpObjects::m_SPx {}
private

Definition at line 170 of file DumpObjects.h.

◆ m_SPy

double * InDet::DumpObjects::m_SPy {}
private

Definition at line 170 of file DumpObjects.h.

◆ m_SPz

double * InDet::DumpObjects::m_SPz {}
private

Definition at line 170 of file DumpObjects.h.

◆ m_stripClusterKey

SG::ReadHandleKey<InDet::SCT_ClusterContainer> InDet::DumpObjects::m_stripClusterKey {this, "StripClusterKey", "ITkStripClusters"}
private

Definition at line 83 of file DumpObjects.h.

◆ m_stripSDOKey

SG::ReadHandleKey<InDetSimDataCollection> InDet::DumpObjects::m_stripSDOKey {this, "StripSDOKey", "ITkStripSDO_Map"}
private

Definition at line 86 of file DumpObjects.h.

◆ m_tracksKey

SG::ReadHandleKey<TrackCollection> InDet::DumpObjects::m_tracksKey {this, "TracksKey", "CombinedITkTracks"}
private

Definition at line 94 of file DumpObjects.h.

◆ m_tracksTruthKey

SG::ReadHandleKey<TrackTruthCollection> InDet::DumpObjects::m_tracksTruthKey {this, "TracksTruthKey", "CombinedITkTracksTruthCollection"}
private

Definition at line 95 of file DumpObjects.h.

◆ m_TRKcharge

int* InDet::DumpObjects::m_TRKcharge {}
private

Definition at line 194 of file DumpObjects.h.

◆ m_TRKchiSq

float* InDet::DumpObjects::m_TRKchiSq {}
private

Definition at line 192 of file DumpObjects.h.

◆ m_TRKindex

int* InDet::DumpObjects::m_TRKindex {}
private

Definition at line 188 of file DumpObjects.h.

◆ m_TRKmeasurementsOnTrack_pixcl_sctcl_index

std::vector<std::vector<int> >* InDet::DumpObjects::m_TRKmeasurementsOnTrack_pixcl_sctcl_index {}
private

Definition at line 193 of file DumpObjects.h.

◆ m_TRKmot

int * InDet::DumpObjects::m_TRKmot {}
private

Definition at line 191 of file DumpObjects.h.

◆ m_TRKndof

int* InDet::DumpObjects::m_TRKndof {}
private

Definition at line 191 of file DumpObjects.h.

◆ m_TRKoot

int * InDet::DumpObjects::m_TRKoot {}
private

Definition at line 191 of file DumpObjects.h.

◆ m_TRKoutliersOnTrack_pixcl_sctcl_index

std::vector<std::vector<int> > * InDet::DumpObjects::m_TRKoutliersOnTrack_pixcl_sctcl_index {}
private

Definition at line 193 of file DumpObjects.h.

◆ m_TRKparticle_hypothesis

int * InDet::DumpObjects::m_TRKparticle_hypothesis {}
private

Definition at line 189 of file DumpObjects.h.

◆ m_TRKpattern

std::vector<std::vector<int> > * InDet::DumpObjects::m_TRKpattern {}
private

Definition at line 190 of file DumpObjects.h.

◆ m_TRKperigee_momentum

std::vector<std::vector<double> > * InDet::DumpObjects::m_TRKperigee_momentum {}
private

Definition at line 195 of file DumpObjects.h.

◆ m_TRKperigee_position

std::vector<std::vector<double> >* InDet::DumpObjects::m_TRKperigee_position {}
private

Definition at line 195 of file DumpObjects.h.

◆ m_TRKproperties

std::vector<std::vector<int> >* InDet::DumpObjects::m_TRKproperties {}
private

Definition at line 190 of file DumpObjects.h.

◆ m_TRKtrack_fitter

int* InDet::DumpObjects::m_TRKtrack_fitter {}
private

Definition at line 189 of file DumpObjects.h.

◆ m_TTCevent_index

int * InDet::DumpObjects::m_TTCevent_index {}
private

Definition at line 196 of file DumpObjects.h.

◆ m_TTCindex

int* InDet::DumpObjects::m_TTCindex {}
private

Definition at line 196 of file DumpObjects.h.

◆ m_TTCparticle_link

int * InDet::DumpObjects::m_TTCparticle_link {}
private

Definition at line 196 of file DumpObjects.h.

◆ m_TTCprobability

float* InDet::DumpObjects::m_TTCprobability {}
private

Definition at line 197 of file DumpObjects.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xaodPixelSpacePointContainerKey

SG::ReadHandleKey<xAOD::SpacePointContainer> InDet::DumpObjects::m_xaodPixelSpacePointContainerKey {this,"xAODInputPixelSpacePoints", "ITkPixelSpacePoints"}
private

Definition at line 88 of file DumpObjects.h.

◆ m_xaodStripSpacePointContainerKey

SG::ReadHandleKey<xAOD::SpacePointContainer> InDet::DumpObjects::m_xaodStripSpacePointContainerKey {this,"xAODInputSpacePointsContainerKey", "ITkStripSpacePoints"}
private

Definition at line 90 of file DumpObjects.h.

◆ m_xaodStripSpacePointOverlapContainerKey

SG::ReadHandleKey<xAOD::SpacePointContainer> InDet::DumpObjects::m_xaodStripSpacePointOverlapContainerKey {this,"xAODInputSpacePointsOverlapContainerKey", "ITkStripOverlapSpacePoints"}
private

Definition at line 92 of file DumpObjects.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
InDet::DumpObjects::m_nPartEVT
int m_nPartEVT
Definition: DumpObjects.h:153
InDet::DumpObjects::m_TRKperigee_momentum
std::vector< std::vector< double > > * m_TRKperigee_momentum
Definition: DumpObjects.h:195
InDet::DumpObjects::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition: DumpObjects.h:70
mergePhysValFiles.pattern
pattern
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:26
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
InDet::DumpObjects::m_CLnorm_z
float * m_CLnorm_z
Definition: DumpObjects.h:150
InDet::DumpObjects::m_CLeta_angle
double * m_CLeta_angle
Definition: DumpObjects.h:149
IDTPM::ndof
float ndof(const U &p)
Definition: TrackParametersHelper.h:134
InDet::DumpObjects::m_SPtopStripCenterPosition
std::vector< std::vector< float > > * m_SPtopStripCenterPosition
Definition: DumpObjects.h:185
test_pyathena.eta
eta
Definition: test_pyathena.py:10
SubDetHitStatistics::SubDetType
SubDetType
Definition: SubDetHitStatistics.h:74
Trk::TrackInfo
Contains information about the 'fitter' of this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:32
InDet::DumpObjects::m_CLtots
std::vector< std::vector< int > > * m_CLtots
Definition: DumpObjects.h:142
InDet::DumpObjects::m_TRKchiSq
float * m_TRKchiSq
Definition: DumpObjects.h:192
InDet::DumpObjects::m_TRKoot
int * m_TRKoot
Definition: DumpObjects.h:191
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
PixelID::phi_index
int phi_index(const Identifier &id) const
Definition: PixelID.h:658
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
InDet::DumpObjects::m_Part_vProdNin
int * m_Part_vProdNin
Definition: DumpObjects.h:165
test_pyathena.px
px
Definition: test_pyathena.py:18
InDet::DumpObjects::m_maxDTT
int m_maxDTT
Definition: DumpObjects.h:116
perigeeParameters
Definition: ExtrapolatorComparisonTest.h:43
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
python.TestDriveDummies.properties
dictionary properties
Definition: TestDriveDummies.py:14
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:48
InDet::DumpObjects::m_CLside
int * m_CLside
Definition: DumpObjects.h:136
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet::DumpObjects::m_TRKproperties
std::vector< std::vector< int > > * m_TRKproperties
Definition: DumpObjects.h:190
InDet::DumpObjects::m_CLloc_direction2
double * m_CLloc_direction2
Definition: DumpObjects.h:143
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
InDet::DumpObjects::m_nt
TTree * m_nt
Definition: DumpObjects.h:118
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle< McEventCollection >
InDet::DumpObjects::m_pixelSDOKey
SG::ReadHandleKey< InDetSimDataCollection > m_pixelSDOKey
Definition: DumpObjects.h:85
InDetDD::SCT_ModuleSideDesign
Definition: SCT_ModuleSideDesign.h:40
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDet::DumpObjects::m_CLnorm_x
float * m_CLnorm_x
Definition: DumpObjects.h:150
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
SubDetHitStatistics::NUM_SUBDETECTORS
@ NUM_SUBDETECTORS
Definition: SubDetHitStatistics.h:74
InDet::DumpObjects::m_SPradius
double * m_SPradius
Definition: DumpObjects.h:174
SubDetHitStatistics
Definition: SubDetHitStatistics.h:34
InDet::DumpObjects::m_nCL
int m_nCL
Definition: DumpObjects.h:126
InDet::DumpObjects::m_Part_eta
float * m_Part_eta
Definition: DumpObjects.h:158
InDet::DumpObjects::m_CLloc_direction1
double * m_CLloc_direction1
Definition: DumpObjects.h:143
InDetDD::SolidStateDetectorElementBase::etaAxis
const Amg::Vector3D & etaAxis() const
Definition: SolidStateDetectorElementBase.cxx:88
InDet::DumpObjects::m_Part_vz
float * m_Part_vz
Definition: DumpObjects.h:159
skel.it
it
Definition: skel.GENtoEVGEN.py:407
InDet::DumpObjects::m_Part_pt
float * m_Part_pt
Definition: DumpObjects.h:157
test_pyathena.pt
pt
Definition: test_pyathena.py:11
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
InDet::DumpObjects::m_DTTindex
int * m_DTTindex
Definition: DumpObjects.h:200
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
InDet::DumpObjects::m_xaodStripSpacePointOverlapContainerKey
SG::ReadHandleKey< xAOD::SpacePointContainer > m_xaodStripSpacePointOverlapContainerKey
Definition: DumpObjects.h:92
InDet::SCT_ClusterContainer
Trk::PrepRawDataContainer< SCT_ClusterCollection > SCT_ClusterContainer
Definition: SCT_ClusterContainer.h:27
InDet::DumpObjects::m_CLbarrel_endcap
int * m_CLbarrel_endcap
Definition: DumpObjects.h:132
InDetSimDataCollection
Definition: InDetSimDataCollection.h:25
InDet::DumpObjects::m_CLparticleLink_eventIndex
std::vector< std::vector< int > > * m_CLparticleLink_eventIndex
Definition: DumpObjects.h:138
InDet::DumpObjects::m_CLy
double * m_CLy
Definition: DumpObjects.h:130
InDet::DumpObjects::m_DTTtrajectory_eventindex
std::vector< std::vector< int > > * m_DTTtrajectory_eventindex
Definition: DumpObjects.h:201
InDet::DumpObjects::m_SCT_ID
const SCT_ID * m_SCT_ID
Definition: DumpObjects.h:69
InDet::DumpObjects::m_CLlocal_cov
std::vector< std::vector< double > > * m_CLlocal_cov
Definition: DumpObjects.h:151
InDet::SCT_ClusterOnTrack::prepRawData
virtual const InDet::SCT_Cluster * prepRawData() const override final
returns the PrepRawData - is a SCT_Cluster in this scope
Definition: SCT_ClusterOnTrack.h:145
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
InDet::DumpObjects::m_SPindex
int * m_SPindex
Definition: DumpObjects.h:169
InDet::DumpObjects::m_min_pt
float m_min_pt
Definition: DumpObjects.h:103
InDet::PixelClusterContainer
Trk::PrepRawDataContainer< PixelClusterCollection > PixelClusterContainer
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelClusterContainer.h:28
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: SCT_ID.h:740
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::DumpObjects::m_offset
int m_offset
Definition: DumpObjects.h:99
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
InDet::DumpObjects::m_SCT_Manager
const InDetDD::SCT_DetectorManager * m_SCT_Manager
Definition: DumpObjects.h:71
InDet::DumpObjects::m_CLcharge_count
float * m_CLcharge_count
Definition: DumpObjects.h:146
InDet::DumpObjects::m_SPCL1_index
int * m_SPCL1_index
Definition: DumpObjects.h:171
InDet::DumpObjects::m_Part_passed
int * m_Part_passed
Definition: DumpObjects.h:164
InDet::DumpObjects::m_CLetas
std::vector< std::vector< int > > * m_CLetas
Definition: DumpObjects.h:142
InDetDD::SCT_DetectorManager::getDetectorElement
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
Definition: SCT_DetectorManager.cxx:66
Identifier::is_valid
bool is_valid() const
Check if id is in a valid state.
InDet::DumpObjects::m_Part_vProdNout
int * m_Part_vProdNout
Definition: DumpObjects.h:165
InDetDD::SolidStateDetectorElementBase::etaPitch
double etaPitch() const
Pitch (inline methods)
python.AtlRunQueryParser.ap
ap
Definition: AtlRunQueryParser.py:826
InDet::DumpObjects::m_Part_status
float * m_Part_status
Definition: DumpObjects.h:161
InDet::DumpObjects::m_Part_event_number
int * m_Part_event_number
Definition: DumpObjects.h:154
InDet::DumpObjects::m_CLJan_loc_direction3
double * m_CLJan_loc_direction3
Definition: DumpObjects.h:144
InDet::DumpObjects::m_TTCparticle_link
int * m_TTCparticle_link
Definition: DumpObjects.h:196
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
InDet::DumpObjects::m_TTCprobability
float * m_TTCprobability
Definition: DumpObjects.h:197
InDet::DumpObjects::isPassed
bool isPassed(HepMC::ConstGenParticlePtr particle, float &px, float &py, float &pz, float &pt, float &eta, float &vx, float &vy, float &vz, float &radius, float &status, float &charge, std::vector< int > &vParentID, std::vector< int > &vParentBarcode, int &vProdNin, int &vProdNout, int &vProdStatus, int &vProdBarcode)
Definition: DumpObjects.cxx:1472
InDet::DumpObjects::m_SPcovz
double * m_SPcovz
Definition: DumpObjects.h:176
InDet::DumpObjects::m_maxProdVertex
float m_maxProdVertex
Definition: DumpObjects.h:105
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDet::DumpObjects::m_xaodStripSpacePointContainerKey
SG::ReadHandleKey< xAOD::SpacePointContainer > m_xaodStripSpacePointContainerKey
Definition: DumpObjects.h:90
InDet::DumpObjects::m_TRKperigee_position
std::vector< std::vector< double > > * m_TRKperigee_position
Definition: DumpObjects.h:195
AthCommonDataStore< AthCommonMsg< 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
InDet::DumpObjects::m_run_number
unsigned int m_run_number
Definition: DumpObjects.h:120
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
InDet::DumpObjects::m_rootFile
bool m_rootFile
jobOption: save data in root format
Definition: DumpObjects.h:117
TRT::Hit::side
@ side
Definition: HitInfo.h:83
InDet::DumpObjects::m_CLbarcodesLinked
std::vector< std::vector< bool > > * m_CLbarcodesLinked
Definition: DumpObjects.h:140
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
InDet::DumpObjects::m_SPbottomStripDirection
std::vector< std::vector< float > > * m_SPbottomStripDirection
Definition: DumpObjects.h:183
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
InDet::DumpObjects::m_CLparticle_charge
std::vector< std::vector< float > > * m_CLparticle_charge
Definition: DumpObjects.h:141
InDet::DumpObjects::m_selected
int m_selected
Definition: DumpObjects.h:73
InDetDD::SiLocalPosition::xPhi
double xPhi() const
position along phi direction:
Definition: SiLocalPosition.h:123
InDet::DumpObjects::m_DTTstTrack_subDetType
std::vector< std::vector< int > > * m_DTTstTrack_subDetType
Definition: DumpObjects.h:202
InDet::DumpObjects::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: DumpObjects.h:79
InDet::DumpObjects::m_name
std::string m_name
Definition: DumpObjects.h:76
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
InDet::DumpObjects::m_CLhardware
std::vector< std::string > * m_CLhardware
Definition: DumpObjects.h:128
InDetDD::SiDetectorElement::phiPitch
double phiPitch() const
Pitch (inline methods)
InDet::DumpObjects::m_DTTtrajectory_barcode
std::vector< std::vector< int > > * m_DTTtrajectory_barcode
Definition: DumpObjects.h:201
TrackTruthCollection
Definition: TrackTruthCollection.h:21
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
InDet::DumpObjects::m_tracksKey
SG::ReadHandleKey< TrackCollection > m_tracksKey
Definition: DumpObjects.h:94
AthCommonDataStore
Definition: AthCommonDataStore.h:52
InDet::DumpObjects::m_SPtopStripDirection
std::vector< std::vector< float > > * m_SPtopStripDirection
Definition: DumpObjects.h:182
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::DumpObjects::m_CLloc_eta
float * m_CLloc_eta
Definition: DumpObjects.h:147
columnar::ContainerId::cluster
@ cluster
InDet::DumpObjects::m_CLphis
std::vector< std::vector< int > > * m_CLphis
Definition: DumpObjects.h:142
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
InDet::DumpObjects::m_Part_vParentID
std::vector< std::vector< int > > * m_Part_vParentID
Definition: DumpObjects.h:166
python.Dumpers.barcodes
def barcodes(beg, end, sz)
Definition: Dumpers.py:2800
lumiFormat.i
int i
Definition: lumiFormat.py:85
InDet::DumpObjects::m_ntupleTreeName
std::string m_ntupleTreeName
jobOption: Ntuple tree name
Definition: DumpObjects.h:111
InDetDD::SolidStateDetectorElementBase::thickness
double thickness() const
InDetDD::SiLocalPosition::xEta
double xEta() const
position along eta direction:
Definition: SiLocalPosition.h:118
perigeeParameters::perigeeParameters
perigeeParameters(double d0, double z0, double phi, double eta, double pt, double charge)
Definition: ExtrapolatorComparisonTest.h:50
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::DumpObjects::m_pixelID
const PixelID * m_pixelID
Definition: DumpObjects.h:68
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
InDet::DumpObjects::m_TTCevent_index
int * m_TTCevent_index
Definition: DumpObjects.h:196
InDet::DumpObjects::m_Part_radius
float * m_Part_radius
Definition: DumpObjects.h:160
master.flag
bool flag
Definition: master.py:29
InDet::DumpObjects::m_CLeta_module
int * m_CLeta_module
Definition: DumpObjects.h:134
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
InDet::DumpObjects::m_SPy
double * m_SPy
Definition: DumpObjects.h:170
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
PixelID::eta_index
int eta_index(const Identifier &id) const
Definition: PixelID.h:664
InDet::DumpObjects::m_CLphi_angle
double * m_CLphi_angle
Definition: DumpObjects.h:149
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::DumpObjects::m_TRKndof
int * m_TRKndof
Definition: DumpObjects.h:191
InDet::DumpObjects::m_Part_vy
float * m_Part_vy
Definition: DumpObjects.h:159
InDet::DumpObjects::m_ntupleDirName
std::string m_ntupleDirName
jobOption: Ntuple directory name
Definition: DumpObjects.h:110
InDet::DumpObjects::m_SPstripCenterDistance
std::vector< std::vector< float > > * m_SPstripCenterDistance
Definition: DumpObjects.h:184
InDet::DumpObjects::m_SPhl_topstrip
float * m_SPhl_topstrip
Definition: DumpObjects.h:178
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
InDet::DumpObjects::m_Part_vx
float * m_Part_vx
Definition: DumpObjects.h:159
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
InDet::DumpObjects::m_DTTsize
int * m_DTTsize
Definition: DumpObjects.h:200
InDet::DumpObjects::m_Part_charge
float * m_Part_charge
Definition: DumpObjects.h:162
InDet::DumpObjects::m_CLglob_phi
float * m_CLglob_phi
Definition: DumpObjects.h:148
Trk::FitQualityOnSurface::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
InDet::DumpObjects::m_nDTT
int m_nDTT
Definition: DumpObjects.h:199
InDet::DumpObjects::m_Part_barcode
int * m_Part_barcode
Definition: DumpObjects.h:155
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
module_driven_slicing.max_eta
max_eta
Definition: module_driven_slicing.py:166
InDetDD::SolidStateDetectorElementBase::normal
virtual const Amg::Vector3D & normal() const override final
Get reconstruction local normal axes in global frame.
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
RPDUtils::nCols
unsigned constexpr int nCols
Definition: RPDUtils.h:25
InDet::DumpObjects::m_SPx
double * m_SPx
Definition: DumpObjects.h:170
InDet::DumpObjects::m_TRKparticle_hypothesis
int * m_TRKparticle_hypothesis
Definition: DumpObjects.h:189
Trk::MeasurementBase
Definition: MeasurementBase.h:58
InDet::DumpObjects::m_CLglob_eta
float * m_CLglob_eta
Definition: DumpObjects.h:148
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
InDet::DumpObjects::m_event_number
unsigned long long m_event_number
Definition: DumpObjects.h:121
PixelID::layer_disk
int layer_disk(const Identifier &id) const
Definition: PixelID.h:626
InDetDD::SiDetectorElement::endsOfStrip
std::pair< Amg::Vector3D, Amg::Vector3D > endsOfStrip(const Amg::Vector2D &position) const
Special method for SCT to retrieve the two ends of a "strip" Returned coordinates are in global frame...
Definition: SiDetectorElement.cxx:339
PixelID::eta_module
int eta_module(const Identifier &id) const
Definition: PixelID.h:651
TruthTrajectory
Definition: TruthTrajectory.h:26
Amg::py
@ py
Definition: GeoPrimitives.h:39
InDet::DumpObjects::m_CLmoduleID
uint64_t * m_CLmoduleID
Definition: DumpObjects.h:137
InDet::DumpObjects::m_SPisOverlap
int * m_SPisOverlap
Definition: DumpObjects.h:172
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
InDet::DumpObjects::m_Part_py
float * m_Part_py
Definition: DumpObjects.h:156
InDet::DumpObjects::m_maxPart
int m_maxPart
jobOption: maximum number of particles
Definition: DumpObjects.h:113
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
InDet::DumpObjects::m_SPhl_botstrip
float * m_SPhl_botstrip
Definition: DumpObjects.h:180
InDet::DumpObjects::m_TRKmeasurementsOnTrack_pixcl_sctcl_index
std::vector< std::vector< int > > * m_TRKmeasurementsOnTrack_pixcl_sctcl_index
Definition: DumpObjects.h:193
InDet::DumpObjects::m_CLindex
int * m_CLindex
Definition: DumpObjects.h:127
charge
double charge(const T &p)
Definition: AtlasPID.h:931
InDet::DumpObjects::m_CLloc_direction3
double * m_CLloc_direction3
Definition: DumpObjects.h:143
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
InDet::DumpObjects::m_SPz
double * m_SPz
Definition: DumpObjects.h:170
InDet::DumpObjects::m_CLparticleLink_barcode
std::vector< std::vector< int > > * m_CLparticleLink_barcode
Definition: DumpObjects.h:139
InDet::DumpObjects::m_CLpixel_count
int * m_CLpixel_count
Definition: DumpObjects.h:145
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
checkTriggerxAOD.found
found
Definition: checkTriggerxAOD.py:328
InDet::DumpObjects::m_pixelClusterKey
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
Definition: DumpObjects.h:82
InDet::DumpObjects::m_particleDataTable
const HepPDT::ParticleDataTable * m_particleDataTable
Definition: DumpObjects.h:75
InDet::DumpObjects::m_mcEventCollectionKey
SG::ReadHandleKey< McEventCollection > m_mcEventCollectionKey
Definition: DumpObjects.h:80
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::DumpObjects::m_stripSDOKey
SG::ReadHandleKey< InDetSimDataCollection > m_stripSDOKey
Definition: DumpObjects.h:86
InDet::DumpObjects::m_max_eta
float m_max_eta
Definition: DumpObjects.h:102
InDet::DumpObjects::m_particlePropSvc
ServiceHandle< IPartPropSvc > m_particlePropSvc
Definition: DumpObjects.h:74
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
columnar::ContainerId::eventInfo
@ eventInfo
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
InDet::DumpObjects::m_TTCindex
int * m_TTCindex
Definition: DumpObjects.h:196
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
Trk::GsfMeasurementUpdator::fitQuality
FitQualityOnSurface fitQuality(const MultiComponentState &, const MeasurementBase &)
Method for determining the chi2 of the multi-component state and the number of degrees of freedom.
Definition: GsfMeasurementUpdator.cxx:845
InDetDD::SiCellId
Definition: SiCellId.h:29
InDet::DumpObjects::m_Part_pz
float * m_Part_pz
Definition: DumpObjects.h:156
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
InDet::PixelClusterOnTrack::prepRawData
virtual const PixelCluster * prepRawData() const override final
returns the PrepRawData - is a SiCluster in this scope
Definition: PixelClusterOnTrack.h:179
InDet::DumpObjects::m_DTTstTruth_subDetType
std::vector< std::vector< int > > * m_DTTstTruth_subDetType
Definition: DumpObjects.h:201
InDet::DumpObjects::m_Part_vProdStatus
int * m_Part_vProdStatus
Definition: DumpObjects.h:165
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::DumpObjects::m_stripClusterKey
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
Definition: DumpObjects.h:83
h
InDet::DumpObjects::m_SPCL2_index
int * m_SPCL2_index
Definition: DumpObjects.h:171
InDet::PixelClusterOnTrack
Definition: PixelClusterOnTrack.h:51
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SCT_ID::strip
int strip(const Identifier &id) const
Definition: SCT_ID.h:764
InDet::compute_overlap_SP_flag
int compute_overlap_SP_flag(const int &eta_module_cl1, const int &phi_module_cl1, const int &eta_module_cl2, const int &phi_module_cl2)
TRT_PAI_physicsConstants::mb
const double mb
1mb to cm2
Definition: TRT_PAI_physicsConstants.h:15
InDetDD::SolidStateDetectorElementBase::globalPosition
HepGeom::Point3D< double > globalPosition(const HepGeom::Point3D< double > &localPos) const
transform a reconstruction local position into a global position (inline):
InDetDD::SolidStateDetectorElementBase::phiAxis
const Amg::Vector3D & phiAxis() const
Definition: SolidStateDetectorElementBase.cxx:74
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
InDet::DumpObjects::m_ntupleFileName
std::string m_ntupleFileName
jobOption: Ntuple file name
Definition: DumpObjects.h:109
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
InDet::DumpObjects::m_TRKoutliersOnTrack_pixcl_sctcl_index
std::vector< std::vector< int > > * m_TRKoutliersOnTrack_pixcl_sctcl_index
Definition: DumpObjects.h:193
InDet::DumpObjects::m_event
int m_event
Definition: DumpObjects.h:72
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
InDet::DumpObjects::m_CLloc_phi
float * m_CLloc_phi
Definition: DumpObjects.h:147
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
InDet::DumpObjects::m_detailedTracksTruthKey
SG::ReadHandleKey< DetailedTrackTruthCollection > m_detailedTracksTruthKey
Definition: DumpObjects.h:96
InDet::DumpObjects::m_nTRK
int m_nTRK
Definition: DumpObjects.h:187
InDet::DumpObjects::m_SEID
int * m_SEID
Definition: DumpObjects.h:124
InDet::DumpObjects::m_TRKtrack_fitter
int * m_TRKtrack_fitter
Definition: DumpObjects.h:189
module_driven_slicing.min_eta
min_eta
Definition: module_driven_slicing.py:166
InDet::DumpObjects::m_CLJan_loc_direction1
double * m_CLJan_loc_direction1
Definition: DumpObjects.h:144
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
InDet::DumpObjects::m_CLz
double * m_CLz
Definition: DumpObjects.h:131
DetailedTrackTruthCollection
Definition: DetailedTrackTruthCollection.h:20
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
merge.status
status
Definition: merge.py:17
InDet::DumpObjects::m_Part_pdg_id
int * m_Part_pdg_id
Definition: DumpObjects.h:163
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
RPDUtils::nRows
unsigned constexpr int nRows
Definition: RPDUtils.h:24
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
InDet::DumpObjects::m_xaodPixelSpacePointContainerKey
SG::ReadHandleKey< xAOD::SpacePointContainer > m_xaodPixelSpacePointContainerKey
Definition: DumpObjects.h:88
InDet::DumpObjects::m_CLnorm_y
float * m_CLnorm_y
Definition: DumpObjects.h:150
InDet::DumpObjects::m_Part_px
float * m_Part_px
Definition: DumpObjects.h:156
InDetDD::SiDetectorElement::design
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
PixelID::phi_module
int phi_module(const Identifier &id) const
Definition: PixelID.h:644
InDet::DumpObjects::m_TRKpattern
std::vector< std::vector< int > > * m_TRKpattern
Definition: DumpObjects.h:190
InDet::DumpObjects::m_Part_vParentBarcode
std::vector< std::vector< int > > * m_Part_vParentBarcode
Definition: DumpObjects.h:166
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
InDet::DumpObjects::m_max_barcode
int m_max_barcode
Definition: DumpObjects.h:104
InDet::DumpObjects::m_CLx
double * m_CLx
Definition: DumpObjects.h:129
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::DumpObjects::m_TRKcharge
int * m_TRKcharge
Definition: DumpObjects.h:194
InDet::DumpObjects::m_CLphi_module
int * m_CLphi_module
Definition: DumpObjects.h:135
EgEfficiencyCorr_testFixedInput.etas
list etas
Definition: EgEfficiencyCorr_testFixedInput.py:9
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
InDet::DumpObjects::m_maxCL
int m_maxCL
jobOption: maximum number of clusters
Definition: DumpObjects.h:112
Trk::FitQualityOnSurface::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
InDet::DumpObjects::m_nSE
int m_nSE
Definition: DumpObjects.h:123
InDet::DumpObjects::m_TRKmot
int * m_TRKmot
Definition: DumpObjects.h:191
InDet::DumpObjects::m_TRKindex
int * m_TRKindex
Definition: DumpObjects.h:188
fitman.k
k
Definition: fitman.py:528
InDet::DumpObjects::m_DTTstCommon_subDetType
std::vector< std::vector< int > > * m_DTTstCommon_subDetType
Definition: DumpObjects.h:202
InDet::DumpObjects::m_tracksTruthKey
SG::ReadHandleKey< TrackTruthCollection > m_tracksTruthKey
Definition: DumpObjects.h:95
InDet::DumpObjects::m_nSP
int m_nSP
Definition: DumpObjects.h:168
InDet::SCT_ClusterOnTrack
Definition: SCT_ClusterOnTrack.h:44
InDet::DumpObjects::m_Part_vProdBarcode
int * m_Part_vProdBarcode
Definition: DumpObjects.h:165
ServiceHandle< ICondSvc >
InDetDD::PixelDetectorManager::getDetectorElement
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements : via Identifier
Definition: PixelDetectorManager.cxx:80
InDet::DumpObjects::m_CLJan_loc_direction2
double * m_CLJan_loc_direction2
Definition: DumpObjects.h:144
InDet::DumpObjects::m_SPcovr
double * m_SPcovr
Definition: DumpObjects.h:175
InDet::DumpObjects::m_maxTRK
int m_maxTRK
Definition: DumpObjects.h:115
InDet::DumpObjects::m_CLlayer_disk
int * m_CLlayer_disk
Definition: DumpObjects.h:133
InDet::DumpObjects::m_maxSP
int m_maxSP
jobOption: maximum number of space points
Definition: DumpObjects.h:114
Identifier
Definition: IdentifierFieldParser.cxx:14
EventInfoCnvParams::eventIndex
thread_local event_number_t eventIndex
Definition: IEvtIdModifierSvc.h:34