Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ZDC_DetFactory Class Reference

#include <ZDC_DetFactory.h>

Inheritance diagram for ZDC_DetFactory:
Collaboration diagram for ZDC_DetFactory:

Public Member Functions

 ZDC_DetFactory (StoreGateSvc *)
 
 ~ZDC_DetFactory ()
 
virtual void create (GeoPhysVol *world) override
 
virtual const ZDC_DetManagergetDetectorManager () const override
 
void buildMaterials (StoredMaterialManager *materialManager)
 
void addModule (std::unique_ptr< ZDC_ModuleBase > module)
 
void setTANSlot (uint iside, double width, double height, double depth, const GeoTrf::Transform3D trf, const std::string &name)
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

ZDC_DetManagerm_detectorManager {}
 
StoreGateSvcm_detectorStore {}
 
const ZdcIDm_zdcID {}
 
std::vector< std::unique_ptr< ZDC_ModuleBase > > m_modules
 
std::array< GeoTrf::Transform3D, 2 > m_tanSlotTransform
 
std::array< double, 2 > m_tanW
 
std::array< double, 2 > m_tanH
 
std::array< double, 2 > m_tanD
 
std::array< std::string, 2 > m_tanSlotName
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

Definition at line 24 of file ZDC_DetFactory.h.

Constructor & Destructor Documentation

◆ ZDC_DetFactory()

ZDC_DetFactory::ZDC_DetFactory ( StoreGateSvc detStore)

Definition at line 42 of file ZDC_DetFactory.cxx.

42  :
43  AthMessaging("ZDC_DetFactory"),
44  m_detectorManager(NULL),
47  m_tanW{0.0, 0.0},
48  m_tanH{0.0, 0.0},
49  m_tanD{0.0, 0.0}
50 {
51  if (m_detectorStore->retrieve( m_zdcID ).isFailure() ) {
52  MsgStream LogStream(Athena::getMessageSvc(), "ZDC_DetectorFactory::ZDC_DetFactory");
53  LogStream << MSG::ERROR << "execute: Could not retrieve ZdcID object from the detector store" << endmsg;
54  }
55 }

◆ ~ZDC_DetFactory()

ZDC_DetFactory::~ZDC_DetFactory ( )

Definition at line 57 of file ZDC_DetFactory.cxx.

57 {}

Member Function Documentation

◆ addModule()

void ZDC_DetFactory::addModule ( std::unique_ptr< ZDC_ModuleBase module)
inline

Definition at line 37 of file ZDC_DetFactory.h.

37 { m_modules.push_back(std::move(module) ); }

◆ buildMaterials()

void ZDC_DetFactory::buildMaterials ( StoredMaterialManager materialManager)

Definition at line 118 of file ZDC_DetFactory.cxx.

