ATLAS Offline Software
Loading...
Searching...
No Matches
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
10
11#ifndef TRT_GEOMODEL_TRTDETECTORFACTORY_LITE_H
12#define TRT_GEOMODEL_TRTDETECTORFACTORY_LITE_H
13
16
18#include "TRT_ReadoutGeometry/TRT_DetectorManager.h" //covariant return type
19
20#include <memory>
21
22class GeoPhysVol;
23class GeoFullPhysVol;
24
25namespace 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
58private:
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
78
79 GeoIntrusivePtr<const GeoMaterial> m_xenonGas{nullptr};
80 GeoIntrusivePtr<const GeoMaterial> m_argonGas{nullptr};
81
82};
83
84#endif // TRTDetectorFactory_Lite_h
Class to hold various Athena components.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
virtual void create(GeoPhysVol *world) override
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
void refreshGasEndcap(int strawStatusHT, GeoVPhysVol *strawPlane)
GeoIntrusivePtr< const GeoMaterial > m_argonGas
InDetDD::TRT_DetectorManager * m_detectorManager
TRTDetectorFactory_Lite(const TRTDetectorFactory_Lite &right)=delete
std::unique_ptr< const TRTStrawStatusAccessor > m_statusAccessor
~TRTDetectorFactory_Lite()=default
GeoIntrusivePtr< const GeoMaterial > m_xenonGas
std::unique_ptr< TRTParameterInterface > m_data
const TRTDetectorFactory_Lite & operator=(const TRTDetectorFactory_Lite &right)=delete
double activeGasZPosition(bool hasLargeDeadRegion=false) const
void refreshGasBarrel(int strawStatusHT, GeoVPhysVol *shell)
TRTDetectorFactory_Lite(GeoModelIO::ReadGeoModel *sqliteReader, InDetDD::AthenaComps *athenaComps, std::unique_ptr< const TRTStrawStatusAccessor > statusAccessor, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, bool alignable, bool useDynamicAlignmentFolders)
GeoModelIO::ReadGeoModel * m_sqliteReader