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

#include <MaterialMapper.h>

Inheritance diagram for Trk::MaterialMapper:
Collaboration diagram for Trk::MaterialMapper:

Public Member Functions

 MaterialMapper (const std::string &, const std::string &, const IInterface *)
 AlgTool like constructor. More...
 
virtual ~MaterialMapper ()
 Virtual destructor. More...
 
StatusCode initialize ()
 AlgTool initialize method. More...
 
StatusCode finalize ()
 AlgTool finalize method. More...
 
void recordMaterialHit (const AssociatedMaterial &amhit, const Amg::Vector3D &projectedPosition) const
 Record material hit along the recording. More...
 
void recordLayerHit (const AssociatedMaterial &amhit, bool full=false) const
 Record material hit - if various hits per uniform layer are recorded, or if you want to record one full hit. More...
 
void recordSurfaceHit (const Amg::Vector2D &locpos, const AssociatedMaterial &amhit) const
 Record material hit on a surface. More...
 
void handle (const Incident &inc)
 Handle the incident from the incident service. 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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 
 DeclareInterfaceID (IMaterialMapper, 1, 0)
 Creates the InterfaceID and interfaceID() method. More...
 

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

void finalizeVolumeHits (bool mapped=true) const
 Finalize the Volume Steps. More...
 
void finalizeLayerHits () const
 Finalize the SingleLayer Steps. More...
 
void finalizeSurfaceHits () const
 Finalize the SingleLayer Steps. More...
 
void bookValidationTree ()
 Validation : book the Tree. More...
 
VolumeTreeObjectvolumeTreeObject (const Layer *lay=0, const TrackingVolume *tvol=0) const
 find (&&,||) create a VolumeTreObject More...
 
LayerTreeObjectlayerTreeObject (const Layer &lay, bool full=false) const
 find (&&,||) create the LayerTreeObject
More...
 
SurfaceTreeObjectsurfaceTreeObject (const Layer &lay) const
 find (&&,||) create the LayerTreeObject
More...
 
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

ServiceHandle< IIncidentSvc > m_incidentSvc
 
ServiceHandle< ITHistSvc > m_histSvc
 
int m_materialAssociationType
 
unsigned int m_maxMappingEvents
 
unsigned int m_processedEvents
 
std::string m_totalMaterialTree
 
TTree * m_validationTree
 The validation tree. More...
 
std::string m_validationTreeName
 validation tree name - to be accessed by this from root More...
 
std::string m_validationTreeDescription
 validation tree description - second argument in TTree More...
 
std::string m_validationTreeFolder
 stream/folder to for the TTree to be written out More...
 
int m_materialSteps
 number of update positions More...
 
float m_averageEta
 average eta More...
 
float m_averagePhi
 average ogu More...
 
float m_mappedPath
 total mapped path More...
 
float m_mappedPathInX0
 total mapped path in X0 More...
 
float m_mappedPathInL0
 total mapped path in L0 More...
 
float m_mappedPathRho
 total mapped path times rho More...
 
float m_mappedPathZARho
 total mapped path times (Z/A)*rho More...
 
float m_unmappedPathInX0
 total path in x0 in these events lost
More...
 
int m_mapped [TRKDETDESCRTOOLS_MAXSTEPS] {}
 mapped or not mapped More...
 
float m_materialAccumPathInX0 [TRKDETDESCRTOOLS_MAXSTEPS] {}
 accumulated path length in x0 More...
 
float m_materialAccumPathZARho [TRKDETDESCRTOOLS_MAXSTEPS] {}
 accumulated path length times (Z/A)*rho More...
 
float m_materialStepPath [TRKDETDESCRTOOLS_MAXSTEPS] {}
 step path More...
 
float m_materialStepX0 [TRKDETDESCRTOOLS_MAXSTEPS] {}
 step x0 More...
 
float m_materialStepL0 [TRKDETDESCRTOOLS_MAXSTEPS] {}
 step l0 More...
 
float m_materialStepZ [TRKDETDESCRTOOLS_MAXSTEPS] {}
 step Z More...
 
float m_materialStepA [TRKDETDESCRTOOLS_MAXSTEPS] {}
 step A More...
 
float m_materialStepRho [TRKDETDESCRTOOLS_MAXSTEPS] {}
 step rho More...
 
float m_materialStepPositionX [TRKDETDESCRTOOLS_MAXSTEPS] {}
 x position of the material recording More...
 
float m_materialStepPositionY [TRKDETDESCRTOOLS_MAXSTEPS] {}
 y position of the material recording More...
 
float m_materialStepPositionZ [TRKDETDESCRTOOLS_MAXSTEPS] {}
 z position of the material recording More...
 
float m_materialStepPositionR [TRKDETDESCRTOOLS_MAXSTEPS] {}
 r value of the material recording More...
 
float m_materialProjPositionX [TRKDETDESCRTOOLS_MAXSTEPS] {}
 x position of the material recording when assigned to layer More...
 
float m_materialProjPositionY [TRKDETDESCRTOOLS_MAXSTEPS] {}
 y position of the material recording when assigned to layer More...
 
float m_materialProjPositionZ [TRKDETDESCRTOOLS_MAXSTEPS] {}
 z position of the material recording when assigned to layer More...
 
float m_materialProjPositionR [TRKDETDESCRTOOLS_MAXSTEPS] {}
 r value of the material recording when assigned to layer More...
 
float m_materialProjDistance [TRKDETDESCRTOOLS_MAXSTEPS] {}
 the distance to the projected hit More...
 
bool m_volumeValidation
 
std::string m_volumeTreePrefix
 
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTrees
 
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTreesUnmapped
 
bool m_layerValidation
 
std::string m_layerTreePrefix
 
std::map< const Trk::Layer *, LayerTreeObject * > m_layerTrees
 
std::map< const Trk::Layer *, LayerTreeObject * > m_layerFullTrees
 
bool m_surfaceValidation
 
std::string m_surfaceTreePrefix
 
std::map< const Trk::Layer *, SurfaceTreeObject * > m_surfaceTrees
 
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

Implementation of the class MaterialMapper. The correct material mapping can only be done with stiff tracks as the finalizeEvent method requires an eta,phi bin!

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 204 of file MaterialMapper.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MaterialMapper()

Trk::MaterialMapper::MaterialMapper ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

AlgTool like constructor.

Definition at line 20 of file MaterialMapper.cxx.

