ATLAS Offline Software
Loading...
Searching...
No Matches
TRTDetectorFactory_Full.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
12
13
14#ifndef TRT_GEOMODEL_TRTDETECTORFACTORY_FULL_H
15#define TRT_GEOMODEL_TRTDETECTORFACTORY_FULL_H
16
19
22
25
26#include "GeoModelKernel/GeoDefinitions.h"
27
28#include <memory>
29
30class GeoPhysVol;
31class GeoFullPhysVol;
32
34
35 public:
36
37 //--------------------------Public Interface:--------------------------------
38 // Constructor:
40 const ITRT_StrawStatusSummaryTool * sumTool,
41 std::unique_ptr<const TRTStrawStatusAccessor> statusAccessor,
42 bool useOldActiveGasMixture,
43 bool DC2CompatibleBarrelCoordinates,
44 bool alignable,
45 bool doArgon,
46 bool doKrypton,
47 bool useDynamicAlignmentFolders);
48
49 // Destructor:
51
52 // Creation of geometry:
53 virtual void create(GeoPhysVol *world) override;
54
55 // Access to the results:
56 virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override;
57 //---------------------------------------------------------------------------
58
59 //---------------------------Illegal operations:------------------------------------------
60
63 //----------------------------------------------------------------------------------------
64
65 private:
66
67 // Gas mixture enumerator
74
75 ActiveGasMixture DecideGasMixture(int strawStatusHT);
76
77 // private helper methods:
78 const GeoShape* makeModule(double length
79 , const GeoTrf::Vector2D& corner1
80 , const GeoTrf::Vector2D& corner2
81 , const GeoTrf::Vector2D& corner3
82 , const GeoTrf::Vector2D& corner4
83 , GeoTrf::Transform3D & absolutePosition
84 , double shrinkDist=0) const;
85
86 GeoPhysVol* makeStraw(bool hasLargeDeadRegion=false
87 , ActiveGasMixture gasMixture = GM_XENON);
88
89 GeoFullPhysVol* makeStrawPlane(size_t w
90 , ActiveGasMixture gasMixture = GM_XENON);
91
92 // private member data:
93 InDetDD::TRT_DetectorManager *m_detectorManager = nullptr; // ownership handed to calleer.
94 std::unique_ptr<InDetMaterialManager> m_materialManager;
95 std::unique_ptr<TRTParameterInterface> m_data;
96 std::unique_ptr<const TRTStrawStatusAccessor> m_statusAccessor;
98
106
107 GeoFullPhysVol* m_type1Planes[3] = {nullptr, nullptr, nullptr};
108 GeoFullPhysVol* m_type2Planes[3] = {nullptr, nullptr, nullptr};
109};
110
111#endif // TRTDetectorFactory_Full_h
double length(const pvec &v)
abstract interface to TRT straw status constants
abstract interface to TRT straw status constants
Class to hold various Athena components.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
GeoFullPhysVol * makeStrawPlane(size_t w, ActiveGasMixture gasMixture=GM_XENON)
const ITRT_StrawStatusSummaryTool * m_sumTool
std::unique_ptr< const TRTStrawStatusAccessor > m_statusAccessor
InDetDD::TRT_DetectorManager * m_detectorManager
virtual void create(GeoPhysVol *world) override
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
virtual const InDetDD::TRT_DetectorManager * getDetectorManager() const override
TRTDetectorFactory_Full(InDetDD::AthenaComps *athenaComps, const ITRT_StrawStatusSummaryTool *sumTool, std::unique_ptr< const TRTStrawStatusAccessor > statusAccessor, bool useOldActiveGasMixture, bool DC2CompatibleBarrelCoordinates, bool alignable, bool doArgon, bool doKrypton, bool useDynamicAlignmentFolders)
std::unique_ptr< InDetMaterialManager > m_materialManager
std::unique_ptr< TRTParameterInterface > m_data
~TRTDetectorFactory_Full()=default
GeoPhysVol * makeStraw(bool hasLargeDeadRegion=false, ActiveGasMixture gasMixture=GM_XENON)
const TRTDetectorFactory_Full & operator=(const TRTDetectorFactory_Full &right)=delete
ActiveGasMixture DecideGasMixture(int strawStatusHT)
TRTDetectorFactory_Full(const TRTDetectorFactory_Full &right)=delete