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 #include "TRTStrawStatusAccessor.h"
16 
18 #include "TRT_ReadoutGeometry/TRT_DetectorManager.h" //covariant return type
19 
20 #include <memory>
21 
22 class GeoPhysVol;
23 class GeoFullPhysVol;
24 
25 namespace GeoModelIO {
26  class ReadGeoModel;
27 }
28 
30 
31  public:
32 
33  //--------------------------Public Interface:----------------------------
34  // Constructor:
35  TRTDetectorFactory_Lite(GeoModelIO::ReadGeoModel *sqliteReader,
36  InDetDD::AthenaComps * athenaComps,
37  std::unique_ptr<const TRTStrawStatusAccessor> statusAccessor,
38  bool useOldActiveGasMixture,
39  bool DC2CompatibleBarrelCoordinates,
40  bool alignable,
41  bool useDynamicAlignmentFolders);
42 
43  // Destructor:
45 
46  // Creation of geometry:
47  virtual void create(GeoPhysVol *world) override;
48 
49  // Access to the results:
50  virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override;
51  //------------------------------------------------------------------------
52 
53  //---------------------------Illegal operations:--------------------------
56  //------------------------------------------------------------------------
57 
58 private:
59 
60  double activeGasZPosition(bool hasLargeDeadRegion=false) const;
61 
62  void setEndcapTransformField(size_t w);
63 
64  // These methods update the gas.
65  void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane);
66  void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell);
67 
68  // private member data:
69  GeoModelIO::ReadGeoModel *m_sqliteReader{};
70  InDetDD::TRT_DetectorManager *m_detectorManager = nullptr; // ownership handed to calleer.
71  std::unique_ptr<TRTParameterInterface> m_data;
72  std::unique_ptr<const TRTStrawStatusAccessor> m_statusAccessor;
73 
76  bool m_alignable{};
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:70
TRT_DetectorManager.h
TRTDetectorFactory_Lite::activeGasZPosition
double activeGasZPosition(bool hasLargeDeadRegion=false) const
Definition: TRTDetectorFactory_Lite.cxx:1116
subproc.shell
shell
Definition: subproc.py:29
TRTDetectorFactory_Lite::create
virtual void create(GeoPhysVol *world) override
Definition: TRTDetectorFactory_Lite.cxx:88
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:75
TRTDetectorFactory_Lite::refreshGasBarrel
void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell)
Definition: TRTDetectorFactory_Lite.cxx:1196
TRTDetectorFactory_Lite::m_useDynamicAlignFolders
bool m_useDynamicAlignFolders
Definition: TRTDetectorFactory_Lite.h:77
TRTDetectorFactory_Lite::setEndcapTransformField
void setEndcapTransformField(size_t w)
Definition: TRTDetectorFactory_Lite.cxx:1129
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:69
TRTStrawStatusAccessor.h
TRTDetectorFactory_Lite::m_statusAccessor
std::unique_ptr< const TRTStrawStatusAccessor > m_statusAccessor
Definition: TRTDetectorFactory_Lite.h:72
TRTDetectorFactory_Lite::refreshGasEndcap
void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane)
Definition: TRTDetectorFactory_Lite.cxx:1176
GeoModelIO
Definition: IGeoDbTagSvc.h:12
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:76
TRTDetectorFactory_Lite::TRTDetectorFactory_Lite
TRTDetectorFactory_Lite(const TRTDetectorFactory_Lite &right)=delete
InDetDetectorFactoryBase.h
TRTDetectorFactory_Lite::getDetectorManager
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
Definition: TRTDetectorFactory_Lite.cxx:69
TRTDetectorFactory_Lite::TRTDetectorFactory_Lite
TRTDetectorFactory_Lite(GeoModelIO::ReadGeoModel *sqliteReader, InDetDD::AthenaComps *athenaComps, std::unique_ptr< const TRTStrawStatusAccessor > statusAccessor, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, bool alignable, bool useDynamicAlignmentFolders)
Definition: TRTDetectorFactory_Lite.cxx:47
TRTDetectorFactory_Lite::operator=
const TRTDetectorFactory_Lite & operator=(const TRTDetectorFactory_Lite &right)=delete
TRTDetectorFactory_Lite
Definition: TRTDetectorFactory_Lite.h:29
TRTParameterInterface.h
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:198
TRTDetectorFactory_Lite::m_useOldActiveGasMixture
bool m_useOldActiveGasMixture
Definition: TRTDetectorFactory_Lite.h:74
TRTDetectorFactory_Lite::m_data
std::unique_ptr< TRTParameterInterface > m_data
Definition: TRTDetectorFactory_Lite.h:71