21 : AthAlgTool(t,n,p),
22  m_incidentSvc("IncidentSvc", n),
23  m_histSvc("THistSvc", n),
25  m_maxMappingEvents(100000),
27  m_totalMaterialTree("TotalMaterial"),
28  m_validationTree(nullptr),
29  m_validationTreeName("MaterialMapper"),
30  m_validationTreeDescription("Material Effects Updator information"),
31  m_validationTreeFolder("/val/MaterialMapper"),
32  m_materialSteps(0),
36  m_volumeValidation(true),
37  m_volumeTreePrefix("VolumeMaterial"),
38  m_layerValidation(true),
39  m_layerTreePrefix("LayerMaterial_"),
40  m_surfaceValidation(true),
41  m_surfaceTreePrefix("SurfaceMaterial_")
42 {
43  declareInterface<IMaterialMapper>(this);
44 
45  // The maximum mapping events to control the output file size
46  declareProperty("MaximumMappingEvents", m_maxMappingEvents);
47  // specification for the Validation Tree
48  declareProperty("ValidationTreeName", m_validationTreeName);
49  declareProperty("ValidationTreeDescription", m_validationTreeDescription);
50  declareProperty("ValidationTreeFolder", m_validationTreeFolder);
51  // the total material statistics
52  declareProperty("TotalMaterialTreeName", m_totalMaterialTree);
53  // declare the association type
54  declareProperty("MaterialAssociationType", m_materialAssociationType);
55  // the volume validation
56  declareProperty("TrackingVolumeValidation", m_volumeValidation);
57  declareProperty("TrackingVolumeTreePrefix", m_volumeTreePrefix);
58  // the layer Validation
59  declareProperty("DetailedLayerValidation", m_layerValidation);
60  declareProperty("DetailedLayerTreePrefix", m_layerTreePrefix);
61  // the surface Validation
62  declareProperty("DetailedSurfaceValidation", m_surfaceValidation);
63  declareProperty("DetailedSurfaceTreePrefix", m_surfaceTreePrefix);
64 
65 }

◆ ~MaterialMapper()

Trk::MaterialMapper::~MaterialMapper ( )
virtual

Virtual destructor.

Definition at line 68 of file MaterialMapper.cxx.

69 {
70  // memory cleanup
71  if (m_volumeValidation) {
72  auto volTreeIter = m_volumeTrees.begin();
73  auto endVolTreeIter = m_volumeTrees.end();
74  for ( ; volTreeIter != endVolTreeIter; delete (volTreeIter->second), ++volTreeIter) {}
75  }
76 
77  if (m_layerValidation) {
78  // delete the layer hit TTree
79  auto layTreeIter = m_layerTrees.begin();
80  auto endLayTreeIter = m_layerTrees.end();
81  for ( ; layTreeIter != endLayTreeIter; delete (layTreeIter->second), ++layTreeIter) {}
82  // delete the layer per event TTree
83  layTreeIter = m_layerFullTrees.begin();
84  endLayTreeIter = m_layerFullTrees.end();
85  for ( ; layTreeIter != endLayTreeIter; delete (layTreeIter->second), ++layTreeIter) {}
86  }
87 
88  if (m_surfaceValidation) {
89  // finalize the Hit Tree
90  auto surfTreeIter = m_surfaceTrees.begin();
91  auto endSurfTreeIter = m_surfaceTrees.end();
92  for ( ; surfTreeIter != endSurfTreeIter; delete (surfTreeIter->second), ++surfTreeIter) {}
93  }
94 }

Member Function Documentation

◆ bookValidationTree()

void Trk::MaterialMapper::bookValidationTree ( )
private

Validation : book the Tree.

Definition at line 616 of file MaterialMapper.cxx.

617 {
618 
619  ATH_MSG_INFO( "Booking the Validation Tree ... " );
620 
621  // (1) Main MaterialMapper TTree
622  // ------------- validation section ------------------------------------------
624 
625  // position coordinates of the update
626  m_validationTree->Branch("Eta", &m_averageEta, "averageEta/F");
627  m_validationTree->Branch("Phi", &m_averagePhi, "averagePhiF");
628  m_validationTree->Branch("Path", &m_mappedPath, "path/F");
629  m_validationTree->Branch("PathInX0", &m_mappedPathInX0, "pathInX0/F");
630  m_validationTree->Branch("PathInL0", &m_mappedPathInL0, "pathInL0/F");
631  m_validationTree->Branch("PathRho", &m_mappedPathRho, "pathRho/F");
632  m_validationTree->Branch("PathZARho", &m_mappedPathZARho, "pathZARho/F");
633  m_validationTree->Branch("UnmappedPathInX0", &m_unmappedPathInX0, "unmappedPathInX0/F");
634  m_validationTree->Branch("MaterialSteps", &m_materialSteps, "steps/I");
635  m_validationTree->Branch("Mapped", m_mapped, "mapped[steps]/I");
636  m_validationTree->Branch("MaterialAccumPathInX0", m_materialAccumPathInX0, "materialAccumPinX0[steps]/F");
637  m_validationTree->Branch("MaterialAccumPathZARho", m_materialAccumPathZARho, "materialAccumPZARho[steps]/F");
638  m_validationTree->Branch("MaterialStepPath", m_materialStepPath, "materialStepPath[steps]/F");
639  m_validationTree->Branch("MaterialStepX0", m_materialStepX0, "materialStepX0[steps]/F");
640  m_validationTree->Branch("MaterialStepL0", m_materialStepL0, "materialStepL0[steps]/F");
641  m_validationTree->Branch("MaterialStepZ", m_materialStepZ, "materialStepZ[steps]/F");
642  m_validationTree->Branch("MaterialStepA", m_materialStepA, "materialStepA[steps]/F");
643  m_validationTree->Branch("MaterialStepRho", m_materialStepRho, "materialStepRho[steps]/F");
644  m_validationTree->Branch("MaterialStepPositionX", m_materialStepPositionX , "materialStepX[steps]/F");
645  m_validationTree->Branch("MaterialStepPositionY", m_materialStepPositionY , "materialStepY[steps]/F");
646  m_validationTree->Branch("MaterialStepPositionZ", m_materialStepPositionZ , "materialStepZ[steps]/F");
647  m_validationTree->Branch("MaterialStepPositionR", m_materialStepPositionR , "materialStepR[steps]/F");
648  m_validationTree->Branch("MaterialProjPositionX", m_materialProjPositionX , "materialProjX[steps]/F");
649  m_validationTree->Branch("MaterialProjPositionY", m_materialProjPositionY , "materialProjY[steps]/F");
650  m_validationTree->Branch("MaterialProjPositionZ", m_materialProjPositionZ , "materialProjZ[steps]/F");
651  m_validationTree->Branch("MaterialProjPositionR", m_materialProjPositionR , "materialProjR[steps]/F");
652  m_validationTree->Branch("MaterialProjDistance", m_materialProjDistance , "materialProjD[steps]/F");
653 
654  // now register the Tree
655  if (m_histSvc->regTree(m_validationTreeFolder.c_str(), m_validationTree).isFailure()) {
656  ATH_MSG_ERROR("initialize() Could not register the validation Tree -> Switching ValidationMode Off !" );
657  delete m_validationTree; m_validationTree = nullptr;
658  return;
659  }
660 
661  ATH_MSG_INFO( " ... successful." );
662 
663 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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  }

◆ DeclareInterfaceID()

Trk::IMaterialMapper::DeclareInterfaceID ( IMaterialMapper  ,
,
 
)
inherited

Creates the InterfaceID and interfaceID() method.

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ finalize()

StatusCode Trk::MaterialMapper::finalize ( )

AlgTool finalize method.

Definition at line 114 of file MaterialMapper.cxx.

115 {
116  ATH_MSG_INFO( "finalize() successful" );
117  return StatusCode::SUCCESS;
118 }

◆ finalizeLayerHits()

void Trk::MaterialMapper::finalizeLayerHits ( ) const
private

