ATLAS Offline Software
LArReadoutGeometryBuilder.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
11 
14 #include "LArReadoutGeometry/FCAL_ChannelMap.h"
15 
19 
23 
24 #include "LArHV/LArHVManager.h"
25 
26 #include "StoreGate/StoreGateSvc.h"
27 #include "GaudiKernel/MsgStream.h"
28 
29 #include "GeoModelKernel/GeoFullPhysVol.h"
30 #include "GeoModelKernel/CellBinning.h"
33 
34 std::tuple<EMBDetectorManager*
38  , const LArHVManager* hvManager
39  , IMessageSvc* msgSvc
40  , int testbeam
41  , double projectivityDisplacement)
42 {
43  MsgStream log(msgSvc, "buildLArReadoutGeometry");
44 
45  EMBDetectorManager* embDetectorManager{nullptr};
46  EMECDetectorManager* emecDetectorManager{nullptr};
47  HECDetectorManager* hecDetectorManager{nullptr};
48  FCALDetectorManager* fcalDetectorManager{nullptr};
49 
50  { // FCAL
51  fcalDetectorManager = new FCALDetectorManager(&(hvManager->getFCALHVManager()));
52  std::string fcalModName[2][3]={{"FCAL1_NEG","FCAL2_NEG","FCAL3_NEG"},
53  {"FCAL1_POS","FCAL2_POS","FCAL3_POS"}};
54  for (int e=0;e<2;e++) {
55  for (int m=0;m<3;m++) {
56  StoredPhysVol *vol;
57  if(detStore->contains<StoredPhysVol>(fcalModName[e][m])){
58  if (detStore->retrieve(vol,fcalModName[e][m])==StatusCode::SUCCESS) {
59  FCALModule *module=new FCALModule(vol->getPhysVol(),FCALModule::Module(m+1),FCALModule::Endcap(e),projectivityDisplacement);
60  fcalDetectorManager->addModule(module);
61  }
62  }
63  else {
64  log << MSG::DEBUG << " No Stored PV for " << fcalModName[e][m] << " in Detector Store" << endmsg;
65  }
66  }
67  }
68  }
69 
70  { // HEC
71  hecDetectorManager = new HECDetectorManager(&(hvManager->getHECHVManager()));
72  for (unsigned int s=0;s<4;s++) {
73  for (unsigned int r=0;r<2;r++) {
74  unsigned int nPhi = r==0? 2:1;
75  for (unsigned int endcap=0;endcap<2;endcap++) {
76  StoredPhysVol *vol;
77  std::string nameTag= endcap==0 ? (s<2 ? "HEC1_NEG":"HEC2_NEG") : (s<2 ? "HEC1_POS":"HEC2_POS");
78  if(detStore->contains<StoredPhysVol>(nameTag)){
79  if (StatusCode::SUCCESS==detStore->retrieve(vol, nameTag)) {
80  unsigned int width = 32;
81  double startPhi = endcap==0? M_PI : 0;
82  double endPhi = endcap==0? -M_PI : 2*M_PI ;
83 
84  CellBinning phiBinning(startPhi, endPhi, width*nPhi);
85  HECDetDescr *d = new HECDetDescr(hecDetectorManager,s,r,phiBinning);
86 
88  HECDetectorRegion *region = new HECDetectorRegion(vol->getPhysVol(),d,side,projectivityDisplacement);
89  hecDetectorManager->addDetectorRegion(region);
90  }
91  }
92  else
93  log << MSG::DEBUG << " No Stored PV for " << nameTag
94  << " in Detector Store" << endmsg;
95  }
96  }
97  }
98  }
99 
100  { // EMEC
101  emecDetectorManager = new EMECDetectorManager(&(hvManager->getEMECHVManager(EMECHVModule::INNER))
102  ,&(hvManager->getEMECHVManager(EMECHVModule::OUTER))
103  ,&(hvManager->getEMECPresamplerHVManager()));
104 
105  // Here is a table of min and max eta for different sampling layers, radial part (i/o) and region.
106 
107  for (int e=0;e<2;e++) {
108 
109  double startPhi = e==0? M_PI-2*M_PI/768/2 : -2*M_PI/768/2;
110  double endPhi = e==0? -M_PI-2*M_PI/768/2 : 2*M_PI-2*M_PI/768/2 ;
111 
112 
113  StoredPhysVol *sPhys;
114 
115  if(detStore->contains<StoredPhysVol>(e==0 ? "EMEC_OUTER_WHEEL_NEG" : "EMEC_OUTER_WHEEL_POS")) {
116  if (detStore->retrieve(sPhys,e==0 ? "EMEC_OUTER_WHEEL_NEG" : "EMEC_OUTER_WHEEL_POS")==StatusCode::SUCCESS) {
117  GeoIntrusivePtr<GeoFullPhysVol>emecEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
118 
119  {
120  CellBinning phiBinning(startPhi,endPhi,64);
121  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,0,0,phiBinning);
122  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
123  emecDetectorManager->addDetectorRegion(region);
124  }
125 
126  // Outer Wheel Sampling 1 Region 1:
127  {
128  CellBinning phiBinning(startPhi,endPhi,64);
129  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,1,0,phiBinning);
130  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
131  emecDetectorManager->addDetectorRegion(region);
132  }
133  // Outer Wheel Sampling 1 Region 2:
134  {
135  CellBinning phiBinning(startPhi,endPhi,64);
136  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,2,0,phiBinning);
137  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
138  emecDetectorManager->addDetectorRegion(region);
139  }
140  // Outer Wheel Sampling 1 Region 3:
141  {
142  CellBinning phiBinning(startPhi,endPhi,64);
143  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,3,0,phiBinning);
144  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
145  emecDetectorManager->addDetectorRegion(region);
146  }
147  // Outer Wheel Sampling 1 Region 4:
148  {
149  CellBinning phiBinning(startPhi,endPhi,64);
150  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,4,0,phiBinning);
151  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
152  emecDetectorManager->addDetectorRegion(region);
153  }
154  // Outer Wheel Sampling 1 Region 5:
155  {
156  CellBinning phiBinning(startPhi,endPhi,64);
157  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,5,0,phiBinning);
158  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
159  emecDetectorManager->addDetectorRegion(region);
160  }
161  // Outer Wheel Sampling 2 Region 0:
162  {
163  CellBinning phiBinning(startPhi,endPhi,256);
164  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,2,0,0,phiBinning);
165  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
166  emecDetectorManager->addDetectorRegion(region);
167  }
168  // Outer Wheel Sampling 2 Region 1:
169  {
170  CellBinning phiBinning(startPhi,endPhi,256);
171  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,2,1,0,phiBinning);
172  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
173  emecDetectorManager->addDetectorRegion(region);
174  }
175  // Outer Wheel Sampling 3 Region 0:
176  {
177  CellBinning phiBinning(startPhi,endPhi,256);
178  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,3,0,0,phiBinning);
179  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
180  emecDetectorManager->addDetectorRegion(region);
181  }
182  }
183  }
184  else {
185  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMEC_OUTER_WHEEL_NEG" : "EMEC_OUTER_WHEEL_POS")
186  << " in Detector Store" << endmsg;
187  }
188 
189  if(detStore->contains<StoredPhysVol>(e==0 ? "EMEC_INNER_WHEEL_NEG" : "EMEC_INNER_WHEEL_POS")) {
190  if (detStore->retrieve(sPhys,e==0 ? "EMEC_INNER_WHEEL_NEG" : "EMEC_INNER_WHEEL_POS")==StatusCode::SUCCESS) {
191 
192  GeoIntrusivePtr<GeoFullPhysVol>emecEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
193 
194  // Inner Wheel Sampling 1 Region 0:
195  {
196  CellBinning phiBinning(startPhi,endPhi,64);
197  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,1,0,1,phiBinning);
198  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
199  emecDetectorManager->addDetectorRegion(region);
200  }
201  // Inner Wheel Sampling 2 Region 0:
202 
203  {
204  CellBinning phiBinning(startPhi,endPhi,64);
205  EMECDetDescr *detDescr = new EMECDetDescr(emecDetectorManager,2,0,1,phiBinning);
206  EMECDetectorRegion *region = new EMECDetectorRegion(emecEnvelope,detDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
207  emecDetectorManager->addDetectorRegion(region);
208  }
209 
210  }
211  }
212  else {
213  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMEC_INNER_WHEEL_NEG" : "EMEC_INNER_WHEEL_POS")
214  << " in Detector Store" << endmsg;
215  }
216 
217  StoredPhysVol *sPresamplerEnvelope;
218 
219  if(detStore->contains<StoredPhysVol>(e==0 ? "PRESAMPLER_EC_NEG":"PRESAMPLER_EC_POS" )) {
220  if (StatusCode::SUCCESS==detStore->retrieve(sPresamplerEnvelope, e==0 ? "PRESAMPLER_EC_NEG":"PRESAMPLER_EC_POS" )) {
221  GeoIntrusivePtr<GeoFullPhysVol> PresamplerEnvelope=sPresamplerEnvelope->getPhysVol();
222  CellBinning presamplerPhiBinning(startPhi,endPhi,64);
223  EMECDetDescr *presamplerDetDescr = new EMECDetDescr(emecDetectorManager,0,0,0,presamplerPhiBinning);
224  EMECDetectorRegion *presamplerRegion = new EMECDetectorRegion(PresamplerEnvelope,presamplerDetDescr,EMECDetectorRegion::DetectorSide(e),projectivityDisplacement);
225  emecDetectorManager->addDetectorRegion(presamplerRegion);
226  }
227  }
228  else {
229  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "PRESAMPLER_EC_NEG":"PRESAMPLER_EC_POS")
230  << " in Detector Store" << endmsg;
231  }
232  }
233  }
234 
235  { // EMB
236  embDetectorManager = new EMBDetectorManager(hvManager->getEMBHVManager(),hvManager->getEMBPresamplerHVManager());
237  int firstEndcap= testbeam==0 ? 0:1;
238  int endEndcap=2;
239 
240  for (int e= firstEndcap ;e<endEndcap;e++) {
241 
242  double startPhi = e==0? M_PI-2*M_PI/1024/2 : -2*M_PI/1024/2;
243  double endPhi = e==0? -M_PI-2*M_PI/1024/2 : 2*M_PI-2*M_PI/1024/2 ;
244  int NDIV = 1;
245  if (testbeam==1) {
246  startPhi=0*M_PI/180;
247  endPhi =22.5*M_PI/180;
248  NDIV=16;
249  }
250 
251  // Sampling layer 3 region 0:
252  {
253  StoredPhysVol *sPhys;
254  if(detStore->contains<StoredPhysVol>(e==0 ? "EMB_NEG" : "EMB_POS")) {
255  if (detStore->retrieve(sPhys,e==0 ? "EMB_NEG" : "EMB_POS")==StatusCode::SUCCESS) {
256  CellBinning phiBinning(startPhi,endPhi,256/NDIV);
257  EMBDetDescr *detDescr = new EMBDetDescr(embDetectorManager,3,0,phiBinning);
258  GeoIntrusivePtr<GeoFullPhysVol>embEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
259  EMBDetectorRegion *region = new EMBDetectorRegion(embEnvelope,detDescr,EMBDetectorRegion::DetectorSide(e));
260  embDetectorManager->addDetectorRegion(region);
261  }
262  }
263  else {
264  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMB_NEG" : "EMB_POS" )<< " in Detector Store" << endmsg;
265  }
266  }
267  // Sampling layer 2 region 0:
268  {
269  StoredPhysVol *sPhys;
270  if(detStore->contains<StoredPhysVol>(e==0 ? "EMB_NEG" : "EMB_POS")) {
271  if (detStore->retrieve(sPhys,e==0 ? "EMB_NEG" : "EMB_POS")==StatusCode::SUCCESS) {
272  CellBinning phiBinning(startPhi,endPhi,256/NDIV);
273  EMBDetDescr *detDescr = new EMBDetDescr(embDetectorManager,2,0,phiBinning);
274  GeoIntrusivePtr<GeoFullPhysVol>embEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
275  EMBDetectorRegion *region = new EMBDetectorRegion(embEnvelope,detDescr,EMBDetectorRegion::DetectorSide(e));
276  embDetectorManager->addDetectorRegion(region);
277  }
278  }
279  else {
280  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMB_NEG" : "EMB_POS" )<< " in Detector Store" << endmsg;
281  }
282  }
283  // Sampling layer 2 region 1:
284  {
285  StoredPhysVol *sPhys;
286  if(detStore->contains<StoredPhysVol>(e==0 ? "EMB_NEG" : "EMB_POS")) {
287  if (detStore->retrieve(sPhys,e==0 ? "EMB_NEG" : "EMB_POS")==StatusCode::SUCCESS) {
288  CellBinning phiBinning(startPhi,endPhi,256/NDIV);
289  EMBDetDescr *detDescr = new EMBDetDescr(embDetectorManager,2,1,phiBinning);
290  GeoIntrusivePtr<GeoFullPhysVol>embEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
291  EMBDetectorRegion *region = new EMBDetectorRegion(embEnvelope,detDescr,EMBDetectorRegion::DetectorSide(e));
292  embDetectorManager->addDetectorRegion(region);
293  }
294  }
295  else {
296  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMB_NEG" : "EMB_POS") << " in Detector Store" << endmsg;
297  }
298  }
299  // Sampling layer 1 region 0:
300  {
301  StoredPhysVol *sPhys;
302  if(detStore->contains<StoredPhysVol>(e==0 ? "EMB_NEG" : "EMB_POS")) {
303  if (detStore->retrieve(sPhys,e==0 ? "EMB_NEG" : "EMB_POS")==StatusCode::SUCCESS) {
304  CellBinning phiBinning(startPhi,endPhi,64/NDIV);
305  EMBDetDescr *detDescr = new EMBDetDescr(embDetectorManager,1,0,phiBinning);
306  GeoIntrusivePtr<GeoFullPhysVol>embEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
307  EMBDetectorRegion *region = new EMBDetectorRegion(embEnvelope,detDescr,EMBDetectorRegion::DetectorSide(e));
308  embDetectorManager->addDetectorRegion(region);
309  }
310  }
311  else {
312  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMB_NEG" : "EMB_POS") << " in Detector Store" << endmsg;
313  }
314  }
315  // Sampling layer 1 region 0:
316  {
317  StoredPhysVol *sPhys;
318  if(detStore->contains<StoredPhysVol>(e==0 ? "EMB_NEG" : "EMB_POS")) {
319  if (detStore->retrieve(sPhys,e==0 ? "EMB_NEG" : "EMB_POS")==StatusCode::SUCCESS) {
320  CellBinning phiBinning(startPhi,endPhi,256/NDIV);
321  EMBDetDescr *detDescr = new EMBDetDescr(embDetectorManager,1,1,phiBinning);
322  GeoIntrusivePtr<GeoFullPhysVol>embEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
323  EMBDetectorRegion *region = new EMBDetectorRegion(embEnvelope,detDescr,EMBDetectorRegion::DetectorSide(e));
324  embDetectorManager->addDetectorRegion(region);
325  }
326  }
327  else {
328  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMB_NEG" : "EMB_POS") << " in Detector Store" << endmsg;
329  }
330  }
331  // Sampling layer 0 region 0:
332  {
333  StoredPhysVol *sPhys;
334  if(detStore->contains<StoredPhysVol>(e==0 ? "EMB_NEG" : "EMB_POS")) {
335  if (detStore->retrieve(sPhys,e==0 ? "EMB_NEG" : "EMB_POS")==StatusCode::SUCCESS) {
336  CellBinning phiBinning(startPhi,endPhi,64/NDIV);
337  EMBDetDescr *detDescr = new EMBDetDescr(embDetectorManager,0,0,phiBinning);
338  GeoIntrusivePtr<GeoFullPhysVol>embEnvelope=(GeoIntrusivePtr<GeoFullPhysVol>) sPhys->getPhysVol();
339  EMBDetectorRegion *region = new EMBDetectorRegion(embEnvelope,detDescr,EMBDetectorRegion::DetectorSide(e));
340  embDetectorManager->addDetectorRegion(region);
341  }
342  }
343  else {
344  log << MSG::DEBUG << " No Stored PV for " << (e==0 ? "EMB_NEG" : "EMB_POS") << " in Detector Store" << endmsg;
345  }
346  }
347  }
348  }
349 
350  bool allOk{true};
351  StatusCode sc = detStore->record(embDetectorManager, embDetectorManager->getName());
352  if(sc.isFailure()) {
353  log << MSG::ERROR << "Unable to record embDetectorManager" << endmsg;
354  allOk = false;
355  }
356 
357  sc = detStore->record(emecDetectorManager, emecDetectorManager->getName());
358  if(sc.isFailure()) {
359  log << MSG::ERROR << "Unable to record emecDetectorManager" << endmsg;
360  allOk = false;
361  }
362 
363  sc = detStore->record(hecDetectorManager, hecDetectorManager->getName());
364  if(sc.isFailure()) {
365  log << MSG::ERROR << "Unable to record hecDetectorManager" << endmsg;
366  allOk = false;
367  }
368 
369  sc = detStore->record(fcalDetectorManager, fcalDetectorManager->getName());
370  if(sc.isFailure()) {
371  log << MSG::ERROR << "Unable to record fcalDetectorManager" << endmsg;
372  allOk = false;
373  }
374 
375  if(!allOk) {
376  delete embDetectorManager;
377  delete emecDetectorManager;
378  delete hecDetectorManager;
379  delete fcalDetectorManager;
380 
381  embDetectorManager=nullptr;
382  emecDetectorManager=nullptr;
383  hecDetectorManager=nullptr;
384  fcalDetectorManager=nullptr;
385  }
386 
387  return std::make_tuple(embDetectorManager,emecDetectorManager,hecDetectorManager,fcalDetectorManager);
388 }
EMBDetDescr
Descriptor for regions of the electromagnetic barrel calorimeter.
Definition: EMBDetDescr.h:27
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
beamspotman.r
def r
Definition: beamspotman.py:676
LArHVManager.h
LArHVManager::getEMECPresamplerHVManager
const EMECPresamplerHVManager & getEMECPresamplerHVManager() const
Definition: LArHVManager.cxx:51
FCALDetectorManager
A manager class providing access to readout geometry information for the forward calorimeter.
Definition: FCALDetectorManager.h:29
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
EMBDetectorRegion.h
EMECDetectorRegion::DetectorSide
DetectorSide
Definition: EMECDetectorRegion.h:33
EMECDetectorManager
A manager class providing access to readout geometry information for the electromagnetic endcap calor...
Definition: EMECDetectorManager.h:31
hist_file_dump.d
d
Definition: hist_file_dump.py:137
EMECDetectorManager.h
FCALDetectorManager.h
M_PI
#define M_PI
Definition: ActiveFraction.h:11
StoredAlignX.h
EMBDetDescr.h
EMECDetectorRegion
Definition: EMECDetectorRegion.h:30
HECDetectorRegion.h
EMECDetDescr
Descriptor for regions of the electromagnetic endcap calorimeter.
Definition: EMECDetDescr.h:27
TrigVSI::AlgConsts::nPhi
constexpr int nPhi
Default bin number of phi for vertex map.
Definition: Trigger/TrigTools/TrigVrtSecInclusive/TrigVrtSecInclusive/Constants.h:27
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
LArReadoutGeometryBuilder.h
Helper function for building readout geometries of all LAr subsystems.
LArHVManager::getEMBHVManager
const EMBHVManager & getEMBHVManager() const
Definition: LArHVManager.cxx:26
StoredPhysVol
Definition: StoredPhysVol.h:27
TRT::Hit::side
@ side
Definition: HitInfo.h:83
HECLongBlock.h
python.PyAthena.module
module
Definition: PyAthena.py:131
EMBDetectorManager
A manager class providing access to readout geometry information for the electromagnetic barrel calor...
Definition: EMBDetectorManager.h:32
EMECHVModule::INNER
@ INNER
Definition: EMECHVModule.h:22
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:125
StoredPhysVol::getPhysVol
GeoFullPhysVol * getPhysVol()
Destructor.
Definition: StoredPhysVol.cxx:20
HECDetectorRegion::DetectorSide
DetectorSide
Definition: HECDetectorRegion.h:34
LArHVManager::getEMECHVManager
const EMECHVManager & getEMECHVManager(IOType IO) const
Definition: LArHVManager.cxx:31
HECDetDescr
Descriptor for regions of the hadronic endcap calorimeter.
Definition: HECDetDescr.h:30
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
HECDetectorRegion
Description of a region of homogenous granularity in the hadronic endcap calorimeter.
Definition: HECDetectorRegion.h:31
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArHVManager::getFCALHVManager
const FCALHVManager & getFCALHVManager() const
Definition: LArHVManager.cxx:41
HECDetectorManager
A manager class providing access to readout geometry information for the hadronic endcap calorimeter.
Definition: HECDetectorManager.h:28
EMBDetectorRegion::DetectorSide
DetectorSide
Definition: EMBDetectorRegion.h:32
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
FCALModule::Endcap
Endcap
Definition: FCALModule.h:38
EMECDetDescr.h
FCALModule
Definition: FCALModule.h:33
EMECHVModule::OUTER
@ OUTER
Definition: EMECHVModule.h:22
LArHVManager
This class provides access to the High Voltage throughout the LAr. High voltage conditions can also b...
Definition: LArHVManager.h:24
HECDetDescr.h
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
LArHVManager::getHECHVManager
const HECHVManager & getHECHVManager() const
Definition: LArHVManager.cxx:36
buildLArReadoutGeometry
std::tuple< EMBDetectorManager *,EMECDetectorManager *,HECDetectorManager *,FCALDetectorManager * > buildLArReadoutGeometry(StoreGateSvc *detStore, const LArHVManager *hvManager, IMessageSvc *msgSvc, int testbeam, double projectivityDisplacement)
Definition: LArReadoutGeometryBuilder.cxx:37
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
FCALModule::Module
Module
Definition: FCALModule.h:37
EMBDetectorRegion
Definition: EMBDetectorRegion.h:28
StoreGateSvc.h
EMECDetectorRegion.h
EMBDetectorManager.h
FCALModule.h
HECDetectorManager.h
StoredPhysVol.h
LArHVManager::getEMBPresamplerHVManager
const EMBPresamplerHVManager & getEMBPresamplerHVManager() const
Definition: LArHVManager.cxx:46