|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef MUONTRACKINGGEOMETRY_MUONTRACKINGGEOMETRYBUILDERIMPL_H
10 #define MUONTRACKINGGEOMETRY_MUONTRACKINGGEOMETRYBUILDERIMPL_H
22 #include "GaudiKernel/ToolHandle.h"
29 class TrackingGeometry;
32 class ITrackingVolumeBuilder;
99 std::vector<std::vector<std::vector<std::pair<int, float>>>>>
116 double zTol,
double phiTol,
123 bool hasStations)
const;
127 bool hasStations)
const;
131 bool hasStations)
const;
134 std::vector<Trk::DetachedTrackingVolume*>
136 std::vector<Trk::DetachedTrackingVolume*>&,
155 this,
"TrackingVolumeArrayCreator",
156 "Trk::TrackingVolumeArrayCreator/"
157 "TrackingVolumeArrayCreator"};
164 this,
"TrackingVolumeHelper",
165 "Trk::TrackingVolumeHelper/TrackingVolumeHelper"};
170 this,
"EnvelopeDefinitionSvc",
"AtlasEnvelopeDefSvc",
176 Gaudi::Property<bool>
m_muonInert{
this,
"BuildInertMaterial",
true};
186 Gaudi::Property<double>
m_barrelZ{
this,
"BarrelZ", 6785.};
202 this,
"EtaInnerEndcapPartitions", 3};
204 this,
"EtaOuterEndcapPartitions", 3};
208 Gaudi::Property<bool>
m_static3d{
this,
"StaticPartition3D",
true};
221 "MuonSpectrometerEntrance"};
223 this,
"ExitVolumeName",
"All::Container::CompleteDetector"};
228 #endif // MUONTRACKINGGEOMETRY_MUONTRACKINGGEOMETRYBUILDER_H
Private struct to contain local variables we dont want to be global in this class.
TrackingVolumePtr processVolume(const Trk::Volume &, int, int, const std::string &, LocalVariablesContainer &aLVC, bool hasStations) const
Private methods to define subvolumes and fill them with detached volumes.
Gaudi::Property< double > m_alignTolerance
span(T *ptr, std::size_t sz) -> span< T >
A couple needed deduction guides.
Gaudi::Property< int > m_colorCode
std::pair< std::shared_ptr< TrackingVolume >, Amg::Vector3D > TrackingVolumeOrderPosition
std::array< std::vector< DetachedVolSpanPair >, 9 > VolumeSpanArray
Gaudi::Property< bool > m_blendInertMaterial
std::vector< RZPair > RZPairVector
std::shared_ptr< Trk::TrackingVolume > SharedTrackingVolume
static constexpr double m_outerWheel
minimal extend in z of the outer wheel (EO)
double m_outerBarrelRadius
Gaudi::Property< bool > m_loadMSentry
std::vector< DetachedVolPtr > DetachedVolVec
std::vector< TrackingVolumePtr > TrackingVolumeVec
std::vector< int > m_adjustedPhiType
std::vector< std::vector< std::pair< int, float > > > m_shieldHPart
Gaudi::Property< std::string > m_entryVolume
Gaudi::Property< std::string > m_exitVolume
void blendMaterial(LocalVariablesContainer &aLVC) const
Private method to blend the inert material.
Gaudi::Property< int > m_activeAdjustLevel
This class provides conversion from CSC RDO data to CSC Digits.
Gaudi::Property< bool > m_removeBlended
static constexpr double m_diskShieldZ
void getHParts(LocalVariablesContainer &aLVC) const
Private method to retrieve h partition.
Gaudi::Property< int > m_innerEndcapEtaPartition
void getZParts(LocalVariablesContainer &aLVC) const
Private method to retrieve z partition.
Gaudi::Property< bool > m_adjustStatic
std::vector< Trk::DetachedTrackingVolume * > getDetachedObjects(const Trk::Volume &trkVol, std::vector< Trk::DetachedTrackingVolume * > &, LocalVariablesContainer &aLVC, int mode=0) const
Private method to find detached volumes.
Gaudi::Property< int > m_barrelEtaPartition
virtual StatusCode initialize() override
AlgTool initailize method.
Gaudi::Property< double > m_barrelZ
maximal extend in z of the inner part of muon endcap
VolumeSpanArray m_inertSpan
Gaudi::Property< bool > m_muonSimple
void getPhiParts(int, LocalVariablesContainer &aLVC) const
Private method to retrieve phi partition.
Gaudi::Property< int > m_outerEndcapEtaPartition
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< int > m_zPartitionsType
virtual ~MuonTrackingGeometryBuilderImpl()=default
Destructor.
std::map< Trk::DetachedTrackingVolume *, std::vector< Trk::TrackingVolume * > > m_blendMap
Gaudi::Property< int > m_phiPartition
VolumeSpanArray findVolumesSpan(const DetachedVolVec &objs, double zTol, double phiTol, const LocalVariablesContainer &aLVC) const
Private method to filter detached volumes in z span.
std::shared_ptr< const Trk::VolumeSpan > VolumeSpanPtr
Gaudi::Property< bool > m_muonInert
std::vector< float > m_adjustedPhi
std::unique_ptr< Trk::DetachedTrackingVolume > DetachedVolPtr
TrackingGeometry Interface method.
ToolHandle< Trk::ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Helper Tool to create TrackingVolume Arrays.
Ensure that the ATLAS eigen extensions are properly loaded.
static constexpr double m_ectZ
minimal extent in z of the ECT
std::vector< std::vector< std::vector< std::vector< std::pair< int, float > > > > > m_hPartitions
LocalVariablesContainer()=default
Gaudi::Property< double > m_outerEndcapZ
static constexpr double m_innerShieldRadius
std::unique_ptr< Trk::TrackingGeometry > trackingGeometryImpl(DetachedVolVec &&stations, DetachedVolVec &&inertObjs, Trk::TrackingVolume *tvol) const
Trk::Material m_muonMaterial
the (empty) material
Gaudi::Property< double > m_innerEndcapZ
maximal extend in z of the outer part of muon endcap
Gaudi::Property< bool > m_static3d
std::pair< Trk::DetachedTrackingVolume *, VolumeSpanPtr > DetachedVolSpanPair
Eigen::Matrix< double, 3, 1 > Vector3D
std::vector< double > m_zPartitions
static constexpr double m_beamPipeRadius
static constexpr double m_bigWheel
maximal extend in z of the big wheel
TrackingVolumePtr processShield(const Trk::Volume &, int, const std::string &, LocalVariablesContainer &aLVC, bool hasStations) const
Gaudi::Property< bool > m_muonActive
Trk::VolumeConverter m_volumeConverter
Volume helper to find geometrical span of enclosed volumes.
static Trk::GeometrySignature signature()
The unique signature.
VolumeSpanArray m_stationSpan
Gaudi::Property< int > m_inertAdjustLevel
Gaudi::Property< double > m_outerBarrelRadius
maximal extend in z of the muon barrel
std::unique_ptr< Trk::TrackingVolume > TrackingVolumePtr
MuonTrackingGeometryBuilderImpl(const std::string &, const std::string &, const IInterface *)
double m_innerBarrelRadius
Gaudi::Property< double > m_innerBarrelRadius
< minimal extend in radial dimension of the muon barrel
void getShieldParts(LocalVariablesContainer &aLVC) const
Private method to retrieve shield partition.
ServiceHandle< IEnvelopeDefSvc > m_enclosingEnvelopeSvc
service to provide input volume size
std::vector< double > m_shieldZPart
static constexpr double m_outerShieldRadius
RZPairVector m_msCutoutsIn
bool enclosed(const Trk::Volume &volume, const Trk::VolumeSpan &span, LocalVariablesContainer &aLVC) const
Private method to check if constituent enclosed.
RZPairVector m_msCutoutsOut
ToolHandle< Trk::ITrackingVolumeHelper > m_trackingVolumeHelper
Helper Tool to create TrackingVolumes.