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
 
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 203 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 22 of file MaterialMapper.cxx.

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

◆ ~MaterialMapper()

Trk::MaterialMapper::~MaterialMapper ( )
virtual

Virtual destructor.

Definition at line 69 of file MaterialMapper.cxx.

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

Member Function Documentation

◆ bookValidationTree()

void Trk::MaterialMapper::bookValidationTree ( )
private

Validation : book the Tree.

Definition at line 633 of file MaterialMapper.cxx.

634 {
635 
636  ATH_MSG_INFO( "Booking the Validation Tree ... " );
637 
638  // now register the Tree
639  ITHistSvc* tHistSvc = nullptr;
640 
641  // (1) Main MaterialMapper TTree
642  // ------------- validation section ------------------------------------------
644 
645  // position coordinates of the update
646  m_validationTree->Branch("Eta", &m_averageEta, "averageEta/F");
647  m_validationTree->Branch("Phi", &m_averagePhi, "averagePhiF");
648  m_validationTree->Branch("Path", &m_mappedPath, "path/F");
649  m_validationTree->Branch("PathInX0", &m_mappedPathInX0, "pathInX0/F");
650  m_validationTree->Branch("PathInL0", &m_mappedPathInL0, "pathInL0/F");
651  m_validationTree->Branch("PathRho", &m_mappedPathRho, "pathRho/F");
652  m_validationTree->Branch("PathZARho", &m_mappedPathZARho, "pathZARho/F");
653  m_validationTree->Branch("UnmappedPathInX0", &m_unmappedPathInX0, "unmappedPathInX0/F");
654  m_validationTree->Branch("MaterialSteps", &m_materialSteps, "steps/I");
655  m_validationTree->Branch("Mapped", m_mapped, "mapped[steps]/I");
656  m_validationTree->Branch("MaterialAccumPathInX0", m_materialAccumPathInX0, "materialAccumPinX0[steps]/F");
657  m_validationTree->Branch("MaterialAccumPathZARho", m_materialAccumPathZARho, "materialAccumPZARho[steps]/F");
658  m_validationTree->Branch("MaterialStepPath", m_materialStepPath, "materialStepPath[steps]/F");
659  m_validationTree->Branch("MaterialStepX0", m_materialStepX0, "materialStepX0[steps]/F");
660  m_validationTree->Branch("MaterialStepL0", m_materialStepL0, "materialStepL0[steps]/F");
661  m_validationTree->Branch("MaterialStepZ", m_materialStepZ, "materialStepZ[steps]/F");
662  m_validationTree->Branch("MaterialStepA", m_materialStepA, "materialStepA[steps]/F");
663  m_validationTree->Branch("MaterialStepRho", m_materialStepRho, "materialStepRho[steps]/F");
664  m_validationTree->Branch("MaterialStepPositionX", m_materialStepPositionX , "materialStepX[steps]/F");
665  m_validationTree->Branch("MaterialStepPositionY", m_materialStepPositionY , "materialStepY[steps]/F");
666  m_validationTree->Branch("MaterialStepPositionZ", m_materialStepPositionZ , "materialStepZ[steps]/F");
667  m_validationTree->Branch("MaterialStepPositionR", m_materialStepPositionR , "materialStepR[steps]/F");
668  m_validationTree->Branch("MaterialProjPositionX", m_materialProjPositionX , "materialProjX[steps]/F");
669  m_validationTree->Branch("MaterialProjPositionY", m_materialProjPositionY , "materialProjY[steps]/F");
670  m_validationTree->Branch("MaterialProjPositionZ", m_materialProjPositionZ , "materialProjZ[steps]/F");
671  m_validationTree->Branch("MaterialProjPositionR", m_materialProjPositionR , "materialProjR[steps]/F");
672  m_validationTree->Branch("MaterialProjDistance", m_materialProjDistance , "materialProjD[steps]/F");
673 
674  // now register the Tree
675  if (service("THistSvc",tHistSvc).isFailure()) {
676  ATH_MSG_ERROR("initialize() Could not find Hist Service -> Switching ValidationMode Off !" );
677  delete m_validationTree; m_validationTree = nullptr;
678  return;
679  }
680  if ((tHistSvc->regTree(m_validationTreeFolder.c_str(), m_validationTree)).isFailure()) {
681  ATH_MSG_ERROR("initialize() Could not register the validation Tree -> Switching ValidationMode Off !" );
682  delete m_validationTree; m_validationTree = nullptr;
683  return;
684  }
685 
686  ATH_MSG_INFO( " ... successful." );
687 
688 }

