ATLAS Offline Software
Loading...
Searching...
No Matches
LArGeo::LArDetectorFactoryTBEC Class Reference

#include <LArDetectorFactoryTBEC.h>

Inheritance diagram for LArGeo::LArDetectorFactoryTBEC:
Collaboration diagram for LArGeo::LArDetectorFactoryTBEC:

Public Member Functions

 LArDetectorFactoryTBEC ()=default
virtual ~LArDetectorFactoryTBEC ()=default
const LArDetectorFactoryTBECoperator= (const LArDetectorFactoryTBEC &right)=delete
 LArDetectorFactoryTBEC (const LArDetectorFactoryTBEC &right)=delete
virtual void create (GeoPhysVol *world) override
virtual const LArDetectorManagergetDetectorManager () const override
void setECVisLimit (int maxCell)

Private Attributes

LArDetectorManagerm_detectorManager {nullptr}
int m_ecVisLimit {-1}

Detailed Description

Definition at line 13 of file LArDetectorFactoryTBEC.h.

Constructor & Destructor Documentation

◆ LArDetectorFactoryTBEC() [1/2]

LArGeo::LArDetectorFactoryTBEC::LArDetectorFactoryTBEC ( )
default

◆ ~LArDetectorFactoryTBEC()

virtual LArGeo::LArDetectorFactoryTBEC::~LArDetectorFactoryTBEC ( )
virtualdefault

◆ LArDetectorFactoryTBEC() [2/2]

LArGeo::LArDetectorFactoryTBEC::LArDetectorFactoryTBEC ( const LArDetectorFactoryTBEC & right)
delete

Member Function Documentation

◆ create()

void LArGeo::LArDetectorFactoryTBEC::create ( GeoPhysVol * world)
overridevirtual

Definition at line 40 of file LArDetectorFactoryTBEC.cxx.