Finalize the SingleLayer Steps.

Definition at line 294 of file MaterialMapper.cxx.

295 {
296 
297  ATH_MSG_VERBOSE( "finalizeEvent() on Layer hits " );
298 
299  for (size_t iltm = 0; iltm < 2; ++iltm) {
300  // loop over all layer Tree objects and fill them
301  auto layObjIter = iltm ? m_layerFullTrees.begin() : m_layerTrees.begin();
302  auto endIter = iltm ? m_layerFullTrees.end() : m_layerTrees.end();
303  // do the loop
304  for ( ; layObjIter != endIter; ++layObjIter ) {
305 
306  Trk::LayerTreeObject* layTreeObj = layObjIter->second;
307 
308  if (!layTreeObj) continue;
309 
310  // get the number of single hits
311  int hits = (*layTreeObj).densedHits;
312 
313  if ((*layTreeObj).pathInX0 > 0.) {
314  if (hits>1) {
315  (*layTreeObj).densedHitX /= hits;
316  (*layTreeObj).densedHitY /= hits;
317  (*layTreeObj).densedHitZ /= hits;
318  (*layTreeObj).densedHitR /= hits;
319  (*layTreeObj).densedHitPhi /= hits;
320  (*layTreeObj).densedHitTheta /= hits;
321  (*layTreeObj).correctionFactor /= hits;
322  (*layTreeObj).A /= (*layTreeObj).rho;
323  (*layTreeObj).Z /= (*layTreeObj).rho;
324  (*layTreeObj).rho /= (*layTreeObj).path;
325  }
326  // fill the layer Tree Object
327  (*layTreeObj).tree->Fill();
328  }
329  // reset
330  (*layTreeObj).layerHits = 0;
331  (*layTreeObj).path = 0.;
332  (*layTreeObj).pathInX0 = 0.;
333  (*layTreeObj).pathInL0 = 0.;
334  (*layTreeObj).densedHits = 0;
335  (*layTreeObj).densedHitX = 0.;
336  (*layTreeObj).densedHitY = 0.;
337  (*layTreeObj).densedHitZ = 0.;
338  (*layTreeObj).densedHitR = 0.;
339  (*layTreeObj).densedHitPhi = 0.;
340  (*layTreeObj).densedHitTheta = 0.;
341  (*layTreeObj).correctionFactor = 0.;
342  (*layTreeObj).A = 0.;
343  (*layTreeObj).Z = 0.;
344  (*layTreeObj).rho = 0.;
345  }
346  }
347 }

◆ finalizeSurfaceHits()

void Trk::MaterialMapper::finalizeSurfaceHits ( ) const
private

Finalize the SingleLayer Steps.

Definition at line 381 of file MaterialMapper.cxx.

382 {
383 
384  ATH_MSG_VERBOSE( "finalizeEvent() on Surface hits " );
385 
386  // loop over all layer Tree objects and fill them
387  auto surfObjIter = m_surfaceTrees.begin();
388  auto endIter = m_surfaceTrees.end();
389  // do the loop
390  for ( ; surfObjIter != endIter; ++surfObjIter ) {
391  Trk::SurfaceTreeObject* surfTreeObj = surfObjIter->second;
392  // get the number of single hits
393  int hits = (*surfTreeObj).surfaceHits;
394  // fill only if hits have been there
395  if ((*surfTreeObj).pathInX0 > 0.) {
396  if (hits>1) {
397  (*surfTreeObj).loc1 /= hits;
398  (*surfTreeObj).loc2 /= hits;
399  (*surfTreeObj).eta /= hits;
400  (*surfTreeObj).correctionFactor /= hits;
401  (*surfTreeObj).A /= hits;
402  (*surfTreeObj).Z /= hits;
403  (*surfTreeObj).rho /= hits;
404  }
405  // fill the tree
406  (*surfTreeObj).tree->Fill();
407  }
408  // reset
409  (*surfTreeObj).loc1 = 0.;
410  (*surfTreeObj).loc2 = 0.;
411  (*surfTreeObj).eta = 0.;
412 
413  (*surfTreeObj).correctionFactor = 0.;
414  (*surfTreeObj).path = 0.;
415  (*surfTreeObj).pathInX0 = 0.;
416  (*surfTreeObj).pathInL0 = 0.;
417  (*surfTreeObj).rho = 0.;
418 
419  (*surfTreeObj).surfaceHits = 0;
420 
421  }
422 }

◆ finalizeVolumeHits()

void Trk::MaterialMapper::finalizeVolumeHits ( bool  mapped = true) const
private

Finalize the Volume Steps.

Definition at line 206 of file MaterialMapper.cxx.

207 {
208  ATH_MSG_VERBOSE( "finalizeEvent() on Volume hits " );
209 
210  auto volTreeIter = mapped ? m_volumeTrees.begin() : m_volumeTreesUnmapped.begin();
211  auto endVolTreeIter = mapped ? m_volumeTrees.end() : m_volumeTreesUnmapped.end();
212 
213  // do the loop
214  for ( ; volTreeIter != endVolTreeIter; ++volTreeIter ) {
215 
216  Trk::VolumeTreeObject* volTreeObj = volTreeIter->second;
217 
218  if (!volTreeObj) continue;
219 
220  if ((*volTreeObj).path > 0.) {
221  // spatial mapping
222  (*volTreeObj).eta = m_averageEta;
223  (*volTreeObj).phi = m_averagePhi;
224  // fill the volume Tree Object
225  (*volTreeObj).tree->Fill();
226  }
227  // reset
228  (*volTreeObj).eta = 0.;
229  (*volTreeObj).phi = 0.;
230  (*volTreeObj).path = 0.;
231  (*volTreeObj).pathInX0 = 0.;
232  (*volTreeObj).pathInL0 = 0.;
233  (*volTreeObj).pathZARho = 0.;
234 
235  }
236 }

◆ handle()

void Trk::MaterialMapper::handle ( const Incident &  inc)

Handle the incident from the incident service.

Definition at line 583 of file MaterialMapper.cxx.

583  {
584  // check the incident type
585  if ( inc.type() == IncidentType::EndEvent && m_materialSteps){
586  // check if the hit collection already contains:
587  ATH_MSG_VERBOSE("EndEvent incident caught, finalize histogramns");
588  // average Eta / Phi
591  // (a) the volume validation
592  finalizeVolumeHits(true); // trees with mapped hits
593  finalizeVolumeHits(false); // trees with unmapped hits
594  // (b) the layer validation
596  // (c) the surface validation (reference material)
598  // fill the main TTree & reset
599  m_validationTree->Fill();
600  // initialize the eta/phi
601  m_averageEta = 0.;
602  m_averagePhi = 0.;
603  // initialize the rest
604  m_materialSteps = 0;
605  m_mappedPath = 0.;
606  m_mappedPathInX0 = 0.;
607  m_mappedPathInL0 = 0.;
608  m_mappedPathRho = 0.;
609  m_mappedPathZARho = 0.;
610  // increate counter
612  }
613  }

◆ initialize()

StatusCode Trk::MaterialMapper::initialize ( )

AlgTool initialize method.

