ATLAS Offline Software
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< SpacePointContainerm_pixelSpacePointContainerKey
 
SG::ReadHandleKey< SpacePointContainerm_stripSpacePointContainerKey
 
SG::ReadHandleKey< SpacePointOverlapCollectionm_overlapSpacePointCollectionKey
 
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
 
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 49 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 51 of file DumpObjects.cxx.

53  : AthAlgorithm(name, pSvcLocator), m_pixelID(nullptr), m_SCT_ID(nullptr), m_pixelManager(nullptr),
54  m_SCT_Manager(nullptr), m_event(0), m_selected(0), m_particlePropSvc("PartPropSvc", name),
56  declareProperty("Offset", m_offset);
57  declareProperty("FileName", m_name = "");
58  //
59  declareProperty("NtupleFileName", m_ntupleFileName);
60  declareProperty("NtupleDirectoryName", m_ntupleDirName);
61  declareProperty("NtupleTreeName", m_ntupleTreeName);
62  declareProperty("maxCL", m_maxCL = 1500000);
63  declareProperty("maxPart", m_maxPart = 1500000);
64  declareProperty("maxSP", m_maxSP = 1500000);
65  declareProperty("maxTRK", m_maxTRK = 1500000);
66  declareProperty("maxDTT", m_maxDTT = 1500000);
67 
68  declareProperty("rootFile", m_rootFile);
69 }

◆ ~DumpObjects()

InDet::DumpObjects::~DumpObjects ( )
inline

Definition at line 52 of file DumpObjects.h.

52 {}

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 355 of file DumpObjects.cxx.

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

◆ 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 1258 of file DumpObjects.cxx.

1258  {
1259  //--------------------------------
1260  if (m_rootFile) {
1261  delete[] m_SEID;
1262 
1263  delete[] m_CLindex;
1264  delete m_CLhardware;
1265  delete[] m_CLx;
1266  delete[] m_CLy;
1267  delete[] m_CLz;
1268  delete[] m_CLbarrel_endcap;
1269  delete[] m_CLlayer_disk;
1270  delete[] m_CLeta_module;
1271  delete[] m_CLphi_module;
1272  delete[] m_CLside;
1273  delete[] m_CLmoduleID;
1275  delete m_CLparticleLink_barcode;
1276  delete m_CLbarcodesLinked;
1277  delete m_CLparticle_charge;
1278  delete m_CLphis;
1279  delete m_CLetas;
1280  delete m_CLtots;
1281  delete[] m_CLloc_direction1;
1282  delete[] m_CLloc_direction2;
1283  delete[] m_CLloc_direction3;
1284  delete[] m_CLJan_loc_direction1;
1285  delete[] m_CLJan_loc_direction2;
1286  delete[] m_CLJan_loc_direction3;
1287  delete[] m_CLpixel_count;
1288  delete[] m_CLcharge_count;
1289  delete[] m_CLloc_eta;
1290  delete[] m_CLloc_phi;
1291  delete[] m_CLglob_eta;
1292  delete[] m_CLglob_phi;
1293  delete[] m_CLeta_angle;
1294  delete[] m_CLphi_angle;
1295  delete[] m_CLnorm_x;
1296  delete[] m_CLnorm_y;
1297  delete[] m_CLnorm_z;
1298  delete m_CLlocal_cov;
1299 
1300  delete[] m_Part_event_number;
1301  delete[] m_Part_barcode;
1302  delete[] m_Part_px;
1303  delete[] m_Part_py;
1304  delete[] m_Part_pz;
1305  delete[] m_Part_pt;
1306  delete[] m_Part_eta;
1307  delete[] m_Part_vx;
1308  delete[] m_Part_vy;
1309  delete[] m_Part_vz;
1310  delete[] m_Part_radius;
1311  delete[] m_Part_status;
1312  delete[] m_Part_charge;
1313  delete[] m_Part_pdg_id;
1314  delete[] m_Part_passed;
1315 
1316  delete[] m_Part_vProdNin;
1317  delete[] m_Part_vProdNout;
1318  delete[] m_Part_vProdStatus;
1319  delete[] m_Part_vProdBarcode;
1320  delete m_Part_vParentID;
1321  delete m_Part_vParentBarcode;
1322 
1323  delete[] m_SPindex;
1324  delete[] m_SPx;
1325  delete[] m_SPy;
1326  delete[] m_SPz;
1327  delete[] m_SPCL1_index;
1328  delete[] m_SPCL2_index;
1329  delete[] m_SPisOverlap;
1330 
1331  delete[] m_TRKindex;
1332  delete[] m_TRKtrack_fitter;
1333  delete[] m_TRKparticle_hypothesis;
1334  delete m_TRKproperties;
1335  delete m_TRKpattern;
1336  delete[] m_TRKndof;
1337  delete[] m_TRKmot;
1338  delete[] m_TRKoot;
1339  delete[] m_TRKchiSq;
1342  delete[] m_TRKcharge;
1343  delete m_TRKperigee_position;
1344  delete m_TRKperigee_momentum;
1345  delete[] m_TTCindex;
1346  delete[] m_TTCevent_index;
1347  delete[] m_TTCparticle_link;
1348  delete[] m_TTCprobability;
1349 
1350  delete[] m_DTTindex;
1351  delete[] m_DTTsize;
1353  delete m_DTTtrajectory_barcode;
1354  delete m_DTTstTruth_subDetType;
1355  delete m_DTTstTrack_subDetType;
1356  delete m_DTTstCommon_subDetType;
1357  }
1358 
1359  return StatusCode::SUCCESS;
1360 }

