ATLAS Offline Software
Loading...
Searching...
No Matches
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
23// EnvelopeDefinitionService
25// CaloDDM
27// STL
28#include <vector>
29//
31
32namespace Trk {
33class Layer;
35} // namespace Trk
36
37namespace Calo {
38
48
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.};
97
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
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
Definition of CaloDetDescrManager.
std::vector< RZPair > RZPairVector
Definition RZPair.h:18
Define macros for attributes used to control the static checker.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides the client interface for accessing the detector description information common to...
BooleanProperty m_indexStaticLayers
forces robust indexing for layers
PublicToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Volume Builder for the Liquid Argon Calorimeter.
std::vector< int > m_mbtsPhiSegments
MBTS like detectors.
BooleanProperty m_recordLayerIndexCaloSampleMap
for deposition methods
std::unique_ptr< Trk::TrackingGeometry > createTrackingGeometry(Trk::TrackingVolume *innerVol, const CaloDetDescrManager *caloDDM, const GeoAlignmentStore *geoAlign) const
TrackingGeometry Interface method.
std::vector< double > m_mbtsStaggeringZ
MBTS like detectors.
StringProperty m_exitVolume
name of the Calo container
std::vector< double > m_mbtsPhiGap
MBTS like detectors.
DoubleProperty m_caloDefaultHalflengthZ
the halflength in z if not built from
std::vector< double > m_mbtsRadiusGap
MBTS like detectors.
DoubleProperty m_caloEnvelope
Envelope cover for Gap Layers.
PublicToolHandle< Trk::ICaloTrackingVolumeBuilder > m_lArVolumeBuilder
Volume Builder for the Tile Calorimeter.
virtual StatusCode initialize() override
AlgTool initailize method.
std::vector< double > m_mbtsPositionZ
MBTS like detectors.
std::pair< Trk::TrackingVolume *, Trk::TrackingVolume * > createBeamPipeVolumes(const RZPairVector &bpCutouts, float, float, const std::string &, float &) const
method to build enclosed beam pipe volumes
DoubleProperty m_caloDefaultRadius
the radius if not built from GeoModel
CaloTrackingGeometryBuilderImpl(const std::string &, const std::string &, const IInterface *)
Constructor.
virtual ~CaloTrackingGeometryBuilderImpl()
Destructor.
Trk::GeometrySignature signature() const
The unique signature.
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
PublicToolHandle< Trk::ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Second helper for volume creation.
StringProperty m_layerIndexCaloSampleMapName
name to record it
StringProperty m_entryVolume
name of the Calo entrance
ServiceHandle< IEnvelopeDefSvc > m_enclosingEnvelopeSvc
BooleanProperty m_buildMBTS
MBTS like detectors.
PublicToolHandle< Trk::ICaloTrackingVolumeBuilder > m_tileVolumeBuilder
Material properties.
Ensure that the extensions for the Vector3D are properly loaded.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
magnetic field properties to steer the behavior of the extrapolation
A common object to be contained by.
Definition Material.h:117
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Ensure that the ATLAS eigen extensions are properly loaded.
std::map< Trk::LayerIndex, int > LayerIndexSampleMap