41{
42 // V.N : Patch LAr materials ??? is this needed?
43 VDetectorParameters::SetInstance(std::make_unique<LArGeo::RAL>());
44
45 EMECDetectorManager *emecDetectorManager = new EMECDetectorManager();
46
47 // Get access to the material manager:
48 MsgStream log(Athena::getMessageSvc(), "LArGeo::LArDetectorFactoryTBEC");
49
50 log << MSG::INFO << "+++++++++++++++++++++++++++++++++++++++++++++++++++++" << endmsg;
51 log << MSG::INFO << "+ +" << endmsg;
52 log << MSG::INFO << "+ HELLO from LAr::DetectorFactoryTBEC +" << endmsg;
53 log << MSG::INFO << "+ +" << endmsg;
54 log << MSG::INFO << "+++++++++++++++++++++++++++++++++++++++++++++++++++++" << endmsg;
55
56 SmartIF<StoreGateSvc> detStore{Gaudi::svcLocator()->service("DetectorStore")};
57 if(!detStore.isValid()) {
58 throw std::runtime_error("Error in LArDetectorFactoryTBEC, cannot access DetectorStore");
59 }
60
61 // V.N : Patch LAr materials
62 LArMaterialManager lArMaterialManager(detStore);
63 lArMaterialManager.buildMaterials();
64
65 LArDetectorConstructionTBEC CryostatConstructionTB;
66
67 PVLink Envelope = nullptr;
68
69 Envelope = CryostatConstructionTB.GetEnvelope();
70
71 a_container->add(new GeoNameTag("LAr"));
72 a_container->add(Envelope);
73
74 double startPhi = M_PI/2-M_PI/8 - 2*M_PI/768/2;
75 double endPhi = M_PI/2+M_PI/8 - 2*M_PI/768/2;
76
77 StoredPhysVol *sEmecOuterWheel;
78 if (StatusCode::SUCCESS==detStore->retrieve(sEmecOuterWheel, "EMEC_OUTER_WHEEL_POS" )) {
79 GeoIntrusivePtr<GeoFullPhysVol>emecEnvelope= sEmecOuterWheel->getPhysVol();
80
81
82 // Outer Wheel Sampling 1 Region 0:
83 {
84 CellBinning phiBinning(startPhi,endPhi,8,12);
85 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,0,0,phiBinning);
86 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
87 emecDetectorManager->addDetectorRegion(region);
88 }
89
90 // Outer Wheel Sampling 1 Region 1:
91 {
92 CellBinning phiBinning(startPhi,endPhi,8,12);
93 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,1,0,phiBinning);
94 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
95 emecDetectorManager->addDetectorRegion(region);
96 }
97 // Outer Wheel Sampling 1 Region 2:
98 {
99 CellBinning phiBinning(startPhi,endPhi,8,12);
100 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,2,0,phiBinning);
101 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
102 emecDetectorManager->addDetectorRegion(region);
103 }
104 // Outer Wheel Sampling 1 Region 3:
105 {
106 CellBinning phiBinning(startPhi,endPhi,8,12);
107 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,3,0,phiBinning);
108 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
109 emecDetectorManager->addDetectorRegion(region);
110 }
111 // Outer Wheel Sampling 1 Region 4:
112 {
113 CellBinning phiBinning(startPhi,endPhi,8,12);
114 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,4,0,phiBinning);
115 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
116 emecDetectorManager->addDetectorRegion(region);
117 }
118 // Outer Wheel Sampling 1 Region 5:
119 {
120 CellBinning phiBinning(startPhi,endPhi,8,12);
121 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,5,0,phiBinning);
122 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
123 emecDetectorManager->addDetectorRegion(region);
124 }
125 // Outer Wheel Sampling 2 Region 0:
126 {
127 CellBinning phiBinning(startPhi,endPhi,32,48);
128 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,2,0,0,phiBinning);
129 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
130 emecDetectorManager->addDetectorRegion(region);
131 }
132 // Outer Wheel Sampling 2 Region 1:
133 {
134 CellBinning phiBinning(startPhi,endPhi,32,48);
135 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,2,1,0,phiBinning);
136 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
137 emecDetectorManager->addDetectorRegion(region);
138 }
139 // Outer Wheel Sampling 3 Region 0:
140 {
141 CellBinning phiBinning(startPhi,endPhi,32,48);
142 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,3,0,0,phiBinning);
143 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
144 emecDetectorManager->addDetectorRegion(region);
145 }
146 }
147 StoredPhysVol *sEmecInnerWheel;
148 if (StatusCode::SUCCESS==detStore->retrieve(sEmecInnerWheel, "EMEC_INNER_WHEEL_POS" )) {
149 GeoIntrusivePtr<GeoFullPhysVol>emecEnvelope= sEmecInnerWheel->getPhysVol();
150 // Inner Wheel Sampling 1 Region 0:
151 {
152 CellBinning phiBinning(startPhi,endPhi,8,12);
153 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,0,1,phiBinning);
154 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
155 emecDetectorManager->addDetectorRegion(region);
156 }
157 // Inner Wheel Sampling 2 Region 0:
158
159 {
160 CellBinning phiBinning(startPhi,endPhi,8,12);
161 EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,2,0,1,phiBinning);
162 EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::POS);
163 emecDetectorManager->addDetectorRegion(region);
164 }
165 }
166
167
168 StoredPhysVol *sPresamplerEnvelope;
169 if (StatusCode::SUCCESS==detStore->retrieve(sPresamplerEnvelope, "PRESAMPLER_EC_POS" )) {
170 GeoIntrusivePtr<GeoFullPhysVol> PresamplerEnvelope=sPresamplerEnvelope->getPhysVol();
171 CellBinning presamplerPhiBinning(startPhi,endPhi,8,12);
172 EMECDetDescr *presamplerDetDescr = new EMECDetDescr(emecDetectorManager,0,0,0,presamplerPhiBinning);
173 EMECDetectorRegion *presamplerRegion = new EMECDetectorRegion(PresamplerEnvelope,presamplerDetDescr,EMECDetectorRegion::POS);
174 emecDetectorManager->addDetectorRegion(presamplerRegion);
175 }
176 detStore->record(emecDetectorManager,emecDetectorManager->getName()).ignore();
177 m_detectorManager = new LArDetectorManager(nullptr,emecDetectorManager,nullptr,nullptr);
178 m_detectorManager->addTreeTop(Envelope);
179
180}
#define M_PI
#define endmsg
void addDetectorRegion(const EMECDetectorRegion *region)
Add a new HEC Detector Region.
static void SetInstance(std::unique_ptr< VDetectorParameters >)
GeoFullPhysVol * getPhysVol()
Destructor.
IMessageSvc * getMessageSvc(bool quiet=false)
const float Envelope
Definition VertexShift.h:39

◆ getDetectorManager()

const LArDetectorManager * LArGeo::LArDetectorFactoryTBEC::getDetectorManager ( ) const
overridevirtual

Definition at line 183 of file LArDetectorFactoryTBEC.cxx.

184{
185 return m_detectorManager;
186}

◆ operator=()

const LArDetectorFactoryTBEC & LArGeo::LArDetectorFactoryTBEC::operator= ( const LArDetectorFactoryTBEC & right)
delete

◆ setECVisLimit()

void LArGeo::LArDetectorFactoryTBEC::setECVisLimit ( int maxCell)
inline

Definition at line 35 of file LArDetectorFactoryTBEC.h.

Member Data Documentation

◆ m_detectorManager

LArDetectorManager* LArGeo::LArDetectorFactoryTBEC::m_detectorManager {nullptr}
private

Definition at line 40 of file LArDetectorFactoryTBEC.h.

40{nullptr};

◆ m_ecVisLimit

int LArGeo::LArDetectorFactoryTBEC::m_ecVisLimit {-1}
private

Definition at line 41 of file LArDetectorFactoryTBEC.h.

41{-1};

The documentation for this class was generated from the following files: