ATLAS Offline Software
TRTDetectorFactory_Full.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
14 #ifndef TRT_GEOMODEL_TRTDETECTORFACTORY_FULL_H
15 #define TRT_GEOMODEL_TRTDETECTORFACTORY_FULL_H
16 
17 #include "TRTParameterInterface.h"
18 #include "TRTStrawStatusAccessor.h"
19 
22 
25 
26 #include "GeoModelKernel/GeoDefinitions.h"
27 
28 #include <memory>
29 
30 class GeoPhysVol;
31 class GeoFullPhysVol;
32 
34 
35  public:
36 
37  //--------------------------Public Interface:--------------------------------
38  // Constructor:
40  const ITRT_StrawStatusSummaryTool * sumTool,
41  std::unique_ptr<const TRTStrawStatusAccessor> statusAccessor,
42  bool useOldActiveGasMixture,
43  bool DC2CompatibleBarrelCoordinates,
44  bool alignable,
45  bool doArgon,
46  bool doKrypton,
47  bool useDynamicAlignmentFolders);
48 
49  // Destructor:
51 
52  // Creation of geometry:
53  virtual void create(GeoPhysVol *world) override;
54 
55  // Access to the results:
56  virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override;
57  //---------------------------------------------------------------------------
58 
59  //---------------------------Illegal operations:------------------------------------------
60 
63  //----------------------------------------------------------------------------------------
64 
65  private:
66 
67  // Gas mixture enumerator
69  {
72  GM_ARGON
73  };
74 
75  ActiveGasMixture DecideGasMixture(int strawStatusHT);
76 
77  // private helper methods:
78  const GeoShape* makeModule(double length
79  , const GeoTrf::Vector2D& corner1
80  , const GeoTrf::Vector2D& corner2
81  , const GeoTrf::Vector2D& corner3
82  , const GeoTrf::Vector2D& corner4
83  , GeoTrf::Transform3D & absolutePosition
84  , double shrinkDist=0) const;
85 
86  GeoPhysVol* makeStraw(bool hasLargeDeadRegion=false
87  , ActiveGasMixture gasMixture = GM_XENON);
88 
89  GeoFullPhysVol* makeStrawPlane(size_t w
90  , ActiveGasMixture gasMixture = GM_XENON);
91 
92  // private member data:
93  InDetDD::TRT_DetectorManager *m_detectorManager = nullptr; // ownership handed to calleer.
94  std::unique_ptr<InDetMaterialManager> m_materialManager;
95  std::unique_ptr<TRTParameterInterface> m_data;
96  std::unique_ptr<const TRTStrawStatusAccessor> m_statusAccessor;
98 
103  bool m_doArgon;
106 
107  GeoFullPhysVol* m_type1Planes[3] = {nullptr, nullptr, nullptr};
108  GeoFullPhysVol* m_type2Planes[3] = {nullptr, nullptr, nullptr};
109 };
110 
111 #endif // TRTDetectorFactory_Full_h
InDetDD::DetectorFactoryBase
Definition: InDetDetectorFactoryBase.h:20
TRTDetectorFactory_Full::GM_KRYPTON
@ GM_KRYPTON
Definition: TRTDetectorFactory_Full.h:71
TRTDetectorFactory_Full::m_doArgon
bool m_doArgon
Definition: TRTDetectorFactory_Full.h:103
TRTDetectorFactory_Full::m_alignable
bool m_alignable
Definition: TRTDetectorFactory_Full.h:101
TRT_DetectorManager.h
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
InDetDD::AthenaComps
Class to hold various Athena components.
Definition: InDetDDAthenaComps.h:21
TRTDetectorFactory_Full::GM_XENON
@ GM_XENON
Definition: TRTDetectorFactory_Full.h:70
TRTDetectorFactory_Full::GM_ARGON
@ GM_ARGON
Definition: TRTDetectorFactory_Full.h:72
TRTDetectorFactory_Full::operator=
const TRTDetectorFactory_Full & operator=(const TRTDetectorFactory_Full &right)=delete
TRTDetectorFactory_Full::m_type1Planes
GeoFullPhysVol * m_type1Planes[3]
Definition: TRTDetectorFactory_Full.h:107
TRTDetectorFactory_Full::makeStraw
GeoPhysVol * makeStraw(bool hasLargeDeadRegion=false, ActiveGasMixture gasMixture=GM_XENON)
Definition: TRTDetectorFactory_Full.cxx:2080
TRTDetectorFactory_Full::m_materialManager
std::unique_ptr< InDetMaterialManager > m_materialManager
Definition: TRTDetectorFactory_Full.h:94
TRTDetectorFactory_Full::m_data
std::unique_ptr< TRTParameterInterface > m_data
Definition: TRTDetectorFactory_Full.h:95
TRTDetectorFactory_Full::DecideGasMixture
ActiveGasMixture DecideGasMixture(int strawStatusHT)
Definition: TRTDetectorFactory_Full.cxx:2340
TRTDetectorFactory_Full::makeModule
const GeoShape * makeModule(double length, const GeoTrf::Vector2D &corner1, const GeoTrf::Vector2D &corner2, const GeoTrf::Vector2D &corner3, const GeoTrf::Vector2D &corner4, GeoTrf::Transform3D &absolutePosition, double shrinkDist=0) const
Definition: TRTDetectorFactory_Full.cxx:1961
TRTDetectorFactory_Full::m_useOldActiveGasMixture
bool m_useOldActiveGasMixture
Definition: TRTDetectorFactory_Full.h:99
TRTDetectorFactory_Full::m_DC2CompatibleBarrelCoordinates
bool m_DC2CompatibleBarrelCoordinates
Definition: TRTDetectorFactory_Full.h:100
TRTDetectorFactory_Full::getDetectorManager
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
Definition: TRTDetectorFactory_Full.cxx:112
TRTDetectorFactory_Full::create
virtual void create(GeoPhysVol *world) override
Definition: TRTDetectorFactory_Full.cxx:131
TRTDetectorFactory_Full::m_sumTool
const ITRT_StrawStatusSummaryTool * m_sumTool
Definition: TRTDetectorFactory_Full.h:97
ITRT_StrawStatusSummaryTool.h
abstract interface to TRT straw status constants
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
TRTDetectorFactory_Full::ActiveGasMixture
ActiveGasMixture
Definition: TRTDetectorFactory_Full.h:69
TRTDetectorFactory_Full::~TRTDetectorFactory_Full
~TRTDetectorFactory_Full()=default
ITRT_StrawStatusSummaryTool
Definition: ITRT_StrawStatusSummaryTool.h:27
TRTStrawStatusAccessor.h
TRTDetectorFactory_Full::m_statusAccessor
std::unique_ptr< const TRTStrawStatusAccessor > m_statusAccessor
Definition: TRTDetectorFactory_Full.h:96
InDetMaterialManager.h
TRTDetectorFactory_Full::TRTDetectorFactory_Full
TRTDetectorFactory_Full(InDetDD::AthenaComps *athenaComps, const ITRT_StrawStatusSummaryTool *sumTool, std::unique_ptr< const TRTStrawStatusAccessor > statusAccessor, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, bool alignable, bool doArgon, bool doKrypton, bool useDynamicAlignmentFolders)
Definition: TRTDetectorFactory_Full.cxx:83
TRTDetectorFactory_Full::m_detectorManager
InDetDD::TRT_DetectorManager * m_detectorManager
Definition: TRTDetectorFactory_Full.h:93
TRTDetectorFactory_Full::m_useDynamicAlignFolders
bool m_useDynamicAlignFolders
Definition: TRTDetectorFactory_Full.h:105
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:63
TRTDetectorFactory_Full::m_type2Planes
GeoFullPhysVol * m_type2Planes[3]
Definition: TRTDetectorFactory_Full.h:108
InDetDetectorFactoryBase.h
TRTParameterInterface.h
TRTDetectorFactory_Full::m_strawsvcavailable
bool m_strawsvcavailable
Definition: TRTDetectorFactory_Full.h:102
TRTDetectorFactory_Full
This class creates the TRT Geometry.
Definition: TRTDetectorFactory_Full.h:33
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:198
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
TRTDetectorFactory_Full::TRTDetectorFactory_Full
TRTDetectorFactory_Full(const TRTDetectorFactory_Full &right)=delete
TRTDetectorFactory_Full::makeStrawPlane
GeoFullPhysVol * makeStrawPlane(size_t w, ActiveGasMixture gasMixture=GM_XENON)
Definition: TRTDetectorFactory_Full.cxx:2201
TRTDetectorFactory_Full::m_doKrypton
bool m_doKrypton
Definition: TRTDetectorFactory_Full.h:104