118  {
119 
120  const GeoElement *Oxygen = materialManager->getElement("Oxygen");
121  const GeoElement *Silicon = materialManager->getElement("Silicon");
122  const GeoElement *Hydrogen = materialManager->getElement("Hydrogen");
123  const GeoElement *Nitrogen = materialManager->getElement("Nitrogen");
124  const GeoElement *Carbon = materialManager->getElement("Carbon");
125  const GeoElement *Argon = materialManager->getElement("Argon");
126  const GeoElement *Tung = materialManager->getElement("Wolfram");
127  const GeoElement *Iron = materialManager->getElement("Iron");
128  const GeoElement *Nickel = materialManager->getElement("Nickel");
129 
130  const int nEntries = 50; // Number of data points in each array
131  double eV = Gaudi::Units::eV;
132  double cm = Gaudi::Units::cm;
133 
134  //Evenly distributed photon energy bins for the coming arrays of material properties. Range is selected for a PMT which is sensitive from 300-650nm wavelength
135  double photonEnergy[nEntries] = {0};
136  double minEnergy = 1.90769 * eV; double maxEnergy = 4.08882 * eV;
137  double step = (maxEnergy-minEnergy)/nEntries;
138  for(int i=0; i<nEntries; ++i){
139  photonEnergy[i] = minEnergy + i*step;
140  }
141 
142  // Optical Air density and composition obtained from
143  // From https://physics.nist.gov/cgi-bin/Star/compos.pl?matno=104
145  OpAir->add(Nitrogen, 0.755);
146  OpAir->add(Oxygen , 0.232);
147  OpAir->add(Argon , 0.013);
148 
149  // The air in the modules must have refractive index defined for total internal reflection to work
150  // From NIST https://emtoolbox.nist.gov/wavelength/documentation.asp
151  double RefractiveIndexAir[nEntries];
152  for(int i=0; i<nEntries; ++i)
153  RefractiveIndexAir[i] = 1.000271800;
154 
156  airMPT->AddProperty("RINDEX", photonEnergy, RefractiveIndexAir, nEntries);
157  OpAir->SetMaterialPropertiesTable(airMPT);
158  OpAir->lock();
159  materialManager->addMaterial("ZDC", OpAir);
160 
161  // RPD fiber core and ZDC rod material
162  // Composition from https://physics.nist.gov/cgi-bin/Star/compos.pl?matno=245
164  OpSilicaCore->add(Silicon, 0.467);
165  OpSilicaCore->add(Oxygen, 0.533);
166 
167  // Refractive index of fused silica obtained from
168  // https://www.heraeus.com/media/media/hca/doc_hca/products_and_solutions_8/optics/Data_and_Properties_Optics_fused_silica_EN.pdf
169  double silica_RIND[] = {1.45656, 1.45694, 1.45737, 1.45781, 1.45825, 1.4587 , 1.45914, 1.45959, 1.46003, 1.46048,
170  1.46095, 1.46145, 1.46194, 1.46242, 1.46289, 1.4634 , 1.46394, 1.46448, 1.46502, 1.46556,
171  1.46608, 1.46666, 1.46725, 1.46784, 1.46843, 1.46902, 1.46961, 1.47024, 1.4709 , 1.47155,
172  1.4722 , 1.47288, 1.47356, 1.47425, 1.47494, 1.47566, 1.4764 , 1.47715, 1.4779 , 1.47864,
173  1.47935, 1.48014, 1.48093, 1.48172, 1.48254, 1.48339, 1.48424, 1.4851 , 1.48598, 1.48689};
174 
175  // Absorption length index of fused silica derrived from
176  // https://www.heraeus.com/media/media/hca/doc_hca/products_and_solutions_8/optics/Data_and_Properties_Optics_fused_silica_EN.pdf
177  double silica_ABSL[] = {1.786e+04 * cm, 1.556e+04 * cm, 1.982e+04 * cm, 2.369e+04 * cm, 2.046e+04 * cm, 1.595e+04 * cm, 1.582e+04 * cm,
178  1.420e+04 * cm, 1.279e+04 * cm, 1.545e+04 * cm, 1.498e+04 * cm, 1.358e+04 * cm, 1.824e+04 * cm, 2.320e+04 * cm,
179  3.736e+04 * cm, 2.155e+04 * cm, 1.718e+04 * cm, 1.871e+04 * cm, 2.286e+04 * cm, 3.597e+04 * cm, 4.358e+04 * cm,
180  2.751e+04 * cm, 1.967e+04 * cm, 1.743e+04 * cm, 1.425e+04 * cm, 1.198e+04 * cm, 1.371e+04 * cm, 1.911e+04 * cm,
181  4.413e+04 * cm, 4.002e+04 * cm, 2.621e+04 * cm, 1.420e+04 * cm, 1.085e+04 * cm, 1.020e+04 * cm, 1.090e+04 * cm,
182  1.267e+04 * cm, 1.369e+04 * cm, 1.427e+04 * cm, 1.484e+04 * cm, 1.480e+04 * cm, 1.443e+04 * cm, 1.274e+04 * cm,
183  1.242e+04 * cm, 1.212e+04 * cm, 1.232e+04 * cm, 1.251e+04 * cm, 1.168e+04 * cm, 1.052e+04 * cm, 1.197e+04 * cm, 8.355e+03 * cm};
184 
186  silicaCoreMPT->AddProperty("RINDEX" , photonEnergy, silica_RIND, nEntries); // index of refraction
187  silicaCoreMPT->AddProperty("ABSLENGTH", photonEnergy, silica_ABSL, nEntries); // absorption length
188  OpSilicaCore->SetMaterialPropertiesTable(silicaCoreMPT);
189  OpSilicaCore->lock();
190  materialManager->addMaterial("ZDC", OpSilicaCore);
191 
192  // RPD fiber cladding
193  // Composition from https://physics.nist.gov/cgi-bin/Star/compos.pl?matno=245
195  OpSilicaClad->add(Silicon, 0.467);
196  OpSilicaClad->add(Oxygen, 0.533);
197 
198  // Numerical aperture is given by data sheet as 0.22 and NA = sqrt( n1^2 - n2^2 ), so n2 = sqrt( n1^2 - NA^2 ) where n1 is silica_RIND
199  // https://www.content.molex.com/dxdam/literature/987650-8936.pdf
200  double silica_clad_RIND[] = {1.43985, 1.44023, 1.44067, 1.44112, 1.44156, 1.44201, 1.44246, 1.44291, 1.44336, 1.44381,
201  1.44429, 1.4448 , 1.44529, 1.44577, 1.44625, 1.44677, 1.44731, 1.44786, 1.44841, 1.44895,
202  1.44948, 1.45007, 1.45067, 1.45126, 1.45186, 1.45245, 1.45305, 1.45369, 1.45435, 1.45501,
203  1.45567, 1.45635, 1.45705, 1.45774, 1.45844, 1.45916, 1.45992, 1.46067, 1.46143, 1.46219,
204  1.4629 , 1.4637 , 1.46449, 1.46529, 1.46612, 1.46698, 1.46785, 1.46871, 1.4696 , 1.47052};
205 
206  // Silica cladding
208  silicaCladMPT->AddProperty("RINDEX" , photonEnergy, silica_clad_RIND, nEntries); // index of refraction
209  silicaCladMPT->AddProperty("ABSLENGTH", photonEnergy, silica_ABSL , nEntries); // absorption length
210  OpSilicaClad->SetMaterialPropertiesTable(silicaCladMPT);
211  OpSilicaClad->lock();
212  materialManager->addMaterial("ZDC", OpSilicaClad);
213 
214  // Kapton fiber optic buffer material
215  // Composition from https://physics.nist.gov/cgi-bin/Star/compos.pl?matno=179
217  OpKapton->add(Hydrogen, 0.026362);
218  OpKapton->add(Carbon , 0.691133);
219  OpKapton->add(Nitrogen, 0.073270);
220  OpKapton->add(Oxygen , 0.209235);
221 
222  // Refractive index obtained from
223  // https://engineering.case.edu/centers/sdle/sites/engineering.case.edu.centers.sdle/files/optical_properties_of_materials.pdf
224  double kapton_RIND[] = {1.7095 , 1.7111 , 1.7143 , 1.7191, 1.7207 , 1.7255 , 1.7271 , 1.73157, 1.7351 , 1.7383 ,
225  1.7416 , 1.7464 , 1.74978, 1.7545, 1.7593 , 1.766 , 1.7692 , 1.7758 , 1.78179, 1.79009,
226  1.794 , 1.80245, 1.8074 , 1.8157, 1.82184, 1.82659, 1.8344 , 1.84222, 1.8514 , 1.8584 ,
227  1.86392, 1.8723 , 1.88251, 1.8959, 1.90567, 1.92604, 1.93911, 1.95036, 1.96867, 1.97804,
228  1.9905 , 1.99755, 2.00821, 2.0146, 2.03435, 2.05705, 2.08078, 2.10021, 2.12912, 2.14333};
229 
230  // Reflectivity obtained from
231  // https://amostech.com/TechnicalPapers/2018/Poster/Bengtson.pdf
232  double kapton_REFL[] = {0.502195 , 0.473894 , 0.446164 , 0.413816 , 0.375095 , 0.336845 , 0.293879 , 0.239299 , 0.200573 , 0.141596 ,
233  0.0949924 , 0.0590249 , 0.0353952 , 0.0206475 , 0.01305 , 0.00915075, 0.00722501, 0.00551299, 0.00552271, 0.00553177,
234  0.00554062, 0.00554942, 0.00555642, 0.00556579, 0.0083157, 0.011944 , 0.0172255 , 0.0225071 , 0.0277887 , 0.0330702 ,
235  0.0383518 , 0.0436334 , 0.0489149 , 0.0541965 , 0.0594781, 0.0647597 , 0.0700412 , 0.0753228 , 0.0806044 , 0.0858859 ,
236  0.0911675 , 0.0964491 , 0.101731 , 0.107012 , 0.112294 , 0.117575 , 0.122857 , 0.128139 , 0.13342 , 0.138702 };
237 
238  // Absorption length obtained from
239  // https://pubs.rsc.org/fa/content/articlehtml/2018/ra/c7ra12101f
240  double kapton_ABSL[] = {0.00867389 * cm, 0.00842316 * cm, 0.00818715 * cm, 0.00798542 * cm, 0.00774517 * cm, 0.00751684 * cm, 0.00729959 * cm, 0.00709258 * cm, 0.00685686 * cm, 0.0066337 * cm,
241  0.00642212 * cm, 0.00616231 * cm, 0.00587855 * cm, 0.00561968 * cm, 0.00541849 * cm, 0.0052337 * cm, 0.00504545 * cm, 0.00487671 * cm, 0.00474623 * cm, 0.00461459 * cm,
242  0.00449314 * cm, 0.00437628 * cm, 0.0042637 * cm, 0.00413695 * cm, 0.00401798 * cm, 0.00382827 * cm, 0.003625 * cm, 0.00335813 * cm, 0.00303474 * cm, 0.00264672 * cm,
243  0.00226016 * cm, 0.00185863 * cm, 0.00146109 * cm, 0.00116967 * cm, 0.000901973 * cm, 0.000721492 * cm, 0.000559526 * cm, 0.000463349 * cm, 0.00034795 * cm, 0.000317447 * cm,
244  0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm, 0.000317447 * cm};
245 
246  // Kapton
248  kaptonMPT->AddProperty("RINDEX" , photonEnergy, kapton_RIND, nEntries);
249  kaptonMPT->AddProperty("ABSLENGTH" , photonEnergy, kapton_ABSL, nEntries);
250  kaptonMPT->AddProperty("REFLECTIVITY", photonEnergy, kapton_REFL, nEntries);
251  OpKapton->SetMaterialPropertiesTable(kaptonMPT);
252  OpKapton->lock();
253  materialManager->addMaterial("ZDC", OpKapton);
254 
255  // Absorber composition: savannah.cern.ch/task/download.php?file_id=22925
256  GeoMaterial *Tungsten = new GeoMaterial("ZDC::Tungsten", 18.155 * GeoModelKernelUnits::g / Gaudi::Units::cm3);
257  Tungsten->add(Tung , 0.948);
258  Tungsten->add(Nickel, 0.037);
259  Tungsten->add(Iron , 0.015);
260  Tungsten->lock();
261  materialManager->addMaterial("ZDC", Tungsten);
262 
263  // ZDC housing material
264  GeoMaterial *Steel = new GeoMaterial("ZDC::Steel", 7.9 * GeoModelKernelUnits::g / Gaudi::Units::cm3);
265  Steel->add(Iron , 0.98);
266  Steel->add(Carbon, 0.02);
267  Steel->lock();
268  materialManager->addMaterial("ZDC", Steel);
269 
270 }

