ATLAS Offline Software
TRTDetectorFactory_Lite.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 #ifndef TRT_GEOMODEL_TRTDETECTORFACTORY_LITE_H
12 #define TRT_GEOMODEL_TRTDETECTORFACTORY_LITE_H
13 
14 #include "TRTParameterInterface.h"
15 
17 #include "TRT_ReadoutGeometry/TRT_DetectorManager.h" //covariant return type
18 
19 
20 class GeoPhysVol;
21 class GeoFullPhysVol;
23 
24 namespace GeoModelIO {
25  class ReadGeoModel;
26 }
27 
29 
30  public:
31 
32  //--------------------------Public Interface:----------------------------
33  // Constructor:
34  TRTDetectorFactory_Lite(GeoModelIO::ReadGeoModel *sqliteReader,
35  InDetDD::AthenaComps * athenaComps,
36  const ITRT_StrawStatusSummaryTool * sumTool,
37  bool useOldActiveGasMixture,
38  bool DC2CompatibleBarrelCoordinates,
39  bool alignable,
40  bool useDynamicAlignmentFolders);
41 
42  // Destructor:
44 
45  // Creation of geometry:
46  virtual void create(GeoPhysVol *world) override;
47 
48  // Access to the results:
49  virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override;
50  //------------------------------------------------------------------------
51 
52  //---------------------------Illegal operations:--------------------------
55  //------------------------------------------------------------------------
56 
57 private:
58 
59  double activeGasZPosition(bool hasLargeDeadRegion=false) const;
60 
61  void setEndcapTransformField(size_t w);
62 
63  // These methods update the gas.
64  void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane);
65  void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell);
66 
67  // private member data:
68  GeoModelIO::ReadGeoModel *m_sqliteReader{};
69  InDetDD::TRT_DetectorManager *m_detectorManager = nullptr; // ownership handed to calleer.
70  std::unique_ptr<TRTParameterInterface> m_data;
71 
74  bool m_alignable{};
75  const ITRT_StrawStatusSummaryTool* m_sumTool{}; // added for Argon
78 
79  GeoIntrusivePtr<const GeoMaterial> m_xenonGas{nullptr};
80  GeoIntrusivePtr<const GeoMaterial> m_argonGas{nullptr};
81 
82 };
83 
84 #endif // TRTDetectorFactory_Lite_h
InDetDD::DetectorFactoryBase
Definition: InDetDetectorFactoryBase.h:20
TRTDetectorFactory_Lite::m_detectorManager
InDetDD::TRT_DetectorManager * m_detectorManager
Definition: TRTDetectorFactory_Lite.h:69
TRT_DetectorManager.h
TRTDetectorFactory_Lite::activeGasZPosition
double activeGasZPosition(bool hasLargeDeadRegion=false) const
Definition: TRTDetectorFactory_Lite.cxx:1122
subproc.shell
shell
Definition: subproc.py:29
TRTDetectorFactory_Lite::create
virtual void create(GeoPhysVol *world) override
Definition: TRTDetectorFactory_Lite.cxx:87
InDetDD::AthenaComps
Class to hold various Athena components.
Definition: InDetDDAthenaComps.h:21
TRTDetectorFactory_Lite::~TRTDetectorFactory_Lite
~TRTDetectorFactory_Lite()=default
TRTDetectorFactory_Lite::m_DC2CompatibleBarrelCoordinates
bool m_DC2CompatibleBarrelCoordinates
Definition: TRTDetectorFactory_Lite.h:73
TRTDetectorFactory_Lite::TRTDetectorFactory_Lite
TRTDetectorFactory_Lite(GeoModelIO::ReadGeoModel *sqliteReader, InDetDD::AthenaComps *athenaComps, const ITRT_StrawStatusSummaryTool *sumTool, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, bool alignable, bool useDynamicAlignmentFolders)
Definition: TRTDetectorFactory_Lite.cxx:46
TRTDetectorFactory_Lite::refreshGasBarrel
void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell)
Definition: TRTDetectorFactory_Lite.cxx:1202
TRTDetectorFactory_Lite::m_useDynamicAlignFolders
bool m_useDynamicAlignFolders
Definition: TRTDetectorFactory_Lite.h:77
TRTDetectorFactory_Lite::setEndcapTransformField
void setEndcapTransformField(size_t w)
Definition: TRTDetectorFactory_Lite.cxx:1135
TRTDetectorFactory_Lite::m_argonGas
GeoIntrusivePtr< const GeoMaterial > m_argonGas
Definition: TRTDetectorFactory_Lite.h:80
TRTDetectorFactory_Lite::m_xenonGas
GeoIntrusivePtr< const GeoMaterial > m_xenonGas
Definition: TRTDetectorFactory_Lite.h:79
TRTDetectorFactory_Lite::m_sqliteReader
GeoModelIO::ReadGeoModel * m_sqliteReader
Definition: TRTDetectorFactory_Lite.h:68
ITRT_StrawStatusSummaryTool
Definition: ITRT_StrawStatusSummaryTool.h:27
TRTDetectorFactory_Lite::refreshGasEndcap
void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane)
Definition: TRTDetectorFactory_Lite.cxx:1182
GeoModelIO
Definition: IGeoDbTagSvc.h:12
TRTDetectorFactory_Lite::m_sumTool
const ITRT_StrawStatusSummaryTool * m_sumTool
Definition: TRTDetectorFactory_Lite.h:75
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_Lite::m_alignable
bool m_alignable
Definition: TRTDetectorFactory_Lite.h:74
TRTDetectorFactory_Lite::TRTDetectorFactory_Lite
TRTDetectorFactory_Lite(const TRTDetectorFactory_Lite &right)=delete
InDetDetectorFactoryBase.h
TRTDetectorFactory_Lite::m_strawsvcavailable
bool m_strawsvcavailable
Definition: TRTDetectorFactory_Lite.h:76
TRTDetectorFactory_Lite::getDetectorManager
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
Definition: TRTDetectorFactory_Lite.cxx:68
TRTDetectorFactory_Lite::operator=
const TRTDetectorFactory_Lite & operator=(const TRTDetectorFactory_Lite &right)=delete
TRTDetectorFactory_Lite
Definition: TRTDetectorFactory_Lite.h:28
TRTParameterInterface.h
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:198
TRTDetectorFactory_Lite::m_useOldActiveGasMixture
bool m_useOldActiveGasMixture
Definition: TRTDetectorFactory_Lite.h:72
TRTDetectorFactory_Lite::m_data
std::unique_ptr< TRTParameterInterface > m_data
Definition: TRTDetectorFactory_Lite.h:70