◆ initialize()

StatusCode InDet::DumpObjects::initialize ( )
finaloverridevirtual

Definition at line 72 of file DumpObjects.cxx.

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

◆ 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 1363 of file DumpObjects.cxx.

1366  {
1367  //--------------------------------------------------------------------------------------------
1368 
1369  px = particle->momentum().px();
1370  py = particle->momentum().py();
1371  pz = particle->momentum().pz();
1372 
1373  pt = std::sqrt(px * px + py * py);
1374  eta = particle->momentum().eta();
1375 
1376  int pdgCode = particle->pdg_id();
1377 
1378  int absPdgCode = std::abs(pdgCode);
1379  // get the charge: ap->charge() is used later, DOES NOT WORK RIGHT NOW
1380  const HepPDT::ParticleData *ap = m_particleDataTable->particle(absPdgCode);
1381  charge = 1.;
1382  if (ap)
1383  charge = ap->charge();
1384  // since the PDT table only has abs(PID) values for the charge
1385  charge *= (pdgCode > 0.) ? 1. : -1.;
1386 
1387  status = particle->status();
1388 
1389  if (particle->production_vertex()) {
1390  vx = particle->production_vertex()->position().x();
1391  vy = particle->production_vertex()->position().y();
1392  vz = particle->production_vertex()->position().z();
1393  radius = particle->production_vertex()->position().perp();
1394  } else {
1395  vx = vy = vz = -1;
1396  radius = 999;
1397  if (status == 1)
1398  ATH_MSG_WARNING("no vertex for particle with status 1");
1399  }
1400 
1401  if (particle->production_vertex()) {
1402  vProdNin = particle->production_vertex()->particles_in_size();
1403  vProdNout = particle->production_vertex()->particles_out_size();
1404  vProdStatus = particle->production_vertex()->id();
1405  vProdBarcode = HepMC::barcode(particle->production_vertex()); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1406 #ifdef HEPMC3
1407  for (const auto &p : particle->production_vertex()->particles_in()) {
1408  vParentID.push_back(p->pdg_id());
1409  vParentBarcode.push_back(HepMC::barcode(p)); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1410  }
1411 #else
1412  for (auto ip = particle->production_vertex()->particles_in_const_begin();
1413  ip != particle->production_vertex()->particles_in_const_end();
1414  ++ip)
1415  {
1416  vParentID.push_back((*ip)->pdg_id());
1417  vParentBarcode.push_back(HepMC::barcode(*ip)); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1418  }
1419 #endif
1420  } else {
1421  vProdNin = 0;
1422  vProdNout = 0;
1423  vProdStatus = -999;
1424  vProdBarcode = 999;
1425  }
1426 
1427  bool passEta = (pt > 0.1) ? (std::abs(eta) < m_max_eta) : false;
1428  if (not passEta)
1429  return false;
1430 
1431  bool passPt = (pt > m_min_pt);
1432  if (not passPt)
1433  return false;
1434 
1435  bool passBarcode = (HepMC::barcode(particle) < m_max_barcode); // JB: HEPMC3 barcode() -> HepMC::barcode(p)
1436  if (not passBarcode)
1437  return false;
1438 
1439  bool passCharge = not(charge == 0.);
1440  if (not passCharge)
1441  return false;
1442 
1443  bool passStatus = (status == 1);
1444  if (not passStatus)
1445  return false;
1446 
1447  bool passProdRadius = (radius < m_maxProdVertex);
1448  if (not passProdRadius)
1449  return false;
1450 
1451  return true;
1452 }

◆ 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 137 of file DumpObjects.h.

◆ m_CLbarrel_endcap

int* InDet::DumpObjects::m_CLbarrel_endcap
private

Definition at line 129 of file DumpObjects.h.

◆ m_CLcharge_count

float* InDet::DumpObjects::m_CLcharge_count
private

Definition at line 143 of file DumpObjects.h.

◆ m_CLeta_angle

double* InDet::DumpObjects::m_CLeta_angle
private

Definition at line 146 of file DumpObjects.h.

◆ m_CLeta_module

int* InDet::DumpObjects::m_CLeta_module
private

Definition at line 131 of file DumpObjects.h.

◆ m_CLetas

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

Definition at line 139 of file DumpObjects.h.

◆ m_CLglob_eta

float* InDet::DumpObjects::m_CLglob_eta
private

Definition at line 145 of file DumpObjects.h.

◆ m_CLglob_phi

float * InDet::DumpObjects::m_CLglob_phi
private

Definition at line 145 of file DumpObjects.h.

◆ m_CLhardware

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

Definition at line 125 of file DumpObjects.h.

◆ m_CLindex

int* InDet::DumpObjects::m_CLindex
private

