ATLAS Offline Software
Loading...
Searching...
No Matches
LayerMaterialAnalyser.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6// LayerMaterialAnalyser.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRTESTTOOLS_LAYERMATERIALRECORDDIAGNOSER_H
10#define TRKDETDESCRTESTTOOLS_LAYERMATERIALRECORDDIAGNOSER_H
11
12// Trk
14// Gaudi & Athena
16#include "GaudiKernel/ToolHandle.h"
18
19#ifndef LAYERMAXBINS
20#define LAYERMAXBINS 50000
21#endif
22
23class TTree;
24
25namespace Trk {
26
27 class LayerMaterialProperties;
28 class LayerMaterialRecord;
29 class Layer;
30
37
39 public AthAlgTool, virtual public ILayerMaterialAnalyser {
40
41 public:
43 LayerMaterialAnalyser(const std::string&,const std::string&,const IInterface*);
44
46 StatusCode initialize();
47
49 StatusCode finalize();
50
52 StatusCode analyseLayerMaterial(const Layer& lay) const;
53
55 StatusCode analyseLayerMaterial(const Layer& lay, const LayerMaterialProperties& lmp) const;
56
58 StatusCode analyseLayerMaterial(const Layer& lay, const MaterialPropertiesMatrix& lmr) const;
59
61 StatusCode analyseLayerMaterial(const Layer& lay, const LayerMaterialRecord& lmr) const;
62
63
64 private:
65 StatusCode analyse(const Layer& lay,
66 const MaterialPropertiesMatrix& lmr,
67 const std::vector< std::vector< unsigned int > >* bCounter = 0) const;
68
69 TTree* m_validationTree = nullptr;
70 Gaudi::Property<std::string> m_validationTreeName
71 {this, "ValidationTreeName", "LayerMaterialAnalyser",
72 "validation tree name - to be accessed by this from root"};
73 Gaudi::Property<std::string> m_validationTreeDescription
74 {this, "ValidationTreeDescription", "LayerMaterialAnalyser information",
75 "validation tree description - second argument in TTree"};
76 Gaudi::Property<std::string> m_validationTreeFolder
77 {this, "ValidationTreeFolder", "/val/LayerMaterialAnalyser",
78 "stream/folder to for the TTree to be written out"};
79
80 mutable int m_layerIndex = 0;
81 mutable int m_layerType = 0;
82 std::vector<float>* m_layerTranslation = nullptr;
83 std::vector<float>* m_layerRotation = nullptr;
84 mutable float m_layerDimension0 = 0.;
85 mutable float m_layerDimension1 = 0.;
86 mutable int m_layerBins = 0;
87 mutable int m_layerBins0 = 0;
88 mutable int m_layerBins1 = 0;
89 std::vector<int>* m_bin0 = nullptr;
90 std::vector<int>* m_bin1 = nullptr;
91 std::vector<float>* m_thickness = nullptr;
92 std::vector<float>* m_X0 = nullptr;
93 std::vector<float>* m_L0 = nullptr;
94 std::vector<float>* m_A = nullptr;
95 std::vector<float>* m_Z = nullptr;
96 std::vector<float>* m_Rho = nullptr;
97 std::vector<int>* m_elements = nullptr;
98 std::vector<int>* m_binCounter = nullptr;
99
100 };
101
102}
103
104#endif
105
106
107
108
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Interface class for LayerMaterial analysis.
std::vector< int > * m_bin0
bin 0
std::vector< float > * m_Rho
gathered rho from material mapping/material properties
float m_layerDimension1
dimension 1 : cylinder z, disk r_max
LayerMaterialAnalyser(const std::string &, const std::string &, const IInterface *)
Constructor.
std::vector< int > * m_binCounter
how often was this bin hit / used
StatusCode analyse(const Layer &lay, const MaterialPropertiesMatrix &lmr, const std::vector< std::vector< unsigned int > > *bCounter=0) const
std::vector< float > * m_thickness
gathered thickness from material mapping/material properties
Gaudi::Property< std::string > m_validationTreeFolder
std::vector< float > * m_layerTranslation
center of the transform
std::vector< int > * m_bin1
bin 1
int m_layerIndex
the layer index given by the TrackingGeometry
std::vector< float > * m_A
gathered A from material mapping/material properties
std::vector< float > * m_X0
gathered X0 from material mapping/material properties
std::vector< float > * m_Z
gathered Z from material mapping/material properties
StatusCode analyseLayerMaterial(const Layer &lay) const
process the layer - after material creation and loading
float m_layerDimension0
dimension 0 : cylinder r, disk r_min
int m_layerBins1
total number of bins - loc 0
TTree * m_validationTree
The validation tree.
Gaudi::Property< std::string > m_validationTreeDescription
int m_layerBins
total number of bins - loc0 * loc 1
int m_layerType
the type of the layer 1 - cylinder, 2 - disk
std::vector< float > * m_layerRotation
orientation of the layer
Gaudi::Property< std::string > m_validationTreeName
std::vector< int > * m_elements
gathered number of elements from material mapping/material properties
StatusCode finalize()
AlgTool finalize method.
std::vector< float > * m_L0
gathered L0 from material mapping/material properties
int m_layerBins0
total number of bins - loc 0
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Helper Class to record the material during the GeantinoNtupleMappingProcess.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< std::vector< const MaterialProperties * > > MaterialPropertiesMatrix
void initialize()