◆ 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 116 of file MaterialMapper.cxx.

117 {
118  ATH_MSG_INFO( "finalize() successful" );
119  return StatusCode::SUCCESS;
120 }

◆ finalizeLayerHits()

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

Finalize the SingleLayer Steps.

Definition at line 296 of file MaterialMapper.cxx.

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

◆ finalizeSurfaceHits()

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

Finalize the SingleLayer Steps.

Definition at line 383 of file MaterialMapper.cxx.

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

◆ finalizeVolumeHits()

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

Finalize the Volume Steps.

Definition at line 208 of file MaterialMapper.cxx.

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

◆ handle()

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

Handle the incident from the incident service.

Definition at line 600 of file MaterialMapper.cxx.

600  {
601  // check the incident type
602  if ( inc.type() == IncidentType::EndEvent && m_materialSteps){
603  // check if the hit collection already contains:
604  ATH_MSG_VERBOSE("EndEvent incident caught, finalize histogramns");
605  // average Eta / Phi
608  // (a) the volume validation
609  finalizeVolumeHits(true); // trees with mapped hits
610  finalizeVolumeHits(false); // trees with unmapped hits
611  // (b) the layer validation
613  // (c) the surface validation (reference material)
615  // fill the main TTree & reset
616  m_validationTree->Fill();
617  // initialize the eta/phi
618  m_averageEta = 0.;
619  m_averagePhi = 0.;
620  // initialize the rest
621  m_materialSteps = 0;
622  m_mappedPath = 0.;
623  m_mappedPathInX0 = 0.;
624  m_mappedPathInL0 = 0.;
625  m_mappedPathRho = 0.;
626  m_mappedPathZARho = 0.;
627  // increate counter
629  }
630  }

◆ initialize()

StatusCode Trk::MaterialMapper::initialize ( )

AlgTool initialize method.

Definition at line 99 of file MaterialMapper.cxx.

100 {
101 
102  // Athena/Gaudi framework
103  if (m_incidentSvc.retrieve().isFailure()){
104  ATH_MSG_WARNING("Could not retrieve " << m_incidentSvc << ". Exiting.");
105  return StatusCode::FAILURE;
106  }
107  // register to the incident service: EndEvent for histogram filling and reset
108  m_incidentSvc->addListener( this, IncidentType::EndEvent);
109 
110  // book the Tree
112  return StatusCode::SUCCESS;
113 }

◆ 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 481 of file MaterialMapper.cxx.

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

◆ 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 241 of file MaterialMapper.cxx.

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

◆ 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 122 of file MaterialMapper.cxx.

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

◆ 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 352 of file MaterialMapper.cxx.

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

◆ 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 553 of file MaterialMapper.cxx.

554 {
555  // try to find the histogram
556  auto endIter = m_surfaceTrees.end();
557  auto findIter = m_surfaceTrees.end();
558 
559  Trk::SurfaceTreeObject* surfTreeObj = nullptr;
560 
561  findIter = m_surfaceTrees.find(&lay);
562  if (findIter == endIter) {
563  // get the TrackingVolume
564  const Trk::TrackingVolume* enclosingVolume = lay.enclosingTrackingVolume();
565  TString volumeName = (enclosingVolume) ? enclosingVolume->volumeName() : "Unknown";
566 
567  TString treeName = m_surfaceTreePrefix;
568  treeName += lay.layerIndex().value();
569 
570  TString treeTitle = "TrackingVolume :";
571  treeTitle += volumeName;
572 
573  TString treeRegName = "/val/";
574  treeRegName += treeName;
575 
576  ATH_MSG_INFO( "No Tree found for Layer " << lay.layerIndex().value()
577  << " in Volume '" << volumeName << "'." );
578  ATH_MSG_INFO( " -> Booking it now with register name : " << treeRegName.Data() );
579 
580  surfTreeObj = new Trk::SurfaceTreeObject(treeName, treeTitle);
581  m_surfaceTrees.insert(std::make_pair(&lay,surfTreeObj));
582 
583  // now register the Tree
584  ITHistSvc* tHistSvc = nullptr;
585  if (service("THistSvc",tHistSvc).isFailure()) {
586  ATH_MSG_INFO( "initialize() Could not find Hist Service -> Switching Tree output for this surface off !" );
587  delete surfTreeObj; surfTreeObj = nullptr;
588  }
589  else if (tHistSvc && (tHistSvc->regTree(treeRegName.Data(), (*surfTreeObj).tree)).isFailure()) {
590  ATH_MSG_INFO( "initialize() Could not register the validation Tree -> Switching Tree output for this surface off !" );
591  delete surfTreeObj; surfTreeObj = nullptr;
592  }
593 
594  } else // a tree is found
595  surfTreeObj = findIter->second;
596  return surfTreeObj;
597 }