Definition at line 98 of file MaterialMapper.cxx.

99 {
100 
101  // Athena/Gaudi framework
102  ATH_CHECK( m_incidentSvc.retrieve() );
103  ATH_CHECK( m_histSvc.retrieve() );
104 
105  // register to the incident service: EndEvent for histogram filling and reset
106  m_incidentSvc->addListener( this, IncidentType::EndEvent);
107 
108  // book the Tree
110  return StatusCode::SUCCESS;
111 }

◆ inputHandles()

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

◆ layerTreeObject()

Trk::LayerTreeObject * Trk::MaterialMapper::layerTreeObject ( const Layer lay,
bool  full = false 
) const
private

find (&&,||) create the LayerTreeObject

Definition at line 474 of file MaterialMapper.cxx.

475 {
476  if (!lay.layerIndex().value()) return nullptr;
477 
478  // try to find the histogram
479 
480  Trk::LayerTreeObject* layTreeObj = nullptr;
481 
482  if (full) {
483  auto it = m_layerFullTrees.find(&lay);
484  if (it != m_layerFullTrees.end()) {
485  return it->second;
486  }
487  }
488  else {
489  auto it = m_layerTrees.find(&lay);
490  if (it != m_layerTrees.end()) {
491  return it->second;
492  }
493  }
494 
495  {
496  // check if it is a boundary MaterialLayer
497  const Trk::MaterialLayer* mLayer = dynamic_cast<const Trk::MaterialLayer*>(&lay);
498  if (mLayer)
499  ATH_MSG_INFO("MaterialLayer from BoundarySurface detected.");
500  // get the TrackingVolume
501  const Trk::TrackingVolume* enclosingVolume = lay.enclosingTrackingVolume();
502  TString tvolName = (enclosingVolume) ? enclosingVolume->volumeName() : "BoundaryLayers";
503  tvolName.ReplaceAll("::","_");
504 
505  TString treeName = tvolName;
506  treeName += "_";
508 
509  TString layerType = (lay.surfaceRepresentation().type() == Trk::SurfaceType::Cylinder) ?
510  "CylinderLayer_" : "DiscLayer_";
511  if (full) treeName += "full_";
512  treeName += layerType;
513  if (mLayer) treeName += "boundary_";
514  treeName += lay.layerIndex().value();
515 
516  TString treeTitle = "TrackingVolume :";
517  treeTitle += tvolName;
518 
519  TString treeRegName = "/val/";
520  treeRegName += treeName;
521 
522  ATH_MSG_INFO( "No Tree found for Layer " << lay.layerIndex().value() << " in Volume '" << tvolName << "'.");
523  ATH_MSG_INFO( " -> Booking it now with register name : " << treeRegName.Data() );
524 
525  layTreeObj = new Trk::LayerTreeObject(treeName, treeTitle);
526  if (full) m_layerFullTrees.insert(std::make_pair(&lay,layTreeObj));
527  else m_layerTrees.insert(std::make_pair(&lay,layTreeObj));
528 
529  // now register the Tree
530  if (m_histSvc->regTree(treeRegName.Data(), (*layTreeObj).tree).isFailure()) {
531  ATH_MSG_ERROR( "initialize() Could not register the validation Tree -> Switching Tree output for this layer off !" );
532  delete layTreeObj; layTreeObj = nullptr;
533  }
534 
535  }
536 
537  return layTreeObj;
538 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::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< AlgTool > >::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.

◆ recordLayerHit()

void Trk::MaterialMapper::recordLayerHit ( const AssociatedMaterial amhit,
bool  full = false 
) const
virtual

Record material hit - if various hits per uniform layer are recorded, or if you want to record one full hit.

Implements Trk::IMaterialMapper.

Definition at line 239 of file MaterialMapper.cxx.

240 {
241 
242  if (m_processedEvents >= m_maxMappingEvents) return;
243 
244  const Trk::Layer* lay = amhit.associatedLayer();
245  if (m_layerValidation && lay) {
246  // try to find the histogram
247  Trk::LayerTreeObject* layTreeObj = layerTreeObject(*lay,full);
248  if (layTreeObj
249  && (*layTreeObj).layerHits < TRKDETDESCRTOOLS_MAXLAYERHITS
250  && amhit.steplengthInX0() > 0.)
251  {
252 
253  const Amg::Vector3D& pos = amhit.materialPosition();
254 
255  // hit positions
256  double posX = pos.x();
257  double posY = pos.y();
258  double posZ = pos.z();
259  double posR = pos.perp();
260  double posEta = pos.eta();
261 
262  // fill the hit position --------------------
263  (*layTreeObj).hitPositionX[(*layTreeObj).layerHits] = posX;
264  (*layTreeObj).hitPositionY[(*layTreeObj).layerHits] = posY;
265  (*layTreeObj).hitPositionZ[(*layTreeObj).layerHits] = posZ;
266  (*layTreeObj).hitPositionR[(*layTreeObj).layerHits] = posR;
267  (*layTreeObj).hitPositionEta[(*layTreeObj).layerHits] = posEta;
268 
269  // increase the layer Hits
270  ++(*layTreeObj).layerHits;
271  ++(*layTreeObj).densedHits;
272 
273  // fill the densed Hit position ---------------
274  (*layTreeObj).densedHitX += posX;
275  (*layTreeObj).densedHitY += posY;
276  (*layTreeObj).densedHitZ += posZ;
277  (*layTreeObj).densedHitR += posR;
278  (*layTreeObj).densedHitPhi += pos.phi();
279  (*layTreeObj).densedHitTheta += pos.theta();
280 
281  // fill the correction factor ------------------
282  (*layTreeObj).correctionFactor += amhit.correctionFactor();
283  (*layTreeObj).path += amhit.steplength();
284  (*layTreeObj).pathInX0 += amhit.steplengthInX0();
285  (*layTreeObj).pathInL0 += amhit.steplengthInL0();
286  (*layTreeObj).A += amhit.A() * amhit.rho() * amhit.steplength();
287  (*layTreeObj).Z += amhit.Z() * amhit.rho() * amhit.steplength();
288  (*layTreeObj).rho += amhit.rho() * amhit.steplength();
289 
290  }
291  }
292 }

◆ recordMaterialHit()

void Trk::MaterialMapper::recordMaterialHit ( const AssociatedMaterial amhit,
const Amg::Vector3D projectedPosition 
) const
virtual

Record material hit along the recording.

Implements Trk::IMaterialMapper.

Definition at line 120 of file MaterialMapper.cxx.

121 {
122 
123  if (m_processedEvents >= m_maxMappingEvents) return;
124 
125  // ----------------------------------- Recording Hits section --------------------------------
126  const Amg::Vector3D& position = amhit.materialPosition();
127 
128  // get the tracking volume
129  const Trk::TrackingVolume* tvol = amhit.associatedTrackingVolume();
130  const Trk::Layer* lay = amhit.associatedLayer();
131 
132  if (!tvol) {
133  ATH_MSG_WARNING("Could not associate TrackingVolume to material step!");
134  return;
135  }
136 
137  // ----------------------------------- The Material Validation code --------------------------
138  const Trk::TrackingVolume* itvol = tvol;
139  while (itvol) {
140  // get the volume tree object
141  ATH_MSG_VERBOSE( "getting volTreeObj for: " << itvol->volumeName() << " at: " << itvol );
142  Trk::VolumeTreeObject* volTreeObj = volumeTreeObject(lay,itvol);
143  if (volTreeObj) {
144  // add the quantities
145  (*volTreeObj).path += amhit.steplength();
146  (*volTreeObj).pathInX0 += amhit.steplengthInX0();
147  (*volTreeObj).pathInL0 += amhit.steplengthInL0();
148  if(amhit.A() != 0.0) {
149  (*volTreeObj).pathZARho += (amhit.Z()/amhit.A())*amhit.rho()*amhit.steplength();
150  }
151  } else
152  ATH_MSG_WARNING( "Cannot find/create VolumeTreeObject for volume '" << itvol->volumeName() << "'." );
153  itvol = itvol->getMotherVolume();
154  if (itvol) ATH_MSG_VERBOSE( "motherVolume found: " << itvol->volumeName() );
155  }
156 
157  // -------------------------------- main tree section -----------------------------------------
158  // eta / phi
159  m_averageEta += position.eta();
160  m_averagePhi += position.phi();
161  // effectively crossed Z/A*rho
162  double steplength = amhit.steplength();
163  // fill the variables for spatial information & event characteristics
164  if (lay) {
165  m_mappedPath += steplength;
166  m_mappedPathInX0 += amhit.steplengthInX0();
167  m_mappedPathInL0 += amhit.steplengthInL0();
168  m_mappedPathRho += amhit.rho()*steplength;
169  if(amhit.A() != 0.0) {
170  m_mappedPathZARho += (amhit.Z()/amhit.A())*amhit.rho()*steplength;
171  }
172  ATH_MSG_VERBOSE("[ MaterialMapper ] Accumulated Path in Rho (*Z/A) = " << m_mappedPathRho << " ( " << m_mappedPathZARho << " )");
173  } else
174  m_unmappedPathInX0 += amhit.steplengthInX0();
175 
176  // mapping information
177  m_mapped[m_materialSteps] = lay ? lay->layerIndex().value() : 0;
178  // the position & step information
181  m_materialStepPath[m_materialSteps] = steplength;
182  m_materialStepX0[m_materialSteps] = amhit.x0();
183  m_materialStepL0[m_materialSteps] = amhit.l0();
184  m_materialStepA[m_materialSteps] = amhit.A();
185  m_materialStepZ[m_materialSteps] = amhit.Z();
186  m_materialStepRho[m_materialSteps] = amhit.rho();
190  m_materialStepPositionR[m_materialSteps] = position.perp();
191  // record the projected position as well
192  m_materialProjPositionX[m_materialSteps] = projectedPosition.x();
193  m_materialProjPositionY[m_materialSteps] = projectedPosition.y();
194  m_materialProjPositionZ[m_materialSteps] = projectedPosition.z();
195  m_materialProjPositionR[m_materialSteps] = projectedPosition.perp();
196  m_materialProjDistance[m_materialSteps] = (position-projectedPosition).mag();
197  // and increase the number of steps
198  ++m_materialSteps;
199 
200 
201  // record the layer hit
202  if (m_layerValidation) recordLayerHit(amhit);
203 }

◆ recordSurfaceHit()

void Trk::MaterialMapper::recordSurfaceHit ( const Amg::Vector2D locpos,
const AssociatedMaterial amhit 
) const
virtual

Record material hit on a surface.

Implements Trk::IMaterialMapper.

Definition at line 350 of file MaterialMapper.cxx.

352 {
353 
354  if (m_processedEvents >= m_maxMappingEvents) return;
355 
356  const Trk::Layer* lay = amhit.associatedLayer();
357  if (m_surfaceValidation && lay) {
358  // try to find the histogram
359  Trk::SurfaceTreeObject* surfTreeObj = surfaceTreeObject(*lay);
360  // now fill
361  if (surfTreeObj) {
362  // fill it
363  (*surfTreeObj).loc1 += locpos[0];
364  (*surfTreeObj).loc2 += locpos[1];
365  (*surfTreeObj).eta += amhit.materialPosition().eta();
366  (*surfTreeObj).correctionFactor += amhit.correctionFactor();
367  (*surfTreeObj).path += amhit.steplength();
368  (*surfTreeObj).pathInX0 += amhit.steplengthInX0();
369  (*surfTreeObj).pathInL0 += amhit.steplengthInL0();
370  (*surfTreeObj).A += amhit.A()*amhit.steplength()*amhit.rho();
371  (*surfTreeObj).Z += amhit.Z()*amhit.steplength()*amhit.rho();
372  (*surfTreeObj).rho += amhit.rho()*amhit.steplength();
373  // increase the surface hits
374  ++(*surfTreeObj).surfaceHits;
375 
376  }
377  }
378 }

◆ 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< AlgTool > >::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< AlgTool > >::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  }