Definition at line 124 of file DumpObjects.h.

◆ m_CLJan_loc_direction1

double* InDet::DumpObjects::m_CLJan_loc_direction1
private

Definition at line 141 of file DumpObjects.h.

◆ m_CLJan_loc_direction2

double * InDet::DumpObjects::m_CLJan_loc_direction2
private

Definition at line 141 of file DumpObjects.h.

◆ m_CLJan_loc_direction3

double * InDet::DumpObjects::m_CLJan_loc_direction3
private

Definition at line 141 of file DumpObjects.h.

◆ m_CLlayer_disk

int* InDet::DumpObjects::m_CLlayer_disk
private

Definition at line 130 of file DumpObjects.h.

◆ m_CLloc_direction1

double* InDet::DumpObjects::m_CLloc_direction1
private

Definition at line 140 of file DumpObjects.h.

◆ m_CLloc_direction2

double * InDet::DumpObjects::m_CLloc_direction2
private

Definition at line 140 of file DumpObjects.h.

◆ m_CLloc_direction3

double * InDet::DumpObjects::m_CLloc_direction3
private

Definition at line 140 of file DumpObjects.h.

◆ m_CLloc_eta

float* InDet::DumpObjects::m_CLloc_eta
private

Definition at line 144 of file DumpObjects.h.

◆ m_CLloc_phi

float * InDet::DumpObjects::m_CLloc_phi
private

Definition at line 144 of file DumpObjects.h.

◆ m_CLlocal_cov

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

Definition at line 148 of file DumpObjects.h.

◆ m_CLmoduleID

uint64_t* InDet::DumpObjects::m_CLmoduleID
private

Definition at line 134 of file DumpObjects.h.

◆ m_CLnorm_x

float* InDet::DumpObjects::m_CLnorm_x
private

Definition at line 147 of file DumpObjects.h.

◆ m_CLnorm_y

float * InDet::DumpObjects::m_CLnorm_y
private

Definition at line 147 of file DumpObjects.h.

◆ m_CLnorm_z

float * InDet::DumpObjects::m_CLnorm_z
private

Definition at line 147 of file DumpObjects.h.

◆ m_CLparticle_charge

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

Definition at line 138 of file DumpObjects.h.

◆ m_CLparticleLink_barcode

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

Definition at line 136 of file DumpObjects.h.

◆ m_CLparticleLink_eventIndex

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

Definition at line 135 of file DumpObjects.h.

◆ m_CLphi_angle

double * InDet::DumpObjects::m_CLphi_angle
private

Definition at line 146 of file DumpObjects.h.

◆ m_CLphi_module

int* InDet::DumpObjects::m_CLphi_module
private

Definition at line 132 of file DumpObjects.h.

◆ m_CLphis

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

Definition at line 139 of file DumpObjects.h.

◆ m_CLpixel_count

int* InDet::DumpObjects::m_CLpixel_count
private

Definition at line 142 of file DumpObjects.h.

◆ m_CLside

int* InDet::DumpObjects::m_CLside
private

Definition at line 133 of file DumpObjects.h.

◆ m_CLtots

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

Definition at line 139 of file DumpObjects.h.

◆ m_CLx

double* InDet::DumpObjects::m_CLx
private

Definition at line 126 of file DumpObjects.h.

◆ m_CLy

double* InDet::DumpObjects::m_CLy
private

Definition at line 127 of file DumpObjects.h.

◆ m_CLz

double* InDet::DumpObjects::m_CLz
private

Definition at line 128 of file DumpObjects.h.

◆ m_detailedTracksTruthKey

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

Definition at line 93 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 184 of file DumpObjects.h.

◆ m_DTTsize

int * InDet::DumpObjects::m_DTTsize
private

Definition at line 184 of file DumpObjects.h.

◆ m_DTTstCommon_subDetType

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

Definition at line 186 of file DumpObjects.h.

◆ m_DTTstTrack_subDetType

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

Definition at line 186 of file DumpObjects.h.

◆ m_DTTstTruth_subDetType

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

Definition at line 185 of file DumpObjects.h.

◆ m_DTTtrajectory_barcode

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

Definition at line 185 of file DumpObjects.h.

◆ m_DTTtrajectory_eventindex

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

Definition at line 185 of file DumpObjects.h.

◆ m_event

int InDet::DumpObjects::m_event
private

Definition at line 67 of file DumpObjects.h.

◆ m_event_number

unsigned long long InDet::DumpObjects::m_event_number
private

Definition at line 118 of file DumpObjects.h.

◆ m_eventInfoKey

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

Definition at line 74 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 101 of file DumpObjects.h.

◆ m_max_eta

float InDet::DumpObjects::m_max_eta = 4.0
private

Definition at line 99 of file DumpObjects.h.

◆ m_maxCL

int InDet::DumpObjects::m_maxCL
private

jobOption: maximum number of clusters

Definition at line 109 of file DumpObjects.h.

◆ m_maxDTT

int InDet::DumpObjects::m_maxDTT
private

Definition at line 113 of file DumpObjects.h.

◆ m_maxPart

int InDet::DumpObjects::m_maxPart
private

jobOption: maximum number of particles

