Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CaloTrackingGeometryBuilderImpl.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CALORIMETER_CALOTRACKINGGEOMETRYBUILDERIMPL_H
6 #define CALORIMETER_CALOTRACKINGGEOMETRYBUILDERIMPL_H
7 
9 // Gaudi
11 #include "GaudiKernel/ServiceHandle.h"
12 #include "GaudiKernel/ToolHandle.h"
13 #include "GaudiKernel/SystemOfUnits.h"
14 // Trk
22 #include "TrkGeometry/Material.h"
24 // EnvelopeDefinitionService
26 // CaloDDM
28 // STL
29 #include <vector>
30 //
32 
33 namespace Trk {
34 class Layer;
35 class MagneticFieldProperties;
36 } // namespace Trk
37 
38 namespace Calo {
39 
51 
52  public:
55 
57  virtual StatusCode initialize() override;
58 
60  std::unique_ptr<Trk::TrackingGeometry> createTrackingGeometry(Trk::TrackingVolume* innerVol
61  , const CaloDetDescrManager* caloDDM
62  , const GeoAlignmentStore* geoAlign) const;
63 
66  return Trk::Calo;
67  }
68 
69 
70  protected:
72  CaloTrackingGeometryBuilderImpl(const std::string&, const std::string&,
73  const IInterface*);
74 
76  PublicToolHandle<Trk::ITrackingVolumeArrayCreator> m_trackingVolumeArrayCreator{this, "TrackingVolumeArrayCreator", "Trk::TrackingVolumeArrayCreator/TrackingVolumeArrayCreator"};
78  PublicToolHandle<Trk::ITrackingVolumeHelper> m_trackingVolumeHelper{this, "TrackingVolumeHelper", "Trk::TrackingVolumeHelper/TrackingVolumeHelper"};
80  PublicToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator{this, "TrackingVolumeCreator", "Trk::CylinderVolumeCreator/TrackingVolumeCreator"};
82  PublicToolHandle<Trk::ICaloTrackingVolumeBuilder> m_lArVolumeBuilder{this, "LArVolumeBuilder", "LAr::LArVolumeBuilder/LArVolumeBuilder"};
84  PublicToolHandle<Trk::ICaloTrackingVolumeBuilder> m_tileVolumeBuilder{this, "TileVolumeBuilder", "Tile::TileVolumeBuilder/TileVolumeBuilder"};
85 
88  Trk::Material m_Ar{140.036, 856.32, 39.948, 18., 0.0014};
89  Trk::Material m_Al{88.93, 388.62, 26.98, 13., 0.0027};
90  Trk::Material m_Scint{424.35, 707.43, 11.16, 5.61, 0.001}; // from G4 definition
91  Trk::Material m_crackMaterial{424.35, 707.43, 11.16, 5.61, 0.001}; // Scintillator/Glue (G4 def.)
92 
93  DoubleProperty m_caloEnvelope{this, "GapLayerEnvelope", 25 * Gaudi::Units::mm};
94  // enclosing endcap/cylindervolume
95  ServiceHandle<IEnvelopeDefSvc> m_enclosingEnvelopeSvc{this, "EnvelopeDefinitionSvc", "AtlasGeometry_EnvelopeDefSvc"};
96 
97  DoubleProperty m_caloDefaultRadius{this, "CalorimeterRadius", 4250.};
98  DoubleProperty m_caloDefaultHalflengthZ{this, "CalorimeterHalflengthZ", 6500.};
99 
101  BooleanProperty m_indexStaticLayers{this, "IndexStaticLayers", true};
102 
103  BooleanProperty m_recordLayerIndexCaloSampleMap{this, "RecordLayerIndexCaloSampleMap", true};
104  StringProperty m_layerIndexCaloSampleMapName{this, "LayerIndexCaloSampleMapName", "LayerIndexCaloSampleMap"};
105 
106  BooleanProperty m_buildMBTS{this, "BuildMBTS", true};
107  // //!< MBTS like detectors
108  std::vector<double> m_mbtsRadiusGap;
109  std::vector<int> m_mbtsPhiSegments;
110  std::vector<double> m_mbtsPhiGap;
111  std::vector<double> m_mbtsPositionZ;
112  std::vector<double> m_mbtsStaggeringZ;
113 
114  StringProperty m_entryVolume{this, "EntryVolumeName", "Calo::Container::EntryVolume"};
115  StringProperty m_exitVolume{this, "ExitVolumeName", "Calo::Container"};
116 
120  Trk::LayerIndexSampleMap& licsMAp,
121  const std::vector<CaloCell_ID::CaloSample>& ccid, const Trk::TrackingVolume& vol,
122  int side = 1) const;
123 
125  std::pair<Trk::TrackingVolume*, Trk::TrackingVolume*> createBeamPipeVolumes(
126  const RZPairVector& bpCutouts, float, float, const std::string&,
127  float&) const;
128 
129 };
130 
131 } // namespace Calo
132 
133 #endif // CALORIMETER_CALOTRACKINGGEOMETRYBUILDERIMPL_H
134 
Calo::CaloTrackingGeometryBuilderImpl::m_caloEnvelope
DoubleProperty m_caloEnvelope
Envelope cover for Gap Layers.
Definition: CaloTrackingGeometryBuilderImpl.h:93
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsPhiGap
std::vector< double > m_mbtsPhiGap
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:110
ICaloTrackingVolumeBuilder.h
IGeometryBuilderCond.h
Calo
Definition: CaloTrackingGeometryBuilder.h:15
GeometrySignature.h
IEnvelopeDefSvc.h
Calo::CaloTrackingGeometryBuilderImpl::m_caloDefaultRadius
DoubleProperty m_caloDefaultRadius
the radius if not built from GeoModel
Definition: CaloTrackingGeometryBuilderImpl.h:97
Calo::CaloTrackingGeometryBuilderImpl::m_caloDefaultHalflengthZ
DoubleProperty m_caloDefaultHalflengthZ
the halflength in z if not built from
Definition: CaloTrackingGeometryBuilderImpl.h:98
RZPairVector
std::vector< RZPair > RZPairVector
Definition: RZPair.h:18
Calo::CaloTrackingGeometryBuilderImpl::m_enclosingEnvelopeSvc
ServiceHandle< IEnvelopeDefSvc > m_enclosingEnvelopeSvc
Definition: CaloTrackingGeometryBuilderImpl.h:95
LayerIndexSampleMap.h
Calo::CaloTrackingGeometryBuilderImpl::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition: CaloTrackingGeometryBuilderImpl.cxx:47
Calo::CaloTrackingGeometryBuilderImpl::createTrackingGeometry
std::unique_ptr< Trk::TrackingGeometry > createTrackingGeometry(Trk::TrackingVolume *innerVol, const CaloDetDescrManager *caloDDM, const GeoAlignmentStore *geoAlign) const
TrackingGeometry Interface method.
Definition: CaloTrackingGeometryBuilderImpl.cxx:96
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsRadiusGap
std::vector< double > m_mbtsRadiusGap
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:108
Calo::CaloTrackingGeometryBuilderImpl::m_Ar
Trk::Material m_Ar
Definition: CaloTrackingGeometryBuilderImpl.h:88
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsStaggeringZ
std::vector< double > m_mbtsStaggeringZ
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:112
Calo::CaloTrackingGeometryBuilderImpl::registerInLayerIndexCaloSampleMap
void registerInLayerIndexCaloSampleMap(Trk::LayerIndexSampleMap &licsMAp, const std::vector< CaloCell_ID::CaloSample > &ccid, const Trk::TrackingVolume &vol, int side=1) const
method to establish a link between the LayerIndex and the CaloCell_ID in an associative container
Definition: CaloTrackingGeometryBuilderImpl.cxx:1420
Calo::CaloTrackingGeometryBuilderImpl
Definition: CaloTrackingGeometryBuilderImpl.h:50
ITrackingVolumeArrayCreator.h
Trk::Calo
@ Calo
Definition: GeometrySignature.h:28
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Calo::CaloTrackingGeometryBuilderImpl::m_trackingVolumeCreator
PublicToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Volume Builder for the Liquid Argon Calorimeter.
Definition: CaloTrackingGeometryBuilderImpl.h:80
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
CaloCell_ID.h
Trk::LayerIndexSampleMap
std::map< Trk::LayerIndex, int > LayerIndexSampleMap
Definition: LayerIndexSampleMap.h:29
TRT::Hit::side
@ side
Definition: HitInfo.h:83
Calo::CaloTrackingGeometryBuilderImpl::~CaloTrackingGeometryBuilderImpl
virtual ~CaloTrackingGeometryBuilderImpl()
Destructor.
Calo::CaloTrackingGeometryBuilderImpl::m_caloMaterial
Trk::Material m_caloMaterial
Definition: CaloTrackingGeometryBuilderImpl.h:87
Calo::CaloTrackingGeometryBuilderImpl::m_indexStaticLayers
BooleanProperty m_indexStaticLayers
forces robust indexing for layers
Definition: CaloTrackingGeometryBuilderImpl.h:101
Trk::GeometrySignature
GeometrySignature
Definition: GeometrySignature.h:24
Calo::CaloTrackingGeometryBuilderImpl::m_crackMaterial
Trk::Material m_crackMaterial
Definition: CaloTrackingGeometryBuilderImpl.h:91
Calo::CaloTrackingGeometryBuilderImpl::signature
Trk::GeometrySignature signature() const
The unique signature.
Definition: CaloTrackingGeometryBuilderImpl.h:65
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsPositionZ
std::vector< double > m_mbtsPositionZ
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:111
Calo::CaloTrackingGeometryBuilderImpl::createBeamPipeVolumes
std::pair< Trk::TrackingVolume *, Trk::TrackingVolume * > createBeamPipeVolumes(const RZPairVector &bpCutouts, float, float, const std::string &, float &) const
method to build enclosed beam pipe volumes
Definition: CaloTrackingGeometryBuilderImpl.cxx:1479
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsPhiSegments
std::vector< int > m_mbtsPhiSegments
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:109
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
ITrackingVolumeCreator.h
Calo::CaloTrackingGeometryBuilderImpl::m_trackingVolumeArrayCreator
PublicToolHandle< Trk::ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Helper Tool to create TrackingVolumes.
Definition: CaloTrackingGeometryBuilderImpl.h:76
Calo::CaloTrackingGeometryBuilderImpl::m_entryVolume
StringProperty m_entryVolume
name of the Calo entrance
Definition: CaloTrackingGeometryBuilderImpl.h:114
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Calo::CaloTrackingGeometryBuilderImpl::m_trackingVolumeHelper
PublicToolHandle< Trk::ITrackingVolumeHelper > m_trackingVolumeHelper
Second helper for volume creation.
Definition: CaloTrackingGeometryBuilderImpl.h:78
Calo::CaloTrackingGeometryBuilderImpl::m_buildMBTS
BooleanProperty m_buildMBTS
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:106
Calo::CaloTrackingGeometryBuilderImpl::m_layerIndexCaloSampleMapName
StringProperty m_layerIndexCaloSampleMapName
name to record it
Definition: CaloTrackingGeometryBuilderImpl.h:104
Calo::CaloTrackingGeometryBuilderImpl::m_Scint
Trk::Material m_Scint
Definition: CaloTrackingGeometryBuilderImpl.h:90
Calo::CaloTrackingGeometryBuilderImpl::m_exitVolume
StringProperty m_exitVolume
name of the Calo container
Definition: CaloTrackingGeometryBuilderImpl.h:115
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
Calo::CaloTrackingGeometryBuilderImpl::m_Al
Trk::Material m_Al
Definition: CaloTrackingGeometryBuilderImpl.h:89
Calo::CaloTrackingGeometryBuilderImpl::m_recordLayerIndexCaloSampleMap
BooleanProperty m_recordLayerIndexCaloSampleMap
for deposition methods
Definition: CaloTrackingGeometryBuilderImpl.h:103
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
Calo::CaloTrackingGeometryBuilderImpl::CaloTrackingGeometryBuilderImpl
CaloTrackingGeometryBuilderImpl(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: CaloTrackingGeometryBuilderImpl.cxx:37
Calo::CaloTrackingGeometryBuilderImpl::m_lArVolumeBuilder
PublicToolHandle< Trk::ICaloTrackingVolumeBuilder > m_lArVolumeBuilder
Volume Builder for the Tile Calorimeter.
Definition: CaloTrackingGeometryBuilderImpl.h:82
TrackingGeometry.h
Trk::Material
Definition: Material.h:116
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Calo::CaloTrackingGeometryBuilderImpl::m_tileVolumeBuilder
PublicToolHandle< Trk::ICaloTrackingVolumeBuilder > m_tileVolumeBuilder
Material properties.
Definition: CaloTrackingGeometryBuilderImpl.h:84
Material.h
ServiceHandle< IEnvelopeDefSvc >
ITrackingVolumeHelper.h