ATLAS Offline Software
EMECSupportConstruction.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
13 // EMECSupportConstruction
14 // construct EMEC support structures
15 // 20-May-2003 AMS
16 // 06-Oct-2003 JT, modified for using GeoModel
17 #ifndef LARGEOENDCAP_EMECSUPPORTCONSTRUCTION_H
18 #define LARGEOENDCAP_EMECSUPPORTCONSTRUCTION_H
19 
22 #include <map>
23 
24 class GeoPhysVol;
25 class GeoElement;
26 class GeoMaterial;
27 class GeoPcon;
28 
29 /*
30 types:
31  0 - front
32  1 - back
33  2 - outer
34  3 - inner
35  4 - middle
36 
37  10 - front only in region of inner wheel
38  11 - back only in region of inner wheel
39  12 - front only in region of outer wheel
40  13 - back only in region of outer wheel
41 */
42 
43 namespace LArGeo {
44 
49 {
50  public:
51  typedef enum {
53  FrontInner = 10, BackInner = 11,
54  FrontOuter = 12, BackOuter = 13,
55  } type_t;
56 
58  type_t type,
59  bool pos_zside = true,
60  bool is_module = false,
61  std::string basename = "LAr::EMEC::",
62  double position = 0.
63  );
65 
66  // Get the envelope containing this detector.
67  virtual GeoIntrusivePtr<GeoPhysVol> GetEnvelope(void) const;
68 
69  private:
70  GeoIntrusivePtr<GeoPhysVol>front_envelope(void) const;
71  GeoIntrusivePtr<GeoPhysVol>back_envelope(void) const;
72  GeoIntrusivePtr<GeoPhysVol>outer_envelope(void) const;
73  GeoIntrusivePtr<GeoPhysVol>inner_envelope(void) const;
74  GeoIntrusivePtr<GeoPhysVol>middle_envelope(void) const;
75  GeoIntrusivePtr<GeoPhysVol>front_inner_envelope(void) const;
76  GeoIntrusivePtr<GeoPhysVol>back_inner_envelope(void) const;
77  GeoIntrusivePtr<GeoPhysVol>front_outer_envelope(void) const;
78  GeoIntrusivePtr<GeoPhysVol>back_outer_envelope(void) const;
79 
80  void put_front_outer_extracyl(GeoIntrusivePtr<GeoPhysVol>) const;
81 
82  void put_front_inner_barettes(GeoIntrusivePtr<GeoPhysVol>) const;
83  void put_front_inner_longbar(GeoIntrusivePtr<GeoPhysVol>) const;
84  void put_front_inner_ring(GeoIntrusivePtr<GeoPhysVol>) const;
85  void put_front_middle_ring(GeoIntrusivePtr<GeoPhysVol>) const;
86  void put_back_middle_ring(GeoIntrusivePtr<GeoPhysVol>) const;
87  void put_back_inner_ring(GeoIntrusivePtr<GeoPhysVol>) const;
88  void put_back_inner_longbar(GeoIntrusivePtr<GeoPhysVol>) const;
89  void put_back_inner_barettes(GeoIntrusivePtr<GeoPhysVol>) const;
90  void put_front_outer_ring(GeoIntrusivePtr<GeoPhysVol>) const;
91  void put_front_indexing_rings(GeoIntrusivePtr<GeoPhysVol>) const;
92  void put_front_outer_longbar(GeoIntrusivePtr<GeoPhysVol>) const;
93  void put_front_outer_barettes(GeoIntrusivePtr<GeoPhysVol>) const;
94  void put_back_outer_ring(GeoIntrusivePtr<GeoPhysVol>) const;
95  void put_back_indexing_rings(GeoIntrusivePtr<GeoPhysVol>) const;
96  void put_back_outer_longbar(GeoIntrusivePtr<GeoPhysVol>) const;
97  void put_back_outer_barettes(GeoIntrusivePtr<GeoPhysVol>) const;
98  void put_front_outer_electronics(GeoIntrusivePtr<GeoPhysVol>) const;
99 
100  GeoPcon* getPcon(const std::string&) const;
101 
105  std::string m_BaseName;
107 
108  const GeoMaterial* m_LAr;
109  const GeoMaterial* m_Alu;
110  const GeoMaterial* m_Gten;
111  const GeoMaterial* m_PermaliE730;
112  const GeoMaterial* m_G10FeInner;
113  const GeoMaterial* m_G10FeOuter;
114  const GeoMaterial* m_Kapton_Cu;
115  const GeoMaterial* m_Cable;
116  const GeoMaterial* m_Copper;
117  const GeoMaterial* m_Lead;
118 
123 
124  using map_t = std::map<std::string, unsigned int>;
125  map_t getMap(const IRDBRecordset_ptr& db, const std::string& s) const;
126  map_t getNumbersMap(const IRDBRecordset_ptr& db, const std::string& s) const;
127  double getNumber(const IRDBRecordset_ptr& db, const map_t &m, const std::string &idx,
128  const char *number, double defval = 0.) const;
129  double getNumber(const IRDBRecordset_ptr& db, const std::string &s,
130  const std::string &parameter, double defval = 0.) const;
131 };
132 
133 } // namespace LArGeo
134 
135 #endif // LARGEOENDCAP_EMECSUPPORTCONSTRUCTION_H
LArGeo::EMECSupportConstruction::FrontOuter
@ FrontOuter
Definition: EMECSupportConstruction.h:54
LArGeo::EMECSupportConstruction::m_G10FeInner
const GeoMaterial * m_G10FeInner
Definition: EMECSupportConstruction.h:112
LArGeo::EMECSupportConstruction::middle_envelope
GeoIntrusivePtr< GeoPhysVol > middle_envelope(void) const
!!!
Definition: EMECSupportConstruction.cxx:1316
LArGeo::EMECSupportConstruction::put_back_inner_barettes
void put_back_inner_barettes(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1004
LArGeo::EMECSupportConstruction::inner_envelope
GeoIntrusivePtr< GeoPhysVol > inner_envelope(void) const
Definition: EMECSupportConstruction.cxx:1210
LArGeo::EMECSupportConstruction::m_DB_tubes
IRDBRecordset_ptr m_DB_tubes
Definition: EMECSupportConstruction.h:120
LArGeo::EMECSupportConstruction::put_front_outer_ring
void put_front_outer_ring(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1521
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
LArGeo::EMECSupportConstruction::GetEnvelope
virtual GeoIntrusivePtr< GeoPhysVol > GetEnvelope(void) const
Definition: EMECSupportConstruction.cxx:269
LArGeo::EMECSupportConstruction::put_front_outer_extracyl
void put_front_outer_extracyl(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1699
LArGeo
Definition: LArDetectorFactory.h:26
LArGeo::EMECSupportConstruction::EMECSupportConstruction
EMECSupportConstruction(type_t type, bool pos_zside=true, bool is_module=false, std::string basename="LAr::EMEC::", double position=0.)
Definition: EMECSupportConstruction.cxx:92
LArGeo::EMECSupportConstruction::front_inner_envelope
GeoIntrusivePtr< GeoPhysVol > front_inner_envelope(void) const
Definition: EMECSupportConstruction.cxx:1907
LArGeo::EMECSupportConstruction::type_t
type_t
Definition: EMECSupportConstruction.h:51
LArGeo::EMECSupportConstruction::m_DB_EmecWheelParameters
IRDBRecordset_ptr m_DB_EmecWheelParameters
Definition: EMECSupportConstruction.h:119
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:43
LArGeo::EMECSupportConstruction::m_Position
double m_Position
Definition: EMECSupportConstruction.h:106
LArGeo::EMECSupportConstruction::put_front_inner_ring
void put_front_inner_ring(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1390
LArGeo::EMECSupportConstruction::put_front_outer_electronics
void put_front_outer_electronics(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1757
LArGeo::EMECSupportConstruction::put_back_inner_ring
void put_back_inner_ring(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1477
LArGeo::EMECSupportConstruction::m_DB_EmecFan
IRDBRecordset_ptr m_DB_EmecFan
Definition: EMECSupportConstruction.h:122
LArGeo::EMECSupportConstruction::m_DB_ColdContraction
IRDBRecordset_ptr m_DB_ColdContraction
Definition: EMECSupportConstruction.h:122
LArGeo::EMECSupportConstruction::put_front_outer_barettes
void put_front_outer_barettes(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:676
LArGeo::EMECSupportConstruction::m_DB_mn
IRDBRecordset_ptr m_DB_mn
Definition: EMECSupportConstruction.h:119
LArGeo::EMECSupportConstruction::front_envelope
GeoIntrusivePtr< GeoPhysVol > front_envelope(void) const
Definition: EMECSupportConstruction.cxx:634
LArGeo::EMECSupportConstruction::put_front_outer_longbar
void put_front_outer_longbar(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1533
LArGeo::EMECSupportConstruction::Middle
@ Middle
Definition: EMECSupportConstruction.h:52
LArGeo::EMECSupportConstruction::Outer
@ Outer
Definition: EMECSupportConstruction.h:52
LArGeo::EMECSupportConstruction::back_inner_envelope
GeoIntrusivePtr< GeoPhysVol > back_inner_envelope(void) const
Definition: EMECSupportConstruction.cxx:1922
LArGeo::EMECSupportConstruction::Front
@ Front
Definition: EMECSupportConstruction.h:52
LArGeo::EMECSupportConstruction::m_DB_emecExtraCyl
IRDBRecordset_ptr m_DB_emecExtraCyl
Definition: EMECSupportConstruction.h:121
LArGeo::EMECSupportConstruction::put_back_outer_ring
void put_back_outer_ring(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1675
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
LArGeo::EMECSupportConstruction
GeoModel description of the EMEC Support Structures.
Definition: EMECSupportConstruction.h:49
LArGeo::EMECSupportConstruction::getPcon
GeoPcon * getPcon(const std::string &) const
Definition: EMECSupportConstruction.cxx:291
LArGeo::EMECSupportConstruction::m_DB_pcons
IRDBRecordset_ptr m_DB_pcons
Definition: EMECSupportConstruction.h:120
LArGeo::EMECSupportConstruction::m_PermaliE730
const GeoMaterial * m_PermaliE730
Definition: EMECSupportConstruction.h:111
LArGeo::EMECSupportConstruction::put_front_inner_longbar
void put_front_inner_longbar(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1417
LArGeo::EMECSupportConstruction::m_Gten
const GeoMaterial * m_Gten
Definition: EMECSupportConstruction.h:110
LArGeo::EMECSupportConstruction::BackInner
@ BackInner
Definition: EMECSupportConstruction.h:53
LArGeo::EMECSupportConstruction::put_back_indexing_rings
void put_back_indexing_rings(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1610
LArGeo::EMECSupportConstruction::m_pos_zside
bool m_pos_zside
Definition: EMECSupportConstruction.h:103
LArGeo::EMECSupportConstruction::put_back_outer_longbar
void put_back_outer_longbar(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1687
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
LArGeo::EMECSupportConstruction::m_PhiSize
double m_PhiSize
Definition: EMECSupportConstruction.h:106
LArGeo::EMECSupportConstruction::getMap
map_t getMap(const IRDBRecordset_ptr &db, const std::string &s) const
Definition: EMECSupportConstruction.cxx:212
LArGeo::EMECSupportConstruction::put_front_inner_barettes
void put_front_inner_barettes(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:784
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
LArGeo::EMECSupportConstruction::m_Alu
const GeoMaterial * m_Alu
Definition: EMECSupportConstruction.h:109
LArGeo::EMECSupportConstruction::Back
@ Back
Definition: EMECSupportConstruction.h:52
LArGeo::EMECSupportConstruction::front_outer_envelope
GeoIntrusivePtr< GeoPhysVol > front_outer_envelope(void) const
Definition: EMECSupportConstruction.cxx:1937
LArGeo::EMECSupportConstruction::Inner
@ Inner
Definition: EMECSupportConstruction.h:52
python.selection.number
number
Definition: selection.py:20
LArGeo::EMECSupportConstruction::put_front_middle_ring
void put_front_middle_ring(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1346
LArGeo::EMECSupportConstruction::back_envelope
GeoIntrusivePtr< GeoPhysVol > back_envelope(void) const
Definition: EMECSupportConstruction.cxx:656
LArGeo::EMECSupportConstruction::m_DB_numbers
IRDBRecordset_ptr m_DB_numbers
Definition: EMECSupportConstruction.h:120
LArGeo::EMECSupportConstruction::m_G10FeOuter
const GeoMaterial * m_G10FeOuter
Definition: EMECSupportConstruction.h:113
LArGeo::EMECSupportConstruction::put_back_inner_longbar
void put_back_inner_longbar(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1504
LArGeo::EMECSupportConstruction::m_Lead
const GeoMaterial * m_Lead
Definition: EMECSupportConstruction.h:117
LArGeo::EMECSupportConstruction::put_front_indexing_rings
void put_front_indexing_rings(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1545
LArGeo::EMECSupportConstruction::m_isModule
bool m_isModule
Definition: EMECSupportConstruction.h:104
LArGeo::EMECSupportConstruction::m_LAr
const GeoMaterial * m_LAr
Definition: EMECSupportConstruction.h:108
LArGeo::EMECSupportConstruction::m_Cable
const GeoMaterial * m_Cable
Definition: EMECSupportConstruction.h:115
LArGeo::EMECSupportConstruction::outer_envelope
GeoIntrusivePtr< GeoPhysVol > outer_envelope(void) const
Definition: EMECSupportConstruction.cxx:1128
LArGeo::EMECSupportConstruction::BackOuter
@ BackOuter
Definition: EMECSupportConstruction.h:54
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArGeo::EMECSupportConstruction::m_Kapton_Cu
const GeoMaterial * m_Kapton_Cu
Definition: EMECSupportConstruction.h:114
LArGeo::EMECSupportConstruction::m_Copper
const GeoMaterial * m_Copper
Definition: EMECSupportConstruction.h:116
LArGeo::EMECSupportConstruction::getNumbersMap
map_t getNumbersMap(const IRDBRecordset_ptr &db, const std::string &s) const
Definition: EMECSupportConstruction.cxx:222
LArGeo::EMECSupportConstruction::getNumber
double getNumber(const IRDBRecordset_ptr &db, const map_t &m, const std::string &idx, const char *number, double defval=0.) const
Definition: EMECSupportConstruction.cxx:235
AthMessaging.h
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
LArGeo::EMECSupportConstruction::m_DB_boxes
IRDBRecordset_ptr m_DB_boxes
Definition: EMECSupportConstruction.h:120
LArGeo::EMECSupportConstruction::put_back_outer_barettes
void put_back_outer_barettes(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:892
LArGeo::EMECSupportConstruction::m_DB_EmecGeometry
IRDBRecordset_ptr m_DB_EmecGeometry
Definition: EMECSupportConstruction.h:119
LArGeo::EMECSupportConstruction::m_Type
type_t m_Type
Definition: EMECSupportConstruction.h:102
LArGeo::EMECSupportConstruction::map_t
std::map< std::string, unsigned int > map_t
Definition: EMECSupportConstruction.h:124
LArGeo::EMECSupportConstruction::FrontInner
@ FrontInner
Definition: EMECSupportConstruction.h:53
LArGeo::EMECSupportConstruction::m_BaseName
std::string m_BaseName
Definition: EMECSupportConstruction.h:105
LArGeo::EMECSupportConstruction::put_back_middle_ring
void put_back_middle_ring(GeoIntrusivePtr< GeoPhysVol >) const
Definition: EMECSupportConstruction.cxx:1435
LArGeo::EMECSupportConstruction::~EMECSupportConstruction
virtual ~EMECSupportConstruction()
LArGeo::EMECSupportConstruction::back_outer_envelope
GeoIntrusivePtr< GeoPhysVol > back_outer_envelope(void) const
Definition: EMECSupportConstruction.cxx:1955
LArGeo::EMECSupportConstruction::m_PhiStart
double m_PhiStart
Definition: EMECSupportConstruction.h:106
beamspotman.basename
basename
Definition: beamspotman.py:640