ATLAS Offline Software
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
21 #include "TrkGeometry/Material.h"
23 // EnvelopeDefinitionService
25 // CaloDDM
27 // STL
28 #include <vector>
29 //
31 
32 namespace Trk {
33 class Layer;
34 class MagneticFieldProperties;
35 } // namespace Trk
36 
37 namespace Calo {
38 
50 
51  public:
54 
56  virtual StatusCode initialize() override;
57 
59  std::unique_ptr<Trk::TrackingGeometry> createTrackingGeometry(Trk::TrackingVolume* innerVol
60  , const CaloDetDescrManager* caloDDM
61  , const GeoAlignmentStore* geoAlign) const;
62 
65  return Trk::Calo;
66  }
67 
68 
69  protected:
71  CaloTrackingGeometryBuilderImpl(const std::string&, const std::string&,
72  const IInterface*);
73 
75  PublicToolHandle<Trk::ITrackingVolumeArrayCreator> m_trackingVolumeArrayCreator{this, "TrackingVolumeArrayCreator", "Trk::TrackingVolumeArrayCreator/TrackingVolumeArrayCreator"};
77  PublicToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator{this, "TrackingVolumeCreator", "Trk::CylinderVolumeCreator/TrackingVolumeCreator"};
79  PublicToolHandle<Trk::ICaloTrackingVolumeBuilder> m_lArVolumeBuilder{this, "LArVolumeBuilder", "LAr::LArVolumeBuilder/LArVolumeBuilder"};
81  PublicToolHandle<Trk::ICaloTrackingVolumeBuilder> m_tileVolumeBuilder{this, "TileVolumeBuilder", "Tile::TileVolumeBuilder/TileVolumeBuilder"};
82 
85  Trk::Material m_Ar{140.036, 856.32, 39.948, 18., 0.0014};
86  Trk::Material m_Al{88.93, 388.62, 26.98, 13., 0.0027};
87  Trk::Material m_Scint{424.35, 707.43, 11.16, 5.61, 0.001}; // from G4 definition
88  Trk::Material m_crackMaterial{424.35, 707.43, 11.16, 5.61, 0.001}; // Scintillator/Glue (G4 def.)
89 
90  DoubleProperty m_caloEnvelope{this, "GapLayerEnvelope", 25 * Gaudi::Units::mm};
91  // enclosing endcap/cylindervolume
92  ServiceHandle<IEnvelopeDefSvc> m_enclosingEnvelopeSvc{this, "EnvelopeDefinitionSvc", "AtlasGeometry_EnvelopeDefSvc"};
93 
94  DoubleProperty m_caloDefaultRadius{this, "CalorimeterRadius", 4250.};
95  DoubleProperty m_caloDefaultHalflengthZ{this, "CalorimeterHalflengthZ", 6500.};
96 
98  BooleanProperty m_indexStaticLayers{this, "IndexStaticLayers", true};
99 
100  BooleanProperty m_recordLayerIndexCaloSampleMap{this, "RecordLayerIndexCaloSampleMap", true};
101  StringProperty m_layerIndexCaloSampleMapName{this, "LayerIndexCaloSampleMapName", "LayerIndexCaloSampleMap"};
102 
103  BooleanProperty m_buildMBTS{this, "BuildMBTS", true};
104  // //!< MBTS like detectors
105  std::vector<double> m_mbtsRadiusGap;
106  std::vector<int> m_mbtsPhiSegments;
107  std::vector<double> m_mbtsPhiGap;
108  std::vector<double> m_mbtsPositionZ;
109  std::vector<double> m_mbtsStaggeringZ;
110 
111  StringProperty m_entryVolume{this, "EntryVolumeName", "Calo::Container::EntryVolume"};
112  StringProperty m_exitVolume{this, "ExitVolumeName", "Calo::Container"};
113 
117  Trk::LayerIndexSampleMap& licsMAp,
118  const std::vector<CaloCell_ID::CaloSample>& ccid, const Trk::TrackingVolume& vol,
119  int side = 1) const;
120 
122  std::pair<Trk::TrackingVolume*, Trk::TrackingVolume*> createBeamPipeVolumes(
123  const RZPairVector& bpCutouts, float, float, const std::string&,
124  float&) const;
125 
126 };
127 
128 } // namespace Calo
129 
130 #endif // CALORIMETER_CALOTRACKINGGEOMETRYBUILDERIMPL_H
131 
Calo::CaloTrackingGeometryBuilderImpl::m_caloEnvelope
DoubleProperty m_caloEnvelope
Envelope cover for Gap Layers.
Definition: CaloTrackingGeometryBuilderImpl.h:90
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:107
ICaloTrackingVolumeBuilder.h
IGeometryBuilderCond.h
Calo
Definition: CaloTrackingGeometryBuilder.h:15
python.SystemOfUnits.mm
float mm
Definition: SystemOfUnits.py:98
GeometrySignature.h
IEnvelopeDefSvc.h
Calo::CaloTrackingGeometryBuilderImpl::m_caloDefaultRadius
DoubleProperty m_caloDefaultRadius
the radius if not built from GeoModel
Definition: CaloTrackingGeometryBuilderImpl.h:94
Calo::CaloTrackingGeometryBuilderImpl::m_caloDefaultHalflengthZ
DoubleProperty m_caloDefaultHalflengthZ
the halflength in z if not built from
Definition: CaloTrackingGeometryBuilderImpl.h:95
RZPairVector
std::vector< RZPair > RZPairVector
Definition: RZPair.h:18
Calo::CaloTrackingGeometryBuilderImpl::m_enclosingEnvelopeSvc
ServiceHandle< IEnvelopeDefSvc > m_enclosingEnvelopeSvc
Definition: CaloTrackingGeometryBuilderImpl.h:92
LayerIndexSampleMap.h
Calo::CaloTrackingGeometryBuilderImpl::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition: CaloTrackingGeometryBuilderImpl.cxx:46
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:75
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsRadiusGap
std::vector< double > m_mbtsRadiusGap
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:105
Calo::CaloTrackingGeometryBuilderImpl::m_Ar
Trk::Material m_Ar
Definition: CaloTrackingGeometryBuilderImpl.h:85
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsStaggeringZ
std::vector< double > m_mbtsStaggeringZ
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:109
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:1434
Calo::CaloTrackingGeometryBuilderImpl
Definition: CaloTrackingGeometryBuilderImpl.h:49
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:77
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:84
Calo::CaloTrackingGeometryBuilderImpl::m_indexStaticLayers
BooleanProperty m_indexStaticLayers
forces robust indexing for layers
Definition: CaloTrackingGeometryBuilderImpl.h:98
Trk::GeometrySignature
GeometrySignature
Definition: GeometrySignature.h:24
Calo::CaloTrackingGeometryBuilderImpl::m_crackMaterial
Trk::Material m_crackMaterial
Definition: CaloTrackingGeometryBuilderImpl.h:88
Calo::CaloTrackingGeometryBuilderImpl::signature
Trk::GeometrySignature signature() const
The unique signature.
Definition: CaloTrackingGeometryBuilderImpl.h:64
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsPositionZ
std::vector< double > m_mbtsPositionZ
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:108
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:1493
Calo::CaloTrackingGeometryBuilderImpl::m_mbtsPhiSegments
std::vector< int > m_mbtsPhiSegments
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:106
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
Second helper for volume creation.
Definition: CaloTrackingGeometryBuilderImpl.h:75
Calo::CaloTrackingGeometryBuilderImpl::m_entryVolume
StringProperty m_entryVolume
name of the Calo entrance
Definition: CaloTrackingGeometryBuilderImpl.h:111
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Calo::CaloTrackingGeometryBuilderImpl::m_buildMBTS
BooleanProperty m_buildMBTS
MBTS like detectors.
Definition: CaloTrackingGeometryBuilderImpl.h:103
Calo::CaloTrackingGeometryBuilderImpl::m_layerIndexCaloSampleMapName
StringProperty m_layerIndexCaloSampleMapName
name to record it
Definition: CaloTrackingGeometryBuilderImpl.h:101
Calo::CaloTrackingGeometryBuilderImpl::m_Scint
Trk::Material m_Scint
Definition: CaloTrackingGeometryBuilderImpl.h:87
Calo::CaloTrackingGeometryBuilderImpl::m_exitVolume
StringProperty m_exitVolume
name of the Calo container
Definition: CaloTrackingGeometryBuilderImpl.h:112
Calo::CaloTrackingGeometryBuilderImpl::m_Al
Trk::Material m_Al
Definition: CaloTrackingGeometryBuilderImpl.h:86
Calo::CaloTrackingGeometryBuilderImpl::m_recordLayerIndexCaloSampleMap
BooleanProperty m_recordLayerIndexCaloSampleMap
for deposition methods
Definition: CaloTrackingGeometryBuilderImpl.h:100
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:36
Calo::CaloTrackingGeometryBuilderImpl::m_lArVolumeBuilder
PublicToolHandle< Trk::ICaloTrackingVolumeBuilder > m_lArVolumeBuilder
Volume Builder for the Tile Calorimeter.
Definition: CaloTrackingGeometryBuilderImpl.h:79
TrackingGeometry.h
Trk::Material
Definition: Material.h:117
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::TrackingVolume
Definition: TrackingVolume.h:119
Calo::CaloTrackingGeometryBuilderImpl::m_tileVolumeBuilder
PublicToolHandle< Trk::ICaloTrackingVolumeBuilder > m_tileVolumeBuilder
Material properties.
Definition: CaloTrackingGeometryBuilderImpl.h:81
Material.h
ServiceHandle< IEnvelopeDefSvc >