◆ 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 427 of file MaterialMapper.cxx.

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

Member Data Documentation

◆ m_averageEta

float Trk::MaterialMapper::m_averageEta
mutableprivate

average eta

Definition at line 278 of file MaterialMapper.h.

◆ m_averagePhi

float Trk::MaterialMapper::m_averagePhi
mutableprivate

average ogu

Definition at line 279 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_incidentSvc

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

Definition at line 259 of file MaterialMapper.h.

◆ m_layerFullTrees

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

Definition at line 315 of file MaterialMapper.h.

◆ m_layerTreePrefix

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

Definition at line 313 of file MaterialMapper.h.

◆ m_layerTrees

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

Definition at line 314 of file MaterialMapper.h.

◆ m_layerValidation

bool Trk::MaterialMapper::m_layerValidation
private

Definition at line 312 of file MaterialMapper.h.

◆ m_mapped

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

mapped or not mapped

Definition at line 286 of file MaterialMapper.h.

◆ m_mappedPath

float Trk::MaterialMapper::m_mappedPath
mutableprivate

total mapped path

Definition at line 280 of file MaterialMapper.h.

◆ m_mappedPathInL0

float Trk::MaterialMapper::m_mappedPathInL0
mutableprivate

total mapped path in L0

Definition at line 282 of file MaterialMapper.h.

◆ m_mappedPathInX0

float Trk::MaterialMapper::m_mappedPathInX0
mutableprivate

total mapped path in X0

Definition at line 281 of file MaterialMapper.h.

◆ m_mappedPathRho

float Trk::MaterialMapper::m_mappedPathRho
mutableprivate

total mapped path times rho

Definition at line 283 of file MaterialMapper.h.

◆ m_mappedPathZARho

float Trk::MaterialMapper::m_mappedPathZARho
mutableprivate

total mapped path times (Z/A)*rho

Definition at line 284 of file MaterialMapper.h.

◆ m_materialAccumPathInX0

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

accumulated path length in x0

Definition at line 287 of file MaterialMapper.h.

◆ m_materialAccumPathZARho

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

accumulated path length times (Z/A)*rho

Definition at line 288 of file MaterialMapper.h.

◆ m_materialAssociationType

int Trk::MaterialMapper::m_materialAssociationType
private

Definition at line 261 of file MaterialMapper.h.

◆ m_materialProjDistance

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

the distance to the projected hit

Definition at line 303 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 302 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 299 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 300 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 301 of file MaterialMapper.h.

◆ m_materialStepA

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

step A

Definition at line 293 of file MaterialMapper.h.

◆ m_materialStepL0

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

step l0

Definition at line 291 of file MaterialMapper.h.

◆ m_materialStepPath

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

step path

Definition at line 289 of file MaterialMapper.h.

◆ m_materialStepPositionR

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

r value of the material recording

Definition at line 298 of file MaterialMapper.h.

◆ m_materialStepPositionX

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

x position of the material recording

Definition at line 295 of file MaterialMapper.h.

◆ m_materialStepPositionY

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

y position of the material recording

Definition at line 296 of file MaterialMapper.h.

◆ m_materialStepPositionZ

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

z position of the material recording

Definition at line 297 of file MaterialMapper.h.

◆ m_materialStepRho

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

step rho

Definition at line 294 of file MaterialMapper.h.

◆ m_materialSteps

int Trk::MaterialMapper::m_materialSteps
mutableprivate

number of update positions

Definition at line 277 of file MaterialMapper.h.

◆ m_materialStepX0

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

step x0