◆ surfaceTreeObject()

Trk::SurfaceTreeObject * Trk::MaterialMapper::surfaceTreeObject ( const Layer lay) const
private

find (&&,||) create the LayerTreeObject

Definition at line 541 of file MaterialMapper.cxx.

542 {
543  // try to find the histogram
544  auto endIter = m_surfaceTrees.end();
545  auto findIter = m_surfaceTrees.end();
546 
547  Trk::SurfaceTreeObject* surfTreeObj = nullptr;
548 
549  findIter = m_surfaceTrees.find(&lay);
550  if (findIter == endIter) {
551  // get the TrackingVolume
552  const Trk::TrackingVolume* enclosingVolume = lay.enclosingTrackingVolume();
553  TString volumeName = (enclosingVolume) ? enclosingVolume->volumeName() : "Unknown";
554 
555  TString treeName = m_surfaceTreePrefix;
556  treeName += lay.layerIndex().value();
557 
558  TString treeTitle = "TrackingVolume :";
559  treeTitle += volumeName;
560 
561  TString treeRegName = "/val/";
562  treeRegName += treeName;
563 
564  ATH_MSG_INFO( "No Tree found for Layer " << lay.layerIndex().value()
565  << " in Volume '" << volumeName << "'." );
566  ATH_MSG_INFO( " -> Booking it now with register name : " << treeRegName.Data() );
567 
568  surfTreeObj = new Trk::SurfaceTreeObject(treeName, treeTitle);
569  m_surfaceTrees.insert(std::make_pair(&lay,surfTreeObj));
570 
571  // now register the Tree
572  if (m_histSvc->regTree(treeRegName.Data(), (*surfTreeObj).tree).isFailure()) {
573  ATH_MSG_INFO( "initialize() Could not register the validation Tree -> Switching Tree output for this surface off !" );
574  delete surfTreeObj; surfTreeObj = nullptr;
575  }
576 
577  } else // a tree is found
578  surfTreeObj = findIter->second;
579  return surfTreeObj;
580 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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  }

◆ volumeTreeObject()

Trk::VolumeTreeObject * Trk::MaterialMapper::volumeTreeObject ( const Layer lay = 0,
const TrackingVolume tvol = 0 
) const
private

find (&&,||) create a VolumeTreObject