◆ create()

void ZDC_DetFactory::create ( GeoPhysVol *  world)
overridevirtual

Definition at line 67 of file ZDC_DetFactory.cxx.

68 {
70  MsgStream LogStream(Athena::getMessageSvc(), "ZDC_DetectorFactory::create");
71 
72  StoredMaterialManager *theMaterialManager;
73  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) {
74  MsgStream LogStream(Athena::getMessageSvc(), "ZDC_DetectorFactory::create");
75  LogStream << MSG::ERROR << "execute: Could not retrieve StoredMaterialManager object from the detector store" << endmsg;
76  return;
77  }
78 
79  buildMaterials(theMaterialManager);
80 
81  /*************************************************
82  * Create TAN/TAXN slots
83  **************************************************/
84  std::array<GeoFullPhysVol*, 2> Envelope_Physical;
85  for(uint side : {0,1}){
86  const GeoMaterial *Air = theMaterialManager->getMaterial("std::Air");
87  GeoBox *Envelope_Box = new GeoBox(m_tanW.at(side) * Gaudi::Units::mm * 0.5, m_tanH.at(side) * Gaudi::Units::mm * 0.5, m_tanD.at(side) * Gaudi::Units::mm * 0.5);
88  GeoLogVol *Envelope_Logical = new GeoLogVol("Envelope_Logical", Envelope_Box, Air);
89  Envelope_Physical.at(side) = new GeoFullPhysVol(Envelope_Logical);
90 
91  LogStream << MSG::INFO << "Creating " << m_tanSlotName.at(side) << " with dimensions (x,y,z) (" << m_tanW.at(side) << ", " << m_tanH.at(side) << ", " << m_tanD.at(side) << ") at ATLAS coordinates (x,y,z) (" << m_tanSlotTransform.at(side).translation().x() << ", " << m_tanSlotTransform.at(side).translation().y() << ", " << m_tanSlotTransform.at(side).translation().z() << ")" << endmsg;
92  }
93 
94  /*************************************************
95  * Place Detectors in TAN/TAXN slots
96  **************************************************/
97  for(auto&& module : m_modules){
98  int side = (module->getSide() > 0) ? 1 : 0;
99  LogStream << MSG::INFO << "Creating " << module->getName() << " at TAN coordinates (x,y,z): (" << module->getTransform().translation().x() << ", " << module->getTransform().translation().y() << ", " << module->getTransform().translation().z() << ")" << endmsg;
100  module->create(Envelope_Physical.at(side), theMaterialManager, m_zdcID);
101  }
102 
103  /*************************************************
104  * Place TAN/TAXN slots
105  **************************************************/
106  for(int side : {0, 1}){
107  int sideSign = (side == 0) ? -1 : 1;
108  world->add(new GeoNameTag(m_tanSlotName.at(side)));
109  world->add(new GeoIdentifierTag(m_zdcID->channel_id(sideSign, 0, ZdcIDType::INACTIVE,ZdcIDVolChannel::AIR).get_identifier32().get_compact()));
110  world->add(new GeoAlignableTransform(m_tanSlotTransform.at(side)));
111  world->add(Envelope_Physical.at(side));
112 
113  m_detectorManager->addTreeTop(Envelope_Physical.at(side));
114  }
115 
116 }

