ATLAS Offline Software
TRTDetectorFactory_Full.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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 
21 
24 
25 #include "GeoModelKernel/GeoDefinitions.h"
26 #include <string>
27 
28 class GeoPhysVol;
29 class GeoFullPhysVol;
30 
32 
33  public:
34 
35  //--------------------------Public Interface:--------------------------------
36  // Constructor:
38  const ITRT_StrawStatusSummaryTool * sumTool,
39  bool useOldActiveGasMixture,
40  bool DC2CompatibleBarrelCoordinates,
41  int overridedigversion,
42  bool alignable,
43  bool doArgon,
44  bool doKrypton,
45  bool useDynamicAlignmentFolders);
46 
47  // Destructor:
49 
50  // Creation of geometry:
51  virtual void create(GeoPhysVol *world) override;
52 
53  // Access to the results:
54  virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override;
55  //---------------------------------------------------------------------------
56 
57  //---------------------------Illegal operations:------------------------------------------
58 
61  //----------------------------------------------------------------------------------------
62 
63  private:
64 
65  // Gas mixture enumerator
67  {
70  GM_ARGON
71  };
72 
73  ActiveGasMixture DecideGasMixture(int strawStatusHT);
74 
75  // private helper methods:
76  const GeoShape* makeModule(double length
77  , const GeoTrf::Vector2D& corner1
78  , const GeoTrf::Vector2D& corner2
79  , const GeoTrf::Vector2D& corner3
80  , const GeoTrf::Vector2D& corner4
81  , GeoTrf::Transform3D & absolutePosition
82  , double shrinkDist=0) const;
83 
84  GeoPhysVol* makeStraw(bool hasLargeDeadRegion=false
85  , ActiveGasMixture gasMixture = GM_XENON);
86 
87  GeoFullPhysVol* makeStrawPlane(size_t w
88  , ActiveGasMixture gasMixture = GM_XENON);
89 
90  // private member data:
91  InDetDD::TRT_DetectorManager *m_detectorManager = nullptr; // ownership handed to calleer.
92  std::unique_ptr<InDetMaterialManager> m_materialManager;
93  std::unique_ptr<TRTParameterInterface> m_data;
94 
99  const ITRT_StrawStatusSummaryTool* m_sumTool; // added for Argon
101  bool m_doArgon;
104 
105  GeoFullPhysVol* m_type1Planes[3] = {nullptr, nullptr, nullptr};
106  GeoFullPhysVol* m_type2Planes[3] = {nullptr, nullptr, nullptr};
107 };
108 
109 #endif // TRTDetectorFactory_Full_h
TRTDetectorFactory_Full::TRTDetectorFactory_Full
TRTDetectorFactory_Full(InDetDD::AthenaComps *athenaComps, const ITRT_StrawStatusSummaryTool *sumTool, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, int overridedigversion, bool alignable, bool doArgon, bool doKrypton, bool useDynamicAlignmentFolders)
Definition: TRTDetectorFactory_Full.cxx:85
InDetDD::DetectorFactoryBase
Definition: InDetDetectorFactoryBase.h:20
TRTDetectorFactory_Full::GM_KRYPTON
@ GM_KRYPTON
Definition: TRTDetectorFactory_Full.h:69
TRTDetectorFactory_Full::m_doArgon
bool m_doArgon
Definition: TRTDetectorFactory_Full.h:101
TRTDetectorFactory_Full::m_alignable
bool m_alignable
Definition: TRTDetectorFactory_Full.h:98
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:68
TRTDetectorFactory_Full::GM_ARGON
@ GM_ARGON
Definition: TRTDetectorFactory_Full.h:70
TRTDetectorFactory_Full::operator=
const TRTDetectorFactory_Full & operator=(const TRTDetectorFactory_Full &right)=delete
TRTDetectorFactory_Full::m_type1Planes
GeoFullPhysVol * m_type1Planes[3]
Definition: TRTDetectorFactory_Full.h:105
TRTDetectorFactory_Full::makeStraw
GeoPhysVol * makeStraw(bool hasLargeDeadRegion=false, ActiveGasMixture gasMixture=GM_XENON)
Definition: TRTDetectorFactory_Full.cxx:2071
TRTDetectorFactory_Full::m_materialManager
std::unique_ptr< InDetMaterialManager > m_materialManager
Definition: TRTDetectorFactory_Full.h:92
TRTDetectorFactory_Full::m_data
std::unique_ptr< TRTParameterInterface > m_data
Definition: TRTDetectorFactory_Full.h:93
TRTDetectorFactory_Full::DecideGasMixture
ActiveGasMixture DecideGasMixture(int strawStatusHT)
Definition: TRTDetectorFactory_Full.cxx:2331
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:1952
TRTDetectorFactory_Full::m_useOldActiveGasMixture
bool m_useOldActiveGasMixture
Definition: TRTDetectorFactory_Full.h:95
TRTDetectorFactory_Full::m_DC2CompatibleBarrelCoordinates
bool m_DC2CompatibleBarrelCoordinates
Definition: TRTDetectorFactory_Full.h:96
TRTDetectorFactory_Full::getDetectorManager
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
Definition: TRTDetectorFactory_Full.cxx:114
TRTDetectorFactory_Full::create
virtual void create(GeoPhysVol *world) override
Definition: TRTDetectorFactory_Full.cxx:133
TRTDetectorFactory_Full::m_sumTool
const ITRT_StrawStatusSummaryTool * m_sumTool
Definition: TRTDetectorFactory_Full.h:99
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:67
TRTDetectorFactory_Full::~TRTDetectorFactory_Full
~TRTDetectorFactory_Full()=default
ITRT_StrawStatusSummaryTool
Definition: ITRT_StrawStatusSummaryTool.h:27
InDetMaterialManager.h
TRTDetectorFactory_Full::m_detectorManager
InDetDD::TRT_DetectorManager * m_detectorManager
Definition: TRTDetectorFactory_Full.h:91
TRTDetectorFactory_Full::m_useDynamicAlignFolders
bool m_useDynamicAlignFolders
Definition: TRTDetectorFactory_Full.h:103
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:69
TRTDetectorFactory_Full::m_type2Planes
GeoFullPhysVol * m_type2Planes[3]
Definition: TRTDetectorFactory_Full.h:106
TRTDetectorFactory_Full::m_overridedigversion
int m_overridedigversion
Definition: TRTDetectorFactory_Full.h:97
InDetDetectorFactoryBase.h
TRTParameterInterface.h
TRTDetectorFactory_Full::m_strawsvcavailable
bool m_strawsvcavailable
Definition: TRTDetectorFactory_Full.h:100
TRTDetectorFactory_Full
This class creates the TRT Geometry.
Definition: TRTDetectorFactory_Full.h:31
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
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:2192
TRTDetectorFactory_Full::m_doKrypton
bool m_doKrypton
Definition: TRTDetectorFactory_Full.h:102