Definition at line 425 of file MaterialMapper.cxx.

426 {
427  // try to find the histogram
428  auto endIter = lay ? m_volumeTrees.end() : m_volumeTreesUnmapped.end();
429  auto findIter = lay ? m_volumeTrees.end() : m_volumeTreesUnmapped.end();
430 
431  Trk::VolumeTreeObject* tvolTreeObj = nullptr;
432 
433  findIter = lay ? m_volumeTrees.find(tvol) : m_volumeTreesUnmapped.find(tvol);
434 
435  if (findIter == endIter) {
436 
437  TString tvolName = tvol->volumeName();
438  tvolName.ReplaceAll("::","_");
439 
440  TString treeName = tvolName;
441  treeName += "_";
443  if (!lay) treeName += "_UNMAPPED";
444 
445  TString treeTitle = "TrackingVolume : ";
446  treeTitle += tvolName;
447  if (!lay) treeTitle += " - UNMAPPED";
448 
449  TString treeRegName = "/val/";
450  treeRegName += treeName;
451 
452  ATH_MSG_INFO( "No Tree found for " << treeTitle );
453  ATH_MSG_INFO( " -> Booking it now with register name : " << treeRegName.Data() );
454 
455  tvolTreeObj = new Trk::VolumeTreeObject(treeName, treeTitle);
456  if (lay)
457  m_volumeTrees.insert(std::make_pair(tvol,tvolTreeObj));
458  else
459  m_volumeTreesUnmapped.insert(std::make_pair(tvol,tvolTreeObj));
460 
461  // now register the Tree
462  if (m_histSvc->regTree(treeRegName.Data(), (*tvolTreeObj).tree).isFailure()) {
463  ATH_MSG_ERROR( "initialize() Could not register the validation Tree -> Switching Tree output for this volume off !" );
464  delete tvolTreeObj; tvolTreeObj = nullptr;
465  }
466 
467  } else // a tree is found
468  tvolTreeObj = findIter->second;
469 
470  return tvolTreeObj;
471 }

Member Data Documentation

◆ m_averageEta

float Trk::MaterialMapper::m_averageEta
mutableprivate

average eta

Definition at line 280 of file MaterialMapper.h.

◆ m_averagePhi

float Trk::MaterialMapper::m_averagePhi
mutableprivate

average ogu

Definition at line 281 of file MaterialMapper.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_histSvc

ServiceHandle<ITHistSvc> Trk::MaterialMapper::m_histSvc
private

Definition at line 261 of file MaterialMapper.h.

◆ m_incidentSvc

ServiceHandle<IIncidentSvc> Trk::MaterialMapper::m_incidentSvc
private

Definition at line 260 of file MaterialMapper.h.

◆ m_layerFullTrees

std::map< const Trk::Layer*, LayerTreeObject* > Trk::MaterialMapper::m_layerFullTrees
mutableprivate

Definition at line 317 of file MaterialMapper.h.

◆ m_layerTreePrefix

std::string Trk::MaterialMapper::m_layerTreePrefix
private

Definition at line 315 of file MaterialMapper.h.

◆ m_layerTrees

std::map< const Trk::Layer*, LayerTreeObject* > Trk::MaterialMapper::m_layerTrees
mutableprivate

Definition at line 316 of file MaterialMapper.h.

◆ m_layerValidation

bool Trk::MaterialMapper::m_layerValidation
private

Definition at line 314 of file MaterialMapper.h.

◆ m_mapped