Definition at line 290 of file MaterialMapper.h.

◆ m_materialStepZ

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

step Z

Definition at line 292 of file MaterialMapper.h.

◆ m_maxMappingEvents

unsigned int Trk::MaterialMapper::m_maxMappingEvents
private

Definition at line 264 of file MaterialMapper.h.

◆ m_processedEvents

unsigned int Trk::MaterialMapper::m_processedEvents
mutableprivate

Definition at line 265 of file MaterialMapper.h.

◆ m_surfaceTreePrefix

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

Definition at line 319 of file MaterialMapper.h.

◆ m_surfaceTrees

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

Definition at line 320 of file MaterialMapper.h.

◆ m_surfaceValidation

bool Trk::MaterialMapper::m_surfaceValidation
private

Definition at line 318 of file MaterialMapper.h.

◆ m_totalMaterialTree

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

Definition at line 267 of file MaterialMapper.h.

◆ m_unmappedPathInX0

float Trk::MaterialMapper::m_unmappedPathInX0
mutableprivate

total path in x0 in these events lost

Definition at line 285 of file MaterialMapper.h.

◆ m_validationTree

TTree* Trk::MaterialMapper::m_validationTree
private

The validation tree.

Definition at line 270 of file MaterialMapper.h.

◆ m_validationTreeDescription

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

validation tree description - second argument in TTree

Definition at line 272 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 273 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 271 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 307 of file MaterialMapper.h.

◆ m_volumeTrees

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

Definition at line 308 of file MaterialMapper.h.

◆ m_volumeTreesUnmapped

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

Definition at line 309 of file MaterialMapper.h.

◆ m_volumeValidation

bool Trk::MaterialMapper::m_volumeValidation
private

