9#ifndef TRKDETDESCRTOOLS_MATERIALMAPPER_H
10#define TRKDETDESCRTOOLS_MATERIALMAPPER_H
16#include "GaudiKernel/IIncidentListener.h"
17#include "GaudiKernel/ITHistSvc.h"
25#define TRKDETDESCRTOOLS_MAXSTEPS 8000
26#define TRKDETDESCRTOOLS_MAXLAYERHITS 5000
59 tree(new TTree(name,title))
61 tree->Branch(
"Eta", &
eta,
"eta/F");
62 tree->Branch(
"Phi", &
phi,
"phi/F");
63 tree->Branch(
"Path", &
path,
"path/F");
117 tree(new TTree(name,title))
128 tree->Branch(
"Path", &
path,
"pathInX0/F");
131 tree->Branch(
"A", &
A,
"a/F");
132 tree->Branch(
"Z", &
Z,
"z/F");
133 tree->Branch(
"Rho", &
rho,
"rho/F");
135 tree->Branch(
"HitPathInX0", &
hitPathInX0,
"layerhitpathInX0[layerhits]/F");
178 tree(new TTree(name,title))
180 tree->Branch(
"Local1", &
loc1,
"local1/F");
181 tree->Branch(
"Local2", &
loc2,
"local2/F");
182 tree->Branch(
"Eta", &
eta,
"eta/F");
184 tree->Branch(
"Path", &
path,
"path/F");
187 tree->Branch(
"A", &
A,
"a/F");
188 tree->Branch(
"Z", &
Z,
"z/F");
189 tree->Branch(
"Rho", &
rho,
"rho/F");
233 void handle(
const Incident& inc );
310 mutable std::map< const Trk::TrackingVolume*, VolumeTreeObject* >
m_volumeTrees;
#define TRKDETDESCRTOOLS_MAXSTEPS
#define TRKDETDESCRTOOLS_MAXLAYERHITS
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
It is used in the Mapping process ( using MaterialSteps ), the validation and recostruction ( using M...
Interface class IMaterialMapper.
Base Class for a Detector Layer in the Tracking realm.
std::string m_validationTreeFolder
stream/folder to for the TTree to be written out
std::string m_layerTreePrefix
float m_materialProjPositionY[TRKDETDESCRTOOLS_MAXSTEPS]
y position of the material recording when assigned to layer
float m_unmappedPathInX0
total path in x0 in these events lost
float m_materialStepPositionY[TRKDETDESCRTOOLS_MAXSTEPS]
y position of the material recording
void recordSurfaceHit(const Amg::Vector2D &locpos, const AssociatedMaterial &amhit) const
Record material hit on a surface.
void bookValidationTree()
Validation : book the Tree.
StatusCode finalize()
AlgTool finalize method.
float m_averageEta
average eta
float m_mappedPath
total mapped path
std::map< const Trk::Layer *, LayerTreeObject * > m_layerFullTrees
std::string m_surfaceTreePrefix
int m_materialAssociationType
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTrees
float m_averagePhi
average ogu
void finalizeLayerHits() const
Finalize the SingleLayer Steps.
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...
float m_mappedPathRho
total mapped path times rho
float m_mappedPathInL0
total mapped path in L0
ServiceHandle< ITHistSvc > m_histSvc
TTree * m_validationTree
The validation tree.
float m_materialAccumPathInX0[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length in x0
LayerTreeObject * layerTreeObject(const Layer &lay, bool full=false) const
find (&&,||) create the LayerTreeObject
unsigned int m_processedEvents
float m_materialStepX0[TRKDETDESCRTOOLS_MAXSTEPS]
step x0
ServiceHandle< IIncidentSvc > m_incidentSvc
float m_materialProjPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording when assigned to layer
MaterialMapper(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
void finalizeVolumeHits(bool mapped=true) const
Finalize the Volume Steps.
float m_materialStepZ[TRKDETDESCRTOOLS_MAXSTEPS]
step Z
float m_materialStepPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording
SurfaceTreeObject * surfaceTreeObject(const Layer &lay) const
find (&&,||) create the LayerTreeObject
std::string m_validationTreeDescription
validation tree description - second argument in TTree
float m_materialProjDistance[TRKDETDESCRTOOLS_MAXSTEPS]
the distance to the projected hit
float m_mappedPathZARho
total mapped path times (Z/A)*rho
void finalizeSurfaceHits() const
Finalize the SingleLayer Steps.
void handle(const Incident &inc)
Handle the incident from the incident service.
unsigned int m_maxMappingEvents
int m_mapped[TRKDETDESCRTOOLS_MAXSTEPS]
mapped or not mapped
float m_materialStepRho[TRKDETDESCRTOOLS_MAXSTEPS]
step rho
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTreesUnmapped
float m_materialAccumPathZARho[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length times (Z/A)*rho
int m_materialSteps
number of update positions
float m_materialProjPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording when assigned to layer
float m_materialStepPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording
float m_materialStepA[TRKDETDESCRTOOLS_MAXSTEPS]
step A
VolumeTreeObject * volumeTreeObject(const Layer *lay=0, const TrackingVolume *tvol=0) const
find (&&,||) create a VolumeTreObject
float m_materialStepPath[TRKDETDESCRTOOLS_MAXSTEPS]
step path
float m_mappedPathInX0
total mapped path in X0
float m_materialStepL0[TRKDETDESCRTOOLS_MAXSTEPS]
step l0
std::string m_validationTreeName
validation tree name - to be accessed by this from root
void recordMaterialHit(const AssociatedMaterial &amhit, const Amg::Vector3D &projectedPosition) const
Record material hit along the recording.
std::string m_volumeTreePrefix
std::string m_totalMaterialTree
float m_materialProjPositionZ[TRKDETDESCRTOOLS_MAXSTEPS]
z position of the material recording when assigned to layer
float m_materialStepPositionZ[TRKDETDESCRTOOLS_MAXSTEPS]
z position of the material recording
std::map< const Trk::Layer *, LayerTreeObject * > m_layerTrees
std::map< const Trk::Layer *, SurfaceTreeObject * > m_surfaceTrees
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
std::vector< std::string > mapped
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
float hitPositionEta[TRKDETDESCRTOOLS_MAXLAYERHITS]
LayerTreeObject & operator=(const LayerTreeObject &)=delete
float hitPositionR[TRKDETDESCRTOOLS_MAXLAYERHITS]
float hitPathInX0[TRKDETDESCRTOOLS_MAXLAYERHITS]
float hitPositionZ[TRKDETDESCRTOOLS_MAXLAYERHITS]
float hitPositionX[TRKDETDESCRTOOLS_MAXLAYERHITS]
float hitPositionY[TRKDETDESCRTOOLS_MAXLAYERHITS]
LayerTreeObject(const LayerTreeObject &)=delete
LayerTreeObject(TString name, TString title)
SurfaceTreeObject(const SurfaceTreeObject &)=delete
SurfaceTreeObject(TString name, TString title)
SurfaceTreeObject & operator=(const SurfaceTreeObject &)=delete
-> simple helper struct for filling the Volume objects
VolumeTreeObject & operator=(const VolumeTreeObject &)=delete
VolumeTreeObject(const VolumeTreeObject &)=delete
VolumeTreeObject(TString name, TString title)