int Trk::MaterialMapper::m_mapped[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

mapped or not mapped

Definition at line 288 of file MaterialMapper.h.

◆ m_mappedPath

float Trk::MaterialMapper::m_mappedPath
mutableprivate

total mapped path

Definition at line 282 of file MaterialMapper.h.

◆ m_mappedPathInL0

float Trk::MaterialMapper::m_mappedPathInL0
mutableprivate

total mapped path in L0

Definition at line 284 of file MaterialMapper.h.

◆ m_mappedPathInX0

float Trk::MaterialMapper::m_mappedPathInX0
mutableprivate

total mapped path in X0

Definition at line 283 of file MaterialMapper.h.

◆ m_mappedPathRho

float Trk::MaterialMapper::m_mappedPathRho
mutableprivate

total mapped path times rho

Definition at line 285 of file MaterialMapper.h.

◆ m_mappedPathZARho

float Trk::MaterialMapper::m_mappedPathZARho
mutableprivate

total mapped path times (Z/A)*rho

Definition at line 286 of file MaterialMapper.h.

◆ m_materialAccumPathInX0

float Trk::MaterialMapper::m_materialAccumPathInX0[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

accumulated path length in x0

Definition at line 289 of file MaterialMapper.h.

◆ m_materialAccumPathZARho

float Trk::MaterialMapper::m_materialAccumPathZARho[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

accumulated path length times (Z/A)*rho

Definition at line 290 of file MaterialMapper.h.

◆ m_materialAssociationType

int Trk::MaterialMapper::m_materialAssociationType
private

Definition at line 263 of file MaterialMapper.h.

◆ m_materialProjDistance

float Trk::MaterialMapper::m_materialProjDistance[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

the distance to the projected hit

Definition at line 305 of file MaterialMapper.h.

◆ m_materialProjPositionR

float Trk::MaterialMapper::m_materialProjPositionR[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

r value of the material recording when assigned to layer

Definition at line 304 of file MaterialMapper.h.

◆ m_materialProjPositionX

float Trk::MaterialMapper::m_materialProjPositionX[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

x position of the material recording when assigned to layer

Definition at line 301 of file MaterialMapper.h.

◆ m_materialProjPositionY

float Trk::MaterialMapper::m_materialProjPositionY[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

y position of the material recording when assigned to layer

Definition at line 302 of file MaterialMapper.h.

◆ m_materialProjPositionZ

float Trk::MaterialMapper::m_materialProjPositionZ[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

z position of the material recording when assigned to layer

Definition at line 303 of file MaterialMapper.h.

◆ m_materialStepA

float Trk::MaterialMapper::m_materialStepA[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

step A

Definition at line 295 of file MaterialMapper.h.

◆ m_materialStepL0

float Trk::MaterialMapper::m_materialStepL0[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

step l0

Definition at line 293 of file MaterialMapper.h.

◆ m_materialStepPath

float Trk::MaterialMapper::m_materialStepPath[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

step path

Definition at line 291 of file MaterialMapper.h.

◆ m_materialStepPositionR

float Trk::MaterialMapper::m_materialStepPositionR[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

r value of the material recording

Definition at line 300 of file MaterialMapper.h.

◆ m_materialStepPositionX

float Trk::MaterialMapper::m_materialStepPositionX[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

x position of the material recording

Definition at line 297 of file MaterialMapper.h.

◆ m_materialStepPositionY

float Trk::MaterialMapper::m_materialStepPositionY[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

y position of the material recording

Definition at line 298 of file MaterialMapper.h.

◆ m_materialStepPositionZ

float Trk::MaterialMapper::m_materialStepPositionZ[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

z position of the material recording

Definition at line 299 of file MaterialMapper.h.

◆ m_materialStepRho

float Trk::MaterialMapper::m_materialStepRho[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

step rho

Definition at line 296 of file MaterialMapper.h.

◆ m_materialSteps

int Trk::MaterialMapper::m_materialSteps
mutableprivate

number of update positions

Definition at line 279 of file MaterialMapper.h.

◆ m_materialStepX0

float Trk::MaterialMapper::m_materialStepX0[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

step x0

Definition at line 292 of file MaterialMapper.h.

◆ m_materialStepZ

float Trk::MaterialMapper::m_materialStepZ[TRKDETDESCRTOOLS_MAXSTEPS] {}
mutableprivate

step Z

Definition at line 294 of file MaterialMapper.h.

◆ m_maxMappingEvents

unsigned int Trk::MaterialMapper::m_maxMappingEvents
private

Definition at line 266 of file MaterialMapper.h.

◆ m_processedEvents

unsigned int Trk::MaterialMapper::m_processedEvents
mutableprivate

Definition at line 267 of file MaterialMapper.h.

◆ m_surfaceTreePrefix

std::string Trk::MaterialMapper::m_surfaceTreePrefix
private

Definition at line 321 of file MaterialMapper.h.

◆ m_surfaceTrees

std::map< const Trk::Layer*, SurfaceTreeObject* > Trk::MaterialMapper::m_surfaceTrees
mutableprivate

Definition at line 322 of file MaterialMapper.h.

◆ m_surfaceValidation

bool Trk::MaterialMapper::m_surfaceValidation
private

Definition at line 320 of file MaterialMapper.h.

◆ m_totalMaterialTree

std::string Trk::MaterialMapper::m_totalMaterialTree
private

Definition at line 269 of file MaterialMapper.h.

◆ m_unmappedPathInX0

float Trk::MaterialMapper::m_unmappedPathInX0
mutableprivate

total path in x0 in these events lost

Definition at line 287 of file MaterialMapper.h.

◆ m_validationTree

TTree* Trk::MaterialMapper::m_validationTree
private

The validation tree.

Definition at line 272 of file MaterialMapper.h.

◆ m_validationTreeDescription

std::string Trk::MaterialMapper::m_validationTreeDescription
private

validation tree description - second argument in TTree

Definition at line 274 of file MaterialMapper.h.

◆ m_validationTreeFolder

std::string Trk::MaterialMapper::m_validationTreeFolder
private

stream/folder to for the TTree to be written out

Definition at line 275 of file MaterialMapper.h.

◆ m_validationTreeName

std::string Trk::MaterialMapper::m_validationTreeName
private

validation tree name - to be accessed by this from root

Definition at line 273 of file MaterialMapper.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_volumeTreePrefix

std::string Trk::MaterialMapper::m_volumeTreePrefix
private

Definition at line 309 of file MaterialMapper.h.

◆ m_volumeTrees

std::map< const Trk::TrackingVolume*, VolumeTreeObject* > Trk::MaterialMapper::m_volumeTrees
mutableprivate

Definition at line 310 of file MaterialMapper.h.

◆ m_volumeTreesUnmapped

std::map< const Trk::TrackingVolume*, VolumeTreeObject* > Trk::MaterialMapper::m_volumeTreesUnmapped
mutableprivate

Definition at line 311 of file MaterialMapper.h.

◆ m_volumeValidation

bool Trk::MaterialMapper::m_volumeValidation
private

Definition at line 308 of file MaterialMapper.h.


The documentation for this class was generated from the following files:
Trk::MaterialMapper::m_surfaceTreePrefix
std::string m_surfaceTreePrefix
Definition: MaterialMapper.h:321
Trk::MaterialMapper::m_volumeTreesUnmapped
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTreesUnmapped
Definition: MaterialMapper.h:311
Trk::MaterialMapper::m_layerTrees
std::map< const Trk::Layer *, LayerTreeObject * > m_layerTrees
Definition: MaterialMapper.h:316
Trk::MaterialMapper::finalizeSurfaceHits
void finalizeSurfaceHits() const
Finalize the SingleLayer Steps.
Definition: MaterialMapper.cxx:381
Trk::MaterialMapper::m_materialStepX0
float m_materialStepX0[TRKDETDESCRTOOLS_MAXSTEPS]
step x0
Definition: MaterialMapper.h:292
Trk::MaterialMapper::m_validationTreeDescription
std::string m_validationTreeDescription
validation tree description - second argument in TTree
Definition: MaterialMapper.h:274
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
Trk::MaterialMapper::m_mappedPathInX0
float m_mappedPathInX0
total mapped path in X0
Definition: MaterialMapper.h:283
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::MaterialMapper::finalizeVolumeHits
void finalizeVolumeHits(bool mapped=true) const
Finalize the Volume Steps.
Definition: MaterialMapper.cxx:206
Trk::MaterialMapper::m_materialProjPositionX
float m_materialProjPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording when assigned to layer
Definition: MaterialMapper.h:301
Trk::MaterialMapper::m_volumeValidation
bool m_volumeValidation
Definition: MaterialMapper.h:308
Trk::MaterialMapper::m_materialStepPositionX
float m_materialStepPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording
Definition: MaterialMapper.h:297
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::MaterialMapper::m_validationTree
TTree * m_validationTree
The validation tree.
Definition: MaterialMapper.h:272
Trk::MaterialMapper::m_mappedPathRho
float m_mappedPathRho
total mapped path times rho
Definition: MaterialMapper.h:285
Trk::TrackingVolume::getMotherVolume
const TrackingVolume * getMotherVolume() const
Return the MotherVolume - if it exists.
Trk::MaterialMapper::m_histSvc
ServiceHandle< ITHistSvc > m_histSvc
Definition: MaterialMapper.h:261
skel.it
it
Definition: skel.GENtoEVGEN.py:396
Trk::MaterialMapper::bookValidationTree
void bookValidationTree()
Validation : book the Tree.
Definition: MaterialMapper.cxx:616
Trk::MaterialMapper::m_materialStepA
float m_materialStepA[TRKDETDESCRTOOLS_MAXSTEPS]
step A
Definition: MaterialMapper.h:295
Trk::MaterialMapper::m_volumeTreePrefix
std::string m_volumeTreePrefix
Definition: MaterialMapper.h:309
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
Trk::MaterialMapper::m_layerTreePrefix
std::string m_layerTreePrefix
Definition: MaterialMapper.h:315
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::MaterialMapper::m_materialStepZ
float m_materialStepZ[TRKDETDESCRTOOLS_MAXSTEPS]
step Z
Definition: MaterialMapper.h:294
beamspotman.posX
posX
Definition: beamspotman.py:1624
Trk::MaterialMapper::finalizeLayerHits
void finalizeLayerHits() const
Finalize the SingleLayer Steps.
Definition: MaterialMapper.cxx:294
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::SurfaceTreeObject
Definition: MaterialMapper.h:148
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::MaterialMapper::m_incidentSvc
ServiceHandle< IIncidentSvc > m_incidentSvc
Definition: MaterialMapper.h:260
Trk::MaterialMapper::m_materialAccumPathZARho
float m_materialAccumPathZARho[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length times (Z/A)*rho
Definition: MaterialMapper.h:290
Trk::MaterialMapper::m_materialStepRho
float m_materialStepRho[TRKDETDESCRTOOLS_MAXSTEPS]
step rho
Definition: MaterialMapper.h:296
Trk::MaterialMapper::m_layerFullTrees
std::map< const Trk::Layer *, LayerTreeObject * > m_layerFullTrees
Definition: MaterialMapper.h:317
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
Trk::MaterialMapper::layerTreeObject
LayerTreeObject * layerTreeObject(const Layer &lay, bool full=false) const
find (&&,||) create the LayerTreeObject
Definition: MaterialMapper.cxx:474
Trk::MaterialMapper::m_materialSteps
int m_materialSteps
number of update positions
Definition: MaterialMapper.h:279
Trk::MaterialMapper::m_maxMappingEvents
unsigned int m_maxMappingEvents
Definition: MaterialMapper.h:266
Trk::MaterialMapper::m_processedEvents
unsigned int m_processedEvents
Definition: MaterialMapper.h:267
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::MaterialMapper::m_materialStepPositionZ
float m_materialStepPositionZ[TRKDETDESCRTOOLS_MAXSTEPS]
z position of the material recording
Definition: MaterialMapper.h:299
TRKDETDESCRTOOLS_MAXLAYERHITS
#define TRKDETDESCRTOOLS_MAXLAYERHITS
Definition: MaterialMapper.h:26
Trk::MaterialMapper::m_unmappedPathInX0
float m_unmappedPathInX0
total path in x0 in these events lost
Definition: MaterialMapper.h:287
beamspotman.n
n
Definition: beamspotman.py:731
Trk::MaterialMapper::m_materialProjDistance
float m_materialProjDistance[TRKDETDESCRTOOLS_MAXSTEPS]
the distance to the projected hit
Definition: MaterialMapper.h:305
beamspotman.posZ
posZ
Definition: beamspotman.py:1624
Trk::MaterialMapper::m_materialStepPositionY
float m_materialStepPositionY[TRKDETDESCRTOOLS_MAXSTEPS]
y position of the material recording
Definition: MaterialMapper.h:298
Trk::MaterialMapper::m_mappedPathZARho
float m_mappedPathZARho
total mapped path times (Z/A)*rho
Definition: MaterialMapper.h:286
Trk::MaterialMapper::m_validationTreeFolder
std::string m_validationTreeFolder
stream/folder to for the TTree to be written out
Definition: MaterialMapper.h:275
dumpFileToPlots.treeName
string treeName
Definition: dumpFileToPlots.py:20
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::MaterialMapper::m_materialProjPositionZ
float m_materialProjPositionZ[TRKDETDESCRTOOLS_MAXSTEPS]
z position of the material recording when assigned to layer
Definition: MaterialMapper.h:303
Trk::LayerIndex::value
int value() const
layerIndex expressed in an integer
Definition: LayerIndex.h:71
Trk::MaterialMapper::surfaceTreeObject
SurfaceTreeObject * surfaceTreeObject(const Layer &lay) const
find (&&,||) create the LayerTreeObject
Definition: MaterialMapper.cxx:541
Trk::MaterialMapper::m_mappedPathInL0
float m_mappedPathInL0
total mapped path in L0
Definition: MaterialMapper.h:284
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::MaterialMapper::m_validationTreeName
std::string m_validationTreeName
validation tree name - to be accessed by this from root
Definition: MaterialMapper.h:273
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
Trk::MaterialMapper::m_surfaceValidation
bool m_surfaceValidation
Definition: MaterialMapper.h:320
Trk::TrackingVolume::volumeName
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
Trk::MaterialMapper::volumeTreeObject
VolumeTreeObject * volumeTreeObject(const Layer *lay=0, const TrackingVolume *tvol=0) const
find (&&,||) create a VolumeTreObject
Definition: MaterialMapper.cxx:425
Trk::LayerTreeObject
Definition: MaterialMapper.h:70
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::MaterialMapper::m_materialStepL0
float m_materialStepL0[TRKDETDESCRTOOLS_MAXSTEPS]
step l0
Definition: MaterialMapper.h:293
Trk::MaterialMapper::m_materialAccumPathInX0
float m_materialAccumPathInX0[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length in x0
Definition: MaterialMapper.h:289
Trk::MaterialMapper::recordLayerHit
void recordLayerHit(const AssociatedMaterial &amhit, bool full=false) const
Record material hit - if various hits per uniform layer are recorded, or if you want to record one fu...
Definition: MaterialMapper.cxx:239
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
find_data.full
full
Definition: find_data.py:27
Trk::MaterialMapper::m_totalMaterialTree
std::string m_totalMaterialTree
Definition: MaterialMapper.h:269
Trk::MaterialMapper::m_averagePhi
float m_averagePhi
average ogu
Definition: MaterialMapper.h:281
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
beamspotman.posY
posY
Definition: beamspotman.py:1624
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::MaterialMapper::m_mapped
int m_mapped[TRKDETDESCRTOOLS_MAXSTEPS]
mapped or not mapped
Definition: MaterialMapper.h:288
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::MaterialMapper::m_materialStepPath
float m_materialStepPath[TRKDETDESCRTOOLS_MAXSTEPS]
step path
Definition: MaterialMapper.h:291
Trk::VolumeTreeObject
Definition: MaterialMapper.h:40
Trk::MaterialMapper::m_materialStepPositionR
float m_materialStepPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording
Definition: MaterialMapper.h:300
Trk::MaterialMapper::m_surfaceTrees
std::map< const Trk::Layer *, SurfaceTreeObject * > m_surfaceTrees
Definition: MaterialMapper.h:322
Trk::SurfaceType::Cylinder
@ Cylinder
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
mapped
std::vector< std::string > mapped
Definition: hcg.cxx:51
Trk::MaterialMapper::m_materialProjPositionY
float m_materialProjPositionY[TRKDETDESCRTOOLS_MAXSTEPS]
y position of the material recording when assigned to layer
Definition: MaterialMapper.h:302
Trk::VolumeTreeObject::eta
float eta
Definition: MaterialMapper.h:44
Trk::MaterialLayer
Definition: MaterialLayer.h:37
Trk::MaterialMapper::m_mappedPath
float m_mappedPath
total mapped path
Definition: MaterialMapper.h:282
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Trk::MaterialMapper::m_averageEta
float m_averageEta
average eta
Definition: MaterialMapper.h:280
Trk::MaterialMapper::m_volumeTrees
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTrees
Definition: MaterialMapper.h:310
Trk::TrackingVolume
Definition: TrackingVolume.h:121
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:26
Trk::MaterialMapper::m_materialAssociationType
int m_materialAssociationType
Definition: MaterialMapper.h:263
Trk::MaterialMapper::m_layerValidation
bool m_layerValidation
Definition: MaterialMapper.h:314
fitman.k
k
Definition: fitman.py:528
Trk::MaterialMapper::m_materialProjPositionR
float m_materialProjPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording when assigned to layer
Definition: MaterialMapper.h:304
Trk::Layer
Definition: Layer.h:73
Trk::Layer::layerIndex
const LayerIndex & layerIndex() const
get the layerIndex