Definition at line 306 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:319
Trk::MaterialMapper::m_volumeTreesUnmapped
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTreesUnmapped
Definition: MaterialMapper.h:309
Trk::MaterialMapper::m_layerTrees
std::map< const Trk::Layer *, LayerTreeObject * > m_layerTrees
Definition: MaterialMapper.h:314
Trk::MaterialMapper::finalizeSurfaceHits
void finalizeSurfaceHits() const
Finalize the SingleLayer Steps.
Definition: MaterialMapper.cxx:383
Trk::MaterialMapper::m_materialStepX0
float m_materialStepX0[TRKDETDESCRTOOLS_MAXSTEPS]
step x0
Definition: MaterialMapper.h:290
Trk::MaterialMapper::m_validationTreeDescription
std::string m_validationTreeDescription
validation tree description - second argument in TTree
Definition: MaterialMapper.h:272
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::MaterialMapper::m_mappedPathInX0
float m_mappedPathInX0
total mapped path in X0
Definition: MaterialMapper.h:281
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:208
Trk::MaterialMapper::m_materialProjPositionX
float m_materialProjPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording when assigned to layer
Definition: MaterialMapper.h:299
Trk::MaterialMapper::m_volumeValidation
bool m_volumeValidation
Definition: MaterialMapper.h:306
Trk::MaterialMapper::m_materialStepPositionX
float m_materialStepPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording
Definition: MaterialMapper.h:295
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:270
Trk::MaterialMapper::m_mappedPathRho
float m_mappedPathRho
total mapped path times rho
Definition: MaterialMapper.h:283
Trk::TrackingVolume::getMotherVolume
const TrackingVolume * getMotherVolume() const
Return the MotherVolume - if it exists.
skel.it
it
Definition: skel.GENtoEVGEN.py:423
Trk::MaterialMapper::bookValidationTree
void bookValidationTree()
Validation : book the Tree.
Definition: MaterialMapper.cxx:633
Trk::MaterialMapper::m_materialStepA
float m_materialStepA[TRKDETDESCRTOOLS_MAXSTEPS]
step A
Definition: MaterialMapper.h:293
Trk::MaterialMapper::m_volumeTreePrefix
std::string m_volumeTreePrefix
Definition: MaterialMapper.h:307
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:313
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:292
beamspotman.posX
posX
Definition: beamspotman.py:1624
Trk::MaterialMapper::finalizeLayerHits
void finalizeLayerHits() const
Finalize the SingleLayer Steps.
Definition: MaterialMapper.cxx:296
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::SurfaceTreeObject
Definition: MaterialMapper.h:147
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::MaterialMapper::m_incidentSvc
ServiceHandle< IIncidentSvc > m_incidentSvc
Definition: MaterialMapper.h:259
Trk::MaterialMapper::m_materialAccumPathZARho
float m_materialAccumPathZARho[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length times (Z/A)*rho
Definition: MaterialMapper.h:288
Trk::MaterialMapper::m_materialStepRho
float m_materialStepRho[TRKDETDESCRTOOLS_MAXSTEPS]
step rho
Definition: MaterialMapper.h:294
Trk::MaterialMapper::m_layerFullTrees
std::map< const Trk::Layer *, LayerTreeObject * > m_layerFullTrees
Definition: MaterialMapper.h:315
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Trk::MaterialMapper::layerTreeObject
LayerTreeObject * layerTreeObject(const Layer &lay, bool full=false) const
find (&&,||) create the LayerTreeObject
Definition: MaterialMapper.cxx:481
Trk::MaterialMapper::m_materialSteps
int m_materialSteps
number of update positions
Definition: MaterialMapper.h:277
Trk::MaterialMapper::m_maxMappingEvents
unsigned int m_maxMappingEvents
Definition: MaterialMapper.h:264
Trk::MaterialMapper::m_processedEvents
unsigned int m_processedEvents
Definition: MaterialMapper.h:265
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:297
TRKDETDESCRTOOLS_MAXLAYERHITS
#define TRKDETDESCRTOOLS_MAXLAYERHITS
Definition: MaterialMapper.h:25
Trk::MaterialMapper::m_unmappedPathInX0
float m_unmappedPathInX0
total path in x0 in these events lost
Definition: MaterialMapper.h:285
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:303
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:296
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
Trk::MaterialMapper::m_mappedPathZARho
float m_mappedPathZARho
total mapped path times (Z/A)*rho
Definition: MaterialMapper.h:284
Trk::MaterialMapper::m_validationTreeFolder
std::string m_validationTreeFolder
stream/folder to for the TTree to be written out
Definition: MaterialMapper.h:273
dumpFileToPlots.treeName
string treeName
Definition: dumpFileToPlots.py:20
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:301
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:553
Trk::MaterialMapper::m_mappedPathInL0
float m_mappedPathInL0
total mapped path in L0
Definition: MaterialMapper.h:282
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:271
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:318
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:427
Trk::LayerTreeObject
Definition: MaterialMapper.h:69
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::MaterialMapper::m_materialStepL0
float m_materialStepL0[TRKDETDESCRTOOLS_MAXSTEPS]
step l0
Definition: MaterialMapper.h:291
Trk::MaterialMapper::m_materialAccumPathInX0
float m_materialAccumPathInX0[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length in x0
Definition: MaterialMapper.h:287
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:241
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:267
Trk::MaterialMapper::m_averagePhi
float m_averagePhi
average ogu
Definition: MaterialMapper.h:279
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:286
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:289
Trk::VolumeTreeObject
Definition: MaterialMapper.h:39
Trk::MaterialMapper::m_materialStepPositionR
float m_materialStepPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording
Definition: MaterialMapper.h:298
Trk::MaterialMapper::m_surfaceTrees
std::map< const Trk::Layer *, SurfaceTreeObject * > m_surfaceTrees
Definition: MaterialMapper.h:320
Trk::SurfaceType::Cylinder
@ Cylinder
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
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:300
Trk::VolumeTreeObject::eta
float eta
Definition: MaterialMapper.h:43
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Trk::MaterialLayer
Definition: MaterialLayer.h:37
Trk::MaterialMapper::m_mappedPath
float m_mappedPath
total mapped path
Definition: MaterialMapper.h:280
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Trk::MaterialMapper::m_averageEta
float m_averageEta
average eta
Definition: MaterialMapper.h:278
Trk::MaterialMapper::m_volumeTrees
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTrees
Definition: MaterialMapper.h:308
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:25
Trk::MaterialMapper::m_materialAssociationType
int m_materialAssociationType
Definition: MaterialMapper.h:261
Trk::MaterialMapper::m_layerValidation
bool m_layerValidation
Definition: MaterialMapper.h:312
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:302
Trk::Layer
Definition: Layer.h:73
Trk::Layer::layerIndex
const LayerIndex & layerIndex() const
get the layerIndex