Definition at line 110 of file DumpObjects.h.

◆ m_maxProdVertex

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

Definition at line 102 of file DumpObjects.h.

◆ m_maxSP

int InDet::DumpObjects::m_maxSP
private

jobOption: maximum number of space points

Definition at line 111 of file DumpObjects.h.

◆ m_maxTRK

int InDet::DumpObjects::m_maxTRK
private

Definition at line 112 of file DumpObjects.h.

◆ m_mcEventCollectionKey

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

Definition at line 75 of file DumpObjects.h.

◆ m_min_pt

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

Definition at line 100 of file DumpObjects.h.

◆ m_name

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

Definition at line 71 of file DumpObjects.h.

◆ m_nCL

int InDet::DumpObjects::m_nCL
private

Definition at line 123 of file DumpObjects.h.

◆ m_nDTT

int InDet::DumpObjects::m_nDTT
private

Definition at line 183 of file DumpObjects.h.

◆ m_nPartEVT

int InDet::DumpObjects::m_nPartEVT
private

Definition at line 150 of file DumpObjects.h.

◆ m_nSE

int InDet::DumpObjects::m_nSE
private

Definition at line 120 of file DumpObjects.h.

◆ m_nSP

int InDet::DumpObjects::m_nSP
private

Definition at line 165 of file DumpObjects.h.

◆ m_nt

TTree* InDet::DumpObjects::m_nt
private

Definition at line 115 of file DumpObjects.h.

◆ m_nTRK

int InDet::DumpObjects::m_nTRK
private

Definition at line 171 of file DumpObjects.h.

◆ m_ntupleDirName

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

jobOption: Ntuple directory name

Definition at line 107 of file DumpObjects.h.

◆ m_ntupleFileName

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

jobOption: Ntuple file name

Definition at line 106 of file DumpObjects.h.

◆ m_ntupleTreeName

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

jobOption: Ntuple tree name

Definition at line 108 of file DumpObjects.h.

◆ m_offset

int InDet::DumpObjects::m_offset
private

Definition at line 96 of file DumpObjects.h.

◆ m_overlapSpacePointCollectionKey

SG::ReadHandleKey<SpacePointOverlapCollection> InDet::DumpObjects::m_overlapSpacePointCollectionKey
private
Initial value:
{this, "OverlapSpacePointCollectionKey",
"ITkOverlapSpacePoints"}

Definition at line 87 of file DumpObjects.h.

◆ m_Part_barcode

int* InDet::DumpObjects::m_Part_barcode
private

Definition at line 152 of file DumpObjects.h.

◆ m_Part_charge

float* InDet::DumpObjects::m_Part_charge
private

Definition at line 159 of file DumpObjects.h.

◆ m_Part_eta

float* InDet::DumpObjects::m_Part_eta
private

Definition at line 155 of file DumpObjects.h.

◆ m_Part_event_number

int* InDet::DumpObjects::m_Part_event_number
private

Definition at line 151 of file DumpObjects.h.

◆ m_Part_passed

int* InDet::DumpObjects::m_Part_passed
private

Definition at line 161 of file DumpObjects.h.

◆ m_Part_pdg_id

int* InDet::DumpObjects::m_Part_pdg_id
private

Definition at line 160 of file DumpObjects.h.

◆ m_Part_pt

float* InDet::DumpObjects::m_Part_pt
private

Definition at line 154 of file DumpObjects.h.

◆ m_Part_px

float* InDet::DumpObjects::m_Part_px
private

Definition at line 153 of file DumpObjects.h.

◆ m_Part_py

float * InDet::DumpObjects::m_Part_py
private

Definition at line 153 of file DumpObjects.h.

◆ m_Part_pz

float * InDet::DumpObjects::m_Part_pz
private

Definition at line 153 of file DumpObjects.h.

◆ m_Part_radius

float* InDet::DumpObjects::m_Part_radius
private

Definition at line 157 of file DumpObjects.h.

◆ m_Part_status

float* InDet::DumpObjects::m_Part_status
private

Definition at line 158 of file DumpObjects.h.

◆ m_Part_vParentBarcode

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

Definition at line 163 of file DumpObjects.h.

◆ m_Part_vParentID

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

Definition at line 163 of file DumpObjects.h.

◆ m_Part_vProdBarcode

int * InDet::DumpObjects::m_Part_vProdBarcode
private

Definition at line 162 of file DumpObjects.h.

◆ m_Part_vProdNin

int* InDet::DumpObjects::m_Part_vProdNin
private

Definition at line 162 of file DumpObjects.h.

◆ m_Part_vProdNout

int * InDet::DumpObjects::m_Part_vProdNout
private

Definition at line 162 of file DumpObjects.h.

◆ m_Part_vProdStatus

int * InDet::DumpObjects::m_Part_vProdStatus
private

Definition at line 162 of file DumpObjects.h.

◆ m_Part_vx

float* InDet::DumpObjects::m_Part_vx
private

Definition at line 156 of file DumpObjects.h.

◆ m_Part_vy

float * InDet::DumpObjects::m_Part_vy
private

Definition at line 156 of file DumpObjects.h.

◆ m_Part_vz

