ATLAS Offline Software
TRTDetectorFactory_Lite.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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 "GeoModelKernel/GeoDefinitions.h"
18 #include "TRT_ReadoutGeometry/TRT_DetectorManager.h" //covariant return type
19 
20 
21 class GeoPhysVol;
22 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  const ITRT_StrawStatusSummaryTool * sumTool,
38  bool useOldActiveGasMixture,
39  bool DC2CompatibleBarrelCoordinates,
40  int overridedigversion,
41  bool alignable,
42  bool useDynamicAlignmentFolders);
43 
44  // Destructor:
46 
47  // Creation of geometry:
48  virtual void create(GeoPhysVol *world) override;
49 
50  // Access to the results:
51  virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override;
52  //------------------------------------------------------------------------
53 
54  //---------------------------Illegal operations:--------------------------
57  //------------------------------------------------------------------------
58 
59 private:
60 
61  double activeGasZPosition(bool hasLargeDeadRegion=false) const;
62 
63  void setEndcapTransformField(size_t w);
64 
65  // These methods update the gas.
66  void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane);
67  void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell);
68 
69  // private member data:
70  GeoModelIO::ReadGeoModel *m_sqliteReader{};
71  InDetDD::TRT_DetectorManager *m_detectorManager = nullptr; // ownership handed to calleer.
72  std::unique_ptr<TRTParameterInterface> m_data;
73 
77  bool m_alignable{};
78  const ITRT_StrawStatusSummaryTool* m_sumTool{}; // added for Argon
81 
82  GeoIntrusivePtr<const GeoMaterial> m_xenonGas{nullptr};
83  GeoIntrusivePtr<const GeoMaterial> m_argonGas{nullptr};
84 
85 };
86 
87 #endif // TRTDetectorFactory_Lite_h
InDetDD::DetectorFactoryBase
Definition: InDetDetectorFactoryBase.h:20
TRTDetectorFactory_Lite::m_detectorManager
InDetDD::TRT_DetectorManager * m_detectorManager
Definition: TRTDetectorFactory_Lite.h:71
TRT_DetectorManager.h
TRTDetectorFactory_Lite::activeGasZPosition
double activeGasZPosition(bool hasLargeDeadRegion=false) const
Definition: TRTDetectorFactory_Lite.cxx:1143
subproc.shell
shell
Definition: subproc.py:29
TRTDetectorFactory_Lite::create
virtual void create(GeoPhysVol *world) override
Definition: TRTDetectorFactory_Lite.cxx:96
InDetDD::AthenaComps
Class to hold various Athena components.
Definition: InDetDDAthenaComps.h:21
TRTDetectorFactory_Lite::~TRTDetectorFactory_Lite
~TRTDetectorFactory_Lite()=default
TRTDetectorFactory_Lite::m_overridedigversion
int m_overridedigversion
Definition: TRTDetectorFactory_Lite.h:76
TRTDetectorFactory_Lite::m_DC2CompatibleBarrelCoordinates
bool m_DC2CompatibleBarrelCoordinates
Definition: TRTDetectorFactory_Lite.h:75
TRTDetectorFactory_Lite::TRTDetectorFactory_Lite
TRTDetectorFactory_Lite(GeoModelIO::ReadGeoModel *sqliteReader, InDetDD::AthenaComps *athenaComps, const ITRT_StrawStatusSummaryTool *sumTool, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, int overridedigversion, bool alignable, bool useDynamicAlignmentFolders)
Definition: TRTDetectorFactory_Lite.cxx:53
TRTDetectorFactory_Lite::refreshGasBarrel
void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell)
Definition: TRTDetectorFactory_Lite.cxx:1223
TRTDetectorFactory_Lite::m_useDynamicAlignFolders
bool m_useDynamicAlignFolders
Definition: TRTDetectorFactory_Lite.h:80
TRTDetectorFactory_Lite::setEndcapTransformField
void setEndcapTransformField(size_t w)
Definition: TRTDetectorFactory_Lite.cxx:1156
TRTDetectorFactory_Lite::m_argonGas
GeoIntrusivePtr< const GeoMaterial > m_argonGas
Definition: TRTDetectorFactory_Lite.h:83
TRTDetectorFactory_Lite::m_xenonGas
GeoIntrusivePtr< const GeoMaterial > m_xenonGas
Definition: TRTDetectorFactory_Lite.h:82
TRTDetectorFactory_Lite::m_sqliteReader
GeoModelIO::ReadGeoModel * m_sqliteReader
Definition: TRTDetectorFactory_Lite.h:70
ITRT_StrawStatusSummaryTool
Definition: ITRT_StrawStatusSummaryTool.h:27
TRTDetectorFactory_Lite::refreshGasEndcap
void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane)
Definition: TRTDetectorFactory_Lite.cxx:1203
GeoModelIO
Definition: IGeoDbTagSvc.h:12
TRTDetectorFactory_Lite::m_sumTool
const ITRT_StrawStatusSummaryTool * m_sumTool
Definition: TRTDetectorFactory_Lite.h:78
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_Lite::m_alignable
bool m_alignable
Definition: TRTDetectorFactory_Lite.h:77
TRTDetectorFactory_Lite::TRTDetectorFactory_Lite
TRTDetectorFactory_Lite(const TRTDetectorFactory_Lite &right)=delete
InDetDetectorFactoryBase.h
TRTDetectorFactory_Lite::m_strawsvcavailable
bool m_strawsvcavailable
Definition: TRTDetectorFactory_Lite.h:79
TRTDetectorFactory_Lite::getDetectorManager
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
Definition: TRTDetectorFactory_Lite.cxx:77
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:200
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:72