◆ getDetectorManager()

const ZDC_DetManager * ZDC_DetFactory::getDetectorManager ( ) const
overridevirtual

Definition at line 272 of file ZDC_DetFactory.cxx.

272 { return m_detectorManager; }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

◆ setTANSlot()

void ZDC_DetFactory::setTANSlot ( uint  iside,
double  width,
double  height,
double  depth,
const GeoTrf::Transform3D  trf,
const std::string &  name 
)

Definition at line 59 of file ZDC_DetFactory.cxx.

59  {
60  m_tanW.at(iside) = width;
61  m_tanH.at(iside) = height;
62  m_tanD.at(iside) = depth;
63  m_tanSlotName.at(iside) = name;
64  m_tanSlotTransform.at(iside) = trf;
65 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_detectorManager

ZDC_DetManager* ZDC_DetFactory::m_detectorManager {}
private

Definition at line 42 of file ZDC_DetFactory.h.

◆ m_detectorStore

StoreGateSvc* ZDC_DetFactory::m_detectorStore {}
private

Definition at line 43 of file ZDC_DetFactory.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_modules

std::vector< std::unique_ptr<ZDC_ModuleBase> > ZDC_DetFactory::m_modules
private

Definition at line 45 of file ZDC_DetFactory.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_tanD

std::array<double, 2> ZDC_DetFactory::m_tanD
private

Definition at line 47 of file ZDC_DetFactory.h.

◆ m_tanH

std::array<double, 2> ZDC_DetFactory::m_tanH
private

Definition at line 47 of file ZDC_DetFactory.h.

◆ m_tanSlotName

std::array<std::string, 2> ZDC_DetFactory::m_tanSlotName
private

Definition at line 48 of file ZDC_DetFactory.h.

◆ m_tanSlotTransform

std::array<GeoTrf::Transform3D, 2> ZDC_DetFactory::m_tanSlotTransform
private

Definition at line 46 of file ZDC_DetFactory.h.

◆ m_tanW

std::array<double, 2> ZDC_DetFactory::m_tanW
private

Definition at line 47 of file ZDC_DetFactory.h.

◆ m_zdcID

const ZdcID* ZDC_DetFactory::m_zdcID {}
private

Definition at line 44 of file ZDC_DetFactory.h.


The documentation for this class was generated from the following files:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
egammaParameters::depth
@ depth
pointing depth of the shower as calculated in egammaqgcld
Definition: egammaParamDefs.h:276
ZDC_DetFactory::m_tanH
std::array< double, 2 > m_tanH
Definition: ZDC_DetFactory.h:47
ZDC_DetFactory::m_detectorManager
ZDC_DetManager * m_detectorManager
Definition: ZDC_DetFactory.h:42
python.PhysicalConstants.STP_Temperature
float STP_Temperature
Definition: PhysicalConstants.py:119
GeoMaterialPropertiesTable::AddProperty
void AddProperty(const char *key, double *PhotonMomenta, double *PropertyValues, int NumEntries)
Definition: GeoMaterialPropertiesTable.cxx:31
ZDC_DetManager
Definition: ZDC_DetManager.h:13
ZDC_DetManager::addTreeTop
void addTreeTop(PVLink)
Definition: ZDC_DetManager.cxx:36
ZDC_DetFactory::m_tanW
std::array< double, 2 > m_tanW
Definition: ZDC_DetFactory.h:47
StoredMaterialManager::getElement
virtual const GeoElement * getElement(const std::string &name)=0
cm3
#define cm3
Identifier::get_identifier32
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
stateSolid
@ stateSolid
Definition: GeoExtendedMaterial.h:25
GeoExtendedMaterial::SetMaterialPropertiesTable
void SetMaterialPropertiesTable(GeoMaterialPropertiesTable *MPT)
Definition: GeoExtendedMaterial.h:73
AIR
@ AIR
Definition: ZdcID.h:22
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
ZDC_DetFactory::m_tanD
std::array< double, 2 > m_tanD
Definition: ZDC_DetFactory.h:47
Identifier32::get_compact
value_type get_compact() const
Get the compact id.
Definition: Identifier32.h:44
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
StoreGateSvc::retrieve
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
ZdcID::channel_id
Identifier channel_id(int side, int module, int type, int channel) const
Definition: ZdcID.h:205
TRT::Hit::side
@ side
Definition: HitInfo.h:83
Trk::DetectorElemType::Silicon
@ Silicon
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
python.PyAthena.module
module
Definition: PyAthena.py:131
ZDC_DetFactory::m_tanSlotTransform
std::array< GeoTrf::Transform3D, 2 > m_tanSlotTransform
Definition: ZDC_DetFactory.h:46
stateGas
@ stateGas
Definition: GeoExtendedMaterial.h:25
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
AthMessaging::AthMessaging
AthMessaging()
Default constructor:
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
lumiFormat.i
int i
Definition: lumiFormat.py:85
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
StoredMaterialManager::addMaterial
virtual void addMaterial(const std::string &space, GeoMaterial *material)=0
ZDC_DetFactory::m_zdcID
const ZdcID * m_zdcID
Definition: ZDC_DetFactory.h:44
ZDC_DetFactory::m_modules
std::vector< std::unique_ptr< ZDC_ModuleBase > > m_modules
Definition: ZDC_DetFactory.h:45
ZDC_DetFactory::m_tanSlotName
std::array< std::string, 2 > m_tanSlotName
Definition: ZDC_DetFactory.h:48
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
python.SystemOfUnits.eV
int eV
Definition: SystemOfUnits.py:155
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
StoredMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(const std::string &name)=0
StoredMaterialManager
This class holds one or more material managers and makes them storeable, under StoreGate.
Definition: StoredMaterialManager.h:28
LArCellBinning.step
step
Definition: LArCellBinning.py:158
ZDC_DetFactory::buildMaterials
void buildMaterials(StoredMaterialManager *materialManager)
Definition: ZDC_DetFactory.cxx:118
GeoMaterialPropertiesTable
Definition: GeoMaterialPropertiesTable.h:20
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
CaloLCW_tf.trf
trf
Definition: CaloLCW_tf.py:20
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
dqBeamSpot.nEntries
int nEntries
Definition: dqBeamSpot.py:73
INACTIVE
@ INACTIVE
Definition: ZdcID.h:21
ZDC_DetFactory::m_detectorStore
StoreGateSvc * m_detectorStore
Definition: ZDC_DetFactory.h:43
GeoExtendedMaterial
Definition: GeoExtendedMaterial.h:28