float * InDet::DumpObjects::m_Part_vz
private

Definition at line 156 of file DumpObjects.h.

◆ m_particleDataTable

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

Definition at line 70 of file DumpObjects.h.

◆ m_particlePropSvc

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

Definition at line 69 of file DumpObjects.h.

◆ m_pixelClusterKey

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

Definition at line 77 of file DumpObjects.h.

◆ m_pixelID

const PixelID* InDet::DumpObjects::m_pixelID
private

Definition at line 63 of file DumpObjects.h.

◆ m_pixelManager

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

Definition at line 65 of file DumpObjects.h.

◆ m_pixelSDOKey

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

Definition at line 80 of file DumpObjects.h.

◆ m_pixelSpacePointContainerKey

SG::ReadHandleKey<SpacePointContainer> InDet::DumpObjects::m_pixelSpacePointContainerKey
private
Initial value:
{this, "PixelSpacePointContainerKey",
"ITkPixelSpacePoints"}

Definition at line 83 of file DumpObjects.h.

◆ m_rootFile

bool InDet::DumpObjects::m_rootFile
private

jobOption: save data in root format

Definition at line 114 of file DumpObjects.h.

◆ m_run_number

unsigned int InDet::DumpObjects::m_run_number
private

Definition at line 117 of file DumpObjects.h.

◆ m_SCT_ID

const SCT_ID* InDet::DumpObjects::m_SCT_ID
private

Definition at line 64 of file DumpObjects.h.

◆ m_SCT_Manager

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

Definition at line 66 of file DumpObjects.h.

◆ m_SEID

int* InDet::DumpObjects::m_SEID
private

Definition at line 121 of file DumpObjects.h.

◆ m_selected

int InDet::DumpObjects::m_selected
private

Definition at line 68 of file DumpObjects.h.

◆ m_SPCL1_index

int* InDet::DumpObjects::m_SPCL1_index
private

Definition at line 168 of file DumpObjects.h.

◆ m_SPCL2_index

int * InDet::DumpObjects::m_SPCL2_index
private

Definition at line 168 of file DumpObjects.h.

◆ m_SPindex

int* InDet::DumpObjects::m_SPindex
private

Definition at line 166 of file DumpObjects.h.

◆ m_SPisOverlap

int* InDet::DumpObjects::m_SPisOverlap
private

Definition at line 169 of file DumpObjects.h.

◆ m_SPx

double* InDet::DumpObjects::m_SPx
private

Definition at line 167 of file DumpObjects.h.

◆ m_SPy

double * InDet::DumpObjects::m_SPy
private

Definition at line 167 of file DumpObjects.h.

◆ m_SPz

double * InDet::DumpObjects::m_SPz
private

Definition at line 167 of file DumpObjects.h.

◆ m_stripClusterKey

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

Definition at line 78 of file DumpObjects.h.

◆ m_stripSDOKey

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

Definition at line 81 of file DumpObjects.h.

◆ m_stripSpacePointContainerKey

SG::ReadHandleKey<SpacePointContainer> InDet::DumpObjects::m_stripSpacePointContainerKey
private
Initial value:
{this, "StripSpacePointContainerKey",
"ITkStripSpacePoints"}

Definition at line 85 of file DumpObjects.h.

◆ m_tracksKey

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

Definition at line 91 of file DumpObjects.h.

◆ m_tracksTruthKey

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

Definition at line 92 of file DumpObjects.h.

◆ m_TRKcharge

int* InDet::DumpObjects::m_TRKcharge
private

Definition at line 178 of file DumpObjects.h.

◆ m_TRKchiSq

float* InDet::DumpObjects::m_TRKchiSq
private

Definition at line 176 of file DumpObjects.h.

◆ m_TRKindex

int* InDet::DumpObjects::m_TRKindex
private

Definition at line 172 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 177 of file DumpObjects.h.

◆ m_TRKmot

int * InDet::DumpObjects::m_TRKmot
private

Definition at line 175 of file DumpObjects.h.

◆ m_TRKndof

int* InDet::DumpObjects::m_TRKndof
private

Definition at line 175 of file DumpObjects.h.

◆ m_TRKoot

int * InDet::DumpObjects::m_TRKoot
private

Definition at line 175 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 177 of file DumpObjects.h.

◆ m_TRKparticle_hypothesis

int * InDet::DumpObjects::m_TRKparticle_hypothesis
private

Definition at line 173 of file DumpObjects.h.

◆ m_TRKpattern

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

Definition at line 174 of file DumpObjects.h.

◆ m_TRKperigee_momentum

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

Definition at line 179 of file DumpObjects.h.

◆ m_TRKperigee_position

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

Definition at line 179 of file DumpObjects.h.

◆ m_TRKproperties

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

Definition at line 174 of file DumpObjects.h.

◆ m_TRKtrack_fitter

int* InDet::DumpObjects::m_TRKtrack_fitter
private

Definition at line 173 of file DumpObjects.h.

◆ m_TTCevent_index

int * InDet::DumpObjects::m_TTCevent_index
private

Definition at line 180 of file DumpObjects.h.

◆ m_TTCindex

int* InDet::DumpObjects::m_TTCindex
private

Definition at line 180 of file DumpObjects.h.

◆ m_TTCparticle_link

int * InDet::DumpObjects::m_TTCparticle_link
private

Definition at line 180 of file DumpObjects.h.

◆ m_TTCprobability

float* InDet::DumpObjects::m_TTCprobability
private

Definition at line 181 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.


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:150
InDet::DumpObjects::m_TRKperigee_momentum
std::vector< std::vector< double > > * m_TRKperigee_momentum
Definition: DumpObjects.h:179
InDet::DumpObjects::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition: DumpObjects.h:65
mergePhysValFiles.pattern
pattern
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:26
InDet::DumpObjects::m_CLnorm_z
float * m_CLnorm_z
Definition: DumpObjects.h:147
InDet::DumpObjects::m_CLeta_angle
double * m_CLeta_angle
Definition: DumpObjects.h:146
IDTPM::ndof
float ndof(const U &p)
Definition: TrackParametersHelper.h:142
InDet::DumpObjects::m_stripSpacePointContainerKey
SG::ReadHandleKey< SpacePointContainer > m_stripSpacePointContainerKey
Definition: DumpObjects.h:85
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:139
InDet::DumpObjects::m_TRKchiSq
float * m_TRKchiSq
Definition: DumpObjects.h:176
InDet::DumpObjects::m_TRKoot
int * m_TRKoot
Definition: DumpObjects.h:175
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:29
InDet::DumpObjects::m_Part_vProdNin
int * m_Part_vProdNin
Definition: DumpObjects.h:162
test_pyathena.px
px
Definition: test_pyathena.py:18
InDet::DumpObjects::m_maxDTT
int m_maxDTT
Definition: DumpObjects.h:113
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
perigeeParameters
Definition: ExtrapolatorComparisonTest.h:42
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
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
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
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:48
InDet::DumpObjects::m_CLside
int * m_CLside
Definition: DumpObjects.h:133
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:174
InDet::DumpObjects::m_CLloc_direction2
double * m_CLloc_direction2
Definition: DumpObjects.h:140
InDet::DumpObjects::m_nt
TTree * m_nt
Definition: DumpObjects.h:115
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
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:80
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:147
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
SubDetHitStatistics
Definition: SubDetHitStatistics.h:34
InDet::DumpObjects::m_nCL
int m_nCL
Definition: DumpObjects.h:123
InDet::DumpObjects::m_Part_eta
float * m_Part_eta
Definition: DumpObjects.h:155
InDet::DumpObjects::m_CLloc_direction1
double * m_CLloc_direction1
Definition: DumpObjects.h:140
InDetDD::SolidStateDetectorElementBase::etaAxis
const Amg::Vector3D & etaAxis() const
Definition: SolidStateDetectorElementBase.cxx:88
InDet::DumpObjects::m_Part_vz
float * m_Part_vz
Definition: DumpObjects.h:156
skel.it
it
Definition: skel.GENtoEVGEN.py:423
InDet::DumpObjects::m_Part_pt
float * m_Part_pt
Definition: DumpObjects.h:154
test_pyathena.pt
pt
Definition: test_pyathena.py:11
IdentifiableContainerMT::size
size_t size() const
Duplicate of fullSize for backwards compatability.
Definition: IdentifiableContainerMT.h:209
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:184
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
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:129
InDetSimDataCollection
Definition: InDetSimDataCollection.h:25
InDet::DumpObjects::m_CLparticleLink_eventIndex
std::vector< std::vector< int > > * m_CLparticleLink_eventIndex
Definition: DumpObjects.h:135
InDet::DumpObjects::m_CLy
double * m_CLy
Definition: DumpObjects.h:127
InDet::DumpObjects::m_DTTtrajectory_eventindex
std::vector< std::vector< int > > * m_DTTtrajectory_eventindex
Definition: DumpObjects.h:185
InDet::DumpObjects::m_SCT_ID
const SCT_ID * m_SCT_ID
Definition: DumpObjects.h:64
InDet::DumpObjects::m_CLlocal_cov
std::vector< std::vector< double > > * m_CLlocal_cov
Definition: DumpObjects.h:148
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
SpacePointOverlapCollection
Definition: SpacePointOverlapCollection.h:26
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:166
InDet::DumpObjects::m_min_pt
float m_min_pt
Definition: DumpObjects.h:100
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:96
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:66
InDet::DumpObjects::m_CLcharge_count
float * m_CLcharge_count
Definition: DumpObjects.h:143
InDet::DumpObjects::m_SPCL1_index
int * m_SPCL1_index
Definition: DumpObjects.h:168
InDet::DumpObjects::m_Part_passed
int * m_Part_passed
Definition: DumpObjects.h:161
InDet::DumpObjects::m_CLetas
std::vector< std::vector< int > > * m_CLetas
Definition: DumpObjects.h:139
InDetDD::SCT_DetectorManager::getDetectorElement
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
Definition: SCT_DetectorManager.cxx:64
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:162
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:158
InDet::DumpObjects::m_Part_event_number
int * m_Part_event_number
Definition: DumpObjects.h:151
InDet::DumpObjects::m_CLJan_loc_direction3
double * m_CLJan_loc_direction3
Definition: DumpObjects.h:141
InDet::DumpObjects::m_TTCparticle_link
int * m_TTCparticle_link
Definition: DumpObjects.h:180
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
InDet::DumpObjects::m_TTCprobability
float * m_TTCprobability
Definition: DumpObjects.h:181
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
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:1363
InDet::DumpObjects::m_maxProdVertex
float m_maxProdVertex
Definition: DumpObjects.h:102
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDet::DumpObjects::m_TRKperigee_position
std::vector< std::vector< double > > * m_TRKperigee_position
Definition: DumpObjects.h:179
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:117
InDet::DumpObjects::m_rootFile
bool m_rootFile
jobOption: save data in root format
Definition: DumpObjects.h:114
TRT::Hit::side
@ side
Definition: HitInfo.h:83
InDet::DumpObjects::m_CLbarcodesLinked
std::vector< std::vector< bool > > * m_CLbarcodesLinked
Definition: DumpObjects.h:137
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
InDet::DumpObjects::m_CLparticle_charge
std::vector< std::vector< float > > * m_CLparticle_charge
Definition: DumpObjects.h:138
InDet::DumpObjects::m_selected
int m_selected
Definition: DumpObjects.h:68
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:186
InDet::DumpObjects::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: DumpObjects.h:74
InDet::DumpObjects::m_name
std::string m_name
Definition: DumpObjects.h:71
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
InDet::DumpObjects::m_CLhardware
std::vector< std::string > * m_CLhardware
Definition: DumpObjects.h:125
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:185
TrackTruthCollection
Definition: TrackTruthCollection.h:21
InDet::DumpObjects::m_tracksKey
SG::ReadHandleKey< TrackCollection > m_tracksKey
Definition: DumpObjects.h:91
AthCommonDataStore
Definition: AthCommonDataStore.h:52
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:144
InDet::DumpObjects::m_CLphis
std::vector< std::vector< int > > * m_CLphis
Definition: DumpObjects.h:139
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:163
python.Dumpers.barcodes
def barcodes(beg, end, sz)
Definition: Dumpers.py:2800
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDet::DumpObjects::m_ntupleTreeName
std::string m_ntupleTreeName
jobOption: Ntuple tree name
Definition: DumpObjects.h:108
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:49
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
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:63
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
InDet::DumpObjects::m_TTCevent_index
int * m_TTCevent_index
Definition: DumpObjects.h:180
InDet::DumpObjects::m_Part_radius
float * m_Part_radius
Definition: DumpObjects.h:157
master.flag
bool flag
Definition: master.py:29
InDet::DumpObjects::m_CLeta_module
int * m_CLeta_module
Definition: DumpObjects.h:131
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
InDet::DumpObjects::m_SPy
double * m_SPy
Definition: DumpObjects.h:167
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:146
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:175
InDet::DumpObjects::m_Part_vy
float * m_Part_vy
Definition: DumpObjects.h:156
InDet::DumpObjects::m_ntupleDirName
std::string m_ntupleDirName
jobOption: Ntuple directory name
Definition: DumpObjects.h:107
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:156
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:184
InDet::DumpObjects::m_Part_charge
float * m_Part_charge
Definition: DumpObjects.h:159
InDet::DumpObjects::m_CLglob_phi
float * m_CLglob_phi
Definition: DumpObjects.h:145
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:183
InDet::DumpObjects::m_Part_barcode
int * m_Part_barcode
Definition: DumpObjects.h:152
DataVector< Trk::Track >
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.
python.JsonUtils.properties
properties
Definition: JsonUtils.py:96
InDet::DumpObjects::m_pixelSpacePointContainerKey
SG::ReadHandleKey< SpacePointContainer > m_pixelSpacePointContainerKey
Definition: DumpObjects.h:83
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
InDet::DumpObjects::m_SPx
double * m_SPx
Definition: DumpObjects.h:167
InDet::DumpObjects::m_TRKparticle_hypothesis
int * m_TRKparticle_hypothesis
Definition: DumpObjects.h:173
Trk::MeasurementBase
Definition: MeasurementBase.h:58
InDet::DumpObjects::m_CLglob_eta
float * m_CLglob_eta
Definition: DumpObjects.h:145
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
InDet::DumpObjects::m_event_number
unsigned long long m_event_number
Definition: DumpObjects.h:118
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:134
InDet::DumpObjects::m_SPisOverlap
int * m_SPisOverlap
Definition: DumpObjects.h:169
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
InDet::DumpObjects::m_Part_py
float * m_Part_py
Definition: DumpObjects.h:153
InDet::DumpObjects::m_maxPart
int m_maxPart
jobOption: maximum number of particles
Definition: DumpObjects.h:110
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDet::DumpObjects::m_TRKmeasurementsOnTrack_pixcl_sctcl_index
std::vector< std::vector< int > > * m_TRKmeasurementsOnTrack_pixcl_sctcl_index
Definition: DumpObjects.h:177
InDet::DumpObjects::m_CLindex
int * m_CLindex
Definition: DumpObjects.h:124
charge
double charge(const T &p)
Definition: AtlasPID.h:494
InDet::DumpObjects::m_CLloc_direction3
double * m_CLloc_direction3
Definition: DumpObjects.h:140
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:167
InDet::DumpObjects::m_CLparticleLink_barcode
std::vector< std::vector< int > > * m_CLparticleLink_barcode
Definition: DumpObjects.h:136
InDet::DumpObjects::m_CLpixel_count
int * m_CLpixel_count
Definition: DumpObjects.h:142
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
InDet::DumpObjects::m_pixelClusterKey
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
Definition: DumpObjects.h:77
InDet::DumpObjects::m_overlapSpacePointCollectionKey
SG::ReadHandleKey< SpacePointOverlapCollection > m_overlapSpacePointCollectionKey
Definition: DumpObjects.h:87
InDet::DumpObjects::m_particleDataTable
const HepPDT::ParticleDataTable * m_particleDataTable
Definition: DumpObjects.h:70
InDet::DumpObjects::m_mcEventCollectionKey
SG::ReadHandleKey< McEventCollection > m_mcEventCollectionKey
Definition: DumpObjects.h:75
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::DumpObjects::m_stripSDOKey
SG::ReadHandleKey< InDetSimDataCollection > m_stripSDOKey
Definition: DumpObjects.h:81
InDet::DumpObjects::m_max_eta
float m_max_eta
Definition: DumpObjects.h:99
InDet::DumpObjects::m_particlePropSvc
ServiceHandle< IPartPropSvc > m_particlePropSvc
Definition: DumpObjects.h:69
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
InDet::DumpObjects::m_TTCindex
int * m_TTCindex
Definition: DumpObjects.h:180
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:153
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:185
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
InDet::DumpObjects::m_Part_vProdStatus
int * m_Part_vProdStatus
Definition: DumpObjects.h:162
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::DumpObjects::m_stripClusterKey
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
Definition: DumpObjects.h:78
h
InDet::DumpObjects::m_SPCL2_index
int * m_SPCL2_index
Definition: DumpObjects.h:168
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
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:106
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:177
InDet::DumpObjects::m_event
int m_event
Definition: DumpObjects.h:67
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:144
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
InDet::DumpObjects::m_detailedTracksTruthKey
SG::ReadHandleKey< DetailedTrackTruthCollection > m_detailedTracksTruthKey
Definition: DumpObjects.h:93
InDet::DumpObjects::m_nTRK
int m_nTRK
Definition: DumpObjects.h:171
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
InDet::DumpObjects::m_SEID
int * m_SEID
Definition: DumpObjects.h:121
InDet::DumpObjects::m_TRKtrack_fitter
int * m_TRKtrack_fitter
Definition: DumpObjects.h:173
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:141
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:128
DetailedTrackTruthCollection
Definition: DetailedTrackTruthCollection.h:20
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
SpacePointContainer
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointContainer.h:29
merge.status
status
Definition: merge.py:17
InDet::DumpObjects::m_Part_pdg_id
int * m_Part_pdg_id
Definition: DumpObjects.h:160
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
InDet::DumpObjects::m_CLnorm_y
float * m_CLnorm_y
Definition: DumpObjects.h:147
InDet::DumpObjects::m_Part_px
float * m_Part_px
Definition: DumpObjects.h:153
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:174
InDet::DumpObjects::m_Part_vParentBarcode
std::vector< std::vector< int > > * m_Part_vParentBarcode
Definition: DumpObjects.h:163
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:101
InDet::DumpObjects::m_CLx
double * m_CLx
Definition: DumpObjects.h:126
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:178
InDet::DumpObjects::m_CLphi_module
int * m_CLphi_module
Definition: DumpObjects.h:132
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:109
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:120
InDet::DumpObjects::m_TRKmot
int * m_TRKmot
Definition: DumpObjects.h:175
InDet::DumpObjects::m_TRKindex
int * m_TRKindex
Definition: DumpObjects.h:172
fitman.k
k
Definition: fitman.py:528
InDet::DumpObjects::m_DTTstCommon_subDetType
std::vector< std::vector< int > > * m_DTTstCommon_subDetType
Definition: DumpObjects.h:186
InDet::DumpObjects::m_tracksTruthKey
SG::ReadHandleKey< TrackTruthCollection > m_tracksTruthKey
Definition: DumpObjects.h:92
InDet::DumpObjects::m_nSP
int m_nSP
Definition: DumpObjects.h:165
InDet::SCT_ClusterOnTrack
Definition: SCT_ClusterOnTrack.h:44
InDet::DumpObjects::m_Part_vProdBarcode
int * m_Part_vProdBarcode
Definition: DumpObjects.h:162
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:141
InDet::DumpObjects::m_maxTRK
int m_maxTRK
Definition: DumpObjects.h:112
InDet::DumpObjects::m_CLlayer_disk
int * m_CLlayer_disk
Definition: DumpObjects.h:130
InDet::DumpObjects::m_maxSP
int m_maxSP
jobOption: maximum number of space points
Definition: DumpObjects.h:111
EventInfoCnvParams::eventIndex
thread_local event_number_t eventIndex
Definition: IEvtIdModifierSvc.h:34