ATLAS Offline Software
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
BeamPipeDetectorFactory Class Referencefinal

#include <BeamPipeDetectorFactory.h>

Inheritance diagram for BeamPipeDetectorFactory:
Collaboration diagram for BeamPipeDetectorFactory:

Classes

class  EnvelopeEntry
 
class  EnvelopeShapes
 

Public Member Functions

 BeamPipeDetectorFactory (StoreGateSvc *pDetStore, IRDBAccessSvc *pAccess)
 
 ~BeamPipeDetectorFactory ()
 
virtual void create (GeoPhysVol *world) override
 
virtual const BeamPipeDetectorManagergetDetectorManager () const override
 
void setTagNode (std::string tag, std::string node, std::string mode)
 
void addSections (GeoPhysVol *parent, int region)
 

Private Member Functions

EnvelopeShapes makeEnvelope (const IRDBRecordset_ptr &bpipeEnvelope)
 
EnvelopeShapes makeEnvelopeOld (const IRDBRecordset_ptr &atlasMother)
 
const BeamPipeDetectorFactoryoperator= (const BeamPipeDetectorFactory &right)
 
 BeamPipeDetectorFactory (const BeamPipeDetectorFactory &right)
 

Private Attributes

BeamPipeDetectorManagerm_detectorManager
 
StoredMaterialManagerm_materialManager
 
StoreGateSvcm_detectorStore
 
IRDBAccessSvcm_access
 
std::string m_versionTag
 
std::string m_versionNode
 
std::string m_mode
 
double m_centralRegionZMax
 

Detailed Description

Definition at line 18 of file BeamPipeDetectorFactory.h.

Constructor & Destructor Documentation

◆ BeamPipeDetectorFactory() [1/2]

BeamPipeDetectorFactory::BeamPipeDetectorFactory ( StoreGateSvc pDetStore,
IRDBAccessSvc pAccess 
)

Definition at line 34 of file BeamPipeDetectorFactory.cxx.

39  m_access(pAccess),
41 {}

◆ ~BeamPipeDetectorFactory()

BeamPipeDetectorFactory::~BeamPipeDetectorFactory ( )

Definition at line 43 of file BeamPipeDetectorFactory.cxx.

44 {
45 }

◆ BeamPipeDetectorFactory() [2/2]

BeamPipeDetectorFactory::BeamPipeDetectorFactory ( const BeamPipeDetectorFactory right)
private

Member Function Documentation

◆ addSections()

void BeamPipeDetectorFactory::addSections ( GeoPhysVol *  parent,
int  region 
)

Definition at line 157 of file BeamPipeDetectorFactory.cxx.

158 {
159 
160  IRDBRecordset_ptr bpipeSections = m_access->getRecordsetPtr("BPipeSections",m_versionTag,m_versionNode);
161 
162  bool central = (region == 0);
163 
164  // Sections 2 & 3 are placed in section 1.
165  // pvMotherSection will point to section 1.
166  GeoPhysVol* pvMotherSection = 0;
167  bool addToFirstSection = true;
168  double rminSec1 = 0;
169  double rmaxSec1 = 0;
170  double zminSec1 = 0;
171  double zmaxSec1 = 0;
172 
173  for (unsigned int itemp=0; itemp<bpipeSections->size(); itemp++)
174  {
175  std::string material = (*bpipeSections)[itemp]->getString("MATERIAL");
176  double rMin1 = (*bpipeSections)[itemp]->getDouble("RMIN1") * Gaudi::Units::mm;
177  double rMax1 = (*bpipeSections)[itemp]->getDouble("RMAX1") * Gaudi::Units::mm;
178  double rMin2 = (*bpipeSections)[itemp]->getDouble("RMIN2") * Gaudi::Units::mm;
179  double rMax2 = (*bpipeSections)[itemp]->getDouble("RMAX2") * Gaudi::Units::mm;
180  double z = (*bpipeSections)[itemp]->getDouble("Z") * Gaudi::Units::mm;
181  double dZ = (*bpipeSections)[itemp]->getDouble("DZ") * Gaudi::Units::mm;
182  int secNum = (*bpipeSections)[itemp]->getInt("SECNUM");
183 
184  double zmin = z - dZ;
185  double zmax = z + dZ;
186 
187 
188  // Check if in central or fwd region or if it is split.
189  // We assume it is left/right symmetric.
190  if (central) {
191  if (zmin > m_centralRegionZMax) continue;
193  if (zmax < -m_centralRegionZMax) continue;
195  } else {
196  if (zmax < m_centralRegionZMax) continue;
198  }
199 
200 
201  double znew = 0.5 * (zmin + zmax);
202  double dZnew = 0.5 * (zmax - zmin);
203 
204  std::ostringstream os;
205  if (central) {
206  os << "SectionC";
207  } else {
208  os << "SectionF";
209  }
210  os << std::setw(2) << std::setfill('0') << secNum;
211  std::string name = os.str();
212 
213  //std::cout << "Adding section: " << name
214  // << " rmin1,rmin2,rmax1,rmax2,z,dz = "
215  // << rMin1 << ", "
216  // << rMin2 << ", "
217  // << rMax1 << ", "
218  // << rMax2 << ", "
219  // << znew << ", "
220  // << dZnew << ", "
221  // << material << std::endl;
222 
223  bool isTube = true;
224  GeoShape* shape;
225  if((rMin1==rMin2)&&(rMax1==rMax2)) {
226  shape = new GeoTube(rMin1,rMax1,dZnew);
227  isTube = true;
228  } else {
229  shape = new GeoCons(rMin1,rMin2,
230  rMax1,rMax2,
231  dZnew,
233  isTube = false;
234  }
235 
236  const GeoMaterial* mat = m_materialManager->getMaterial(material);
237  if (mat == 0) {
238  // For backward compatibility - older geometry versions didn't specify the
239  // material namespace
240  // std::cout << "Material """ << material << """ not found. Trying std::" << material << std::endl;
241  mat = m_materialManager->getMaterial("std::"+material);
242  }
243 
244  GeoLogVol* lvSection = new GeoLogVol(name,shape,mat);
245  GeoIntrusivePtr<GeoPhysVol> pvSection{new GeoPhysVol(lvSection)};
246 
247  // Determine if this is a geometry where the first section can act as the mother of the following
248  // sections. The following sections are only added to this if their ave radius is within the radial
249  // extent and their ave z is within the z extent.
250  // As soon as one section fails to meet this the latter sections are not considered.
251  if(secNum==1) {
252  pvMotherSection = pvSection;
253  rminSec1 = rMin1;
254  rmaxSec1 = rMax1;
255  zminSec1 = zmin;
256  zmaxSec1 = zmax;
257  }
258 
259  if (addToFirstSection && secNum != 1) {
260  double rAve = 0.5*(rMin1+rMax1);
261  addToFirstSection = (znew > zminSec1 && znew < zmaxSec1 &&
262  rAve > rminSec1 && rAve < rmaxSec1);
263  }
264 
265 
266  GeoTransform* tfSection = 0;
267  if (znew != 0 && (secNum==1 || !addToFirstSection)) tfSection = new GeoTransform(GeoTrf::TranslateZ3D(znew));
268  GeoIntrusivePtr<GeoNameTag> ntSection{new GeoNameTag(name)};
269 
270  if (addToFirstSection && secNum!=1) {
271  if (!pvMotherSection) {
272  MsgStream gLog(Athena::getMessageSvc(), "BeamPipeDetectorFactory");
273  gLog << MSG::ERROR << "Logic error building beam pipe." << endmsg;
274  }
275  else {
276  //std::cout << "Placing section " << secNum << " in Section1" << std::endl;
277  pvMotherSection->add(ntSection);
278  pvMotherSection->add(pvSection);
279  }
280  } else {
281  //std::cout << "Placing section " << secNum << " in mother envelope" << std::endl;
282  parent->add(ntSection);
283  if (tfSection) parent->add(tfSection);
284  parent->add(pvSection);
285  }
286 
287  // Not needed, but just in case in the future we have +/- sections in central region
288  if(central && z!=0.) {
289  // add rotated section as well
290  GeoTransform* tfSectionRot = 0;
291  if (isTube) {
292  // No need for rotation.
293  tfSectionRot = new GeoTransform(GeoTrf::TranslateZ3D(-znew));
294  } else {
295  // For cone we need to rotate around Y axis.
296  tfSectionRot = new GeoTransform(GeoTrf::TranslateZ3D(-znew)*GeoTrf::RotateY3D(180*Gaudi::Units::deg));
297  }
298  parent->add(ntSection);
299  parent->add(tfSectionRot);
300  parent->add(pvSection);
301  }
302 
303  }
304 }

◆ create()

void BeamPipeDetectorFactory::create ( GeoPhysVol *  world)
overridevirtual

Definition at line 47 of file BeamPipeDetectorFactory.cxx.

48 {
50 
51  if (StatusCode::SUCCESS != m_detectorStore->retrieve(m_materialManager, std::string("MATERIALS"))) {
52  return;
53  }
54 
57  IRDBRecordset_ptr bpipeEnvelope = m_access->getRecordsetPtr("BPipeEnvelope",m_versionTag,m_versionNode);
58  IRDBRecordset_ptr bpipePosition = m_access->getRecordsetPtr("BPipePosition",m_versionTag,m_versionNode);
59 
60  // Get the materials
61  const GeoMaterial *air = m_materialManager->getMaterial("std::Air");
62 
63  // Create beam pipe top level envelopes
64  // It is split into 3 sections.
65  // left, right and central. This is to allow different truth scoring in the different regions.
66 
67  m_centralRegionZMax = 1500 * Gaudi::Units::mm; // For backward compatibility in DB.
68  if (bpipeGeneral->size() != 0) m_centralRegionZMax = (*bpipeGeneral)[0]->getDouble("CENTRALZMAX") * Gaudi::Units::mm;
69 
70  const GeoMaterial* ether = m_materialManager->getMaterial("special::Ether");
71  GeoTube* dummytube= new GeoTube(0., 4711., 4711.);
72  GeoLogVol* dummyBeamPipe = new GeoLogVol("BeamPipe",dummytube,ether);
73  GeoRef<GeoPhysVol> theBeamPipe (new GeoPhysVol(dummyBeamPipe));
74 
75  EnvelopeShapes envelopes;
76 
77  if (bpipeEnvelope->size() != 0) {
78  envelopes = makeEnvelope(bpipeEnvelope);
79  } else {
80  envelopes = makeEnvelopeOld(atlasMother);
81  }
82 
83  GeoLogVol* lvMotherCentral = new GeoLogVol("BeamPipeCentral",envelopes.centralShape,air);
84  GeoPhysVol* pvMotherCentral = new GeoPhysVol(lvMotherCentral);
85 
86 
87  // The treetops need to have unique physical volumes so
88  // we create pvMotherFwdMinus which is identical pvMotherFwdPlus.
89  GeoLogVol* lvMotherFwd = new GeoLogVol("BeamPipeFwd",envelopes.fwdShape,air);
90  GeoPhysVol* pvMotherFwdPlus = new GeoPhysVol(lvMotherFwd);
91  GeoPhysVol* pvMotherFwdMinus = new GeoPhysVol(lvMotherFwd);
92 
93 
94  // Add sections
95  addSections(pvMotherCentral, 0);
96  addSections(pvMotherFwdPlus, 1);
97  addSections(pvMotherFwdMinus, 1);
98 
99  // We have to give them all the name "BeamPipe"
100  // This is the name used by HepVis viewer
101  GeoNameTag *tag = new GeoNameTag("BeamPipe");
102 
103  double beamx = 0.0;
104  double beamy = 0.0;
105  double beamz = 0.0;
106  if (bpipePosition->size() != 0) {
107  beamx = (*bpipePosition)[0]->getDouble("POSX") * Gaudi::Units::mm;
108  beamy = (*bpipePosition)[0]->getDouble("POSY") * Gaudi::Units::mm;
109  beamz = (*bpipePosition)[0]->getDouble("POSZ") * Gaudi::Units::mm;
110  }
111 
112  if (m_mode=="AssemblyBeamPipe"){
113  // Only shift the central section
114  // Central
115  theBeamPipe->add(tag);
116  theBeamPipe->add(new GeoTransform(GeoTrf::Translate3D(beamx,beamy,beamz)));
117  theBeamPipe->add(pvMotherCentral);
118 
119  // FwdPlus
120  theBeamPipe->add(tag);
121  theBeamPipe->add(pvMotherFwdPlus);
122 
123  // FwdMinus
124  theBeamPipe->add(tag);
125  theBeamPipe->add(new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::degree)));
126  theBeamPipe->add(pvMotherFwdMinus);
127 
128  const GeoShape *shape = envelopes.bpShape;
129  GeoLogVol* lvMother = new GeoLogVol("BeamPipe",shape,air);
130  GeoPhysVol* pvMother = new GeoPhysVol(lvMother);
131  pvMother->add(tag);
132  pvMother->add(theBeamPipe);
133 
134  world->add(tag);
135  world->add(pvMother);
136  m_detectorManager->addTreeTop(pvMother);
137  }
138  else{
139  // Default beam pipe, union of central and forward beampipes rather than assembly volume
140  // Central
141  world->add(tag);
142  world->add(new GeoTransform(GeoTrf::Translate3D(beamx,beamy,beamz)));
143  world->add(pvMotherCentral);
144  m_detectorManager->addTreeTop(pvMotherCentral); //
145  // FwdPlus
146  world->add(tag);
147  world->add(pvMotherFwdPlus);
148  m_detectorManager->addTreeTop(pvMotherFwdPlus);
149  // FwdMinus
150  world->add(tag);
151  world->add(new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::degree)));
152  world->add(pvMotherFwdMinus);
153  m_detectorManager->addTreeTop(pvMotherFwdMinus);
154  }
155 }

◆ getDetectorManager()

const BeamPipeDetectorManager * BeamPipeDetectorFactory::getDetectorManager ( ) const
overridevirtual

Definition at line 306 of file BeamPipeDetectorFactory.cxx.

307 {
308  return m_detectorManager;
309 }

◆ makeEnvelope()

BeamPipeDetectorFactory::EnvelopeShapes BeamPipeDetectorFactory::makeEnvelope ( const IRDBRecordset_ptr bpipeEnvelope)
private

Definition at line 320 of file BeamPipeDetectorFactory.cxx.

321 {
322  EnvelopeShapes envelopes;
323 
324  std::vector<EnvelopeEntry> centralEntry;
325  std::vector<EnvelopeEntry> fwdEntry;
326 
327  for (unsigned int i=0; i<bpipeEnvelope->size(); i++) {
328  double z = (*bpipeEnvelope)[i]->getDouble("Z") * Gaudi::Units::mm;
329  double r = (*bpipeEnvelope)[i]->getDouble("R") * Gaudi::Units::mm;
330  EnvelopeEntry entry(z,r);
331  if (z < m_centralRegionZMax) {
332  centralEntry.push_back(entry);
333  } else {
334  fwdEntry.push_back(entry);
335  }
336  }
337 
338  double rFwd = 0;
339  if (fwdEntry.size()) {
340  rFwd = fwdEntry[0].r();
341  } else if (centralEntry.size()) {
342  rFwd = centralEntry[0].r();
343  } else {
344  std::cout << "Unexpected condition when building beam pipe." << std::endl;
345  }
346 
347  // central
348  if (centralEntry.size() == 0) {
349  envelopes.centralShape = new GeoTube(0, rFwd, m_centralRegionZMax);
350  } else {
351  // This case probably will never get used and is untested.
352  GeoRef<GeoPcon> pcone (new GeoPcon(0, 360*Gaudi::Units::deg));
353 
354  pcone->addPlane(-m_centralRegionZMax,0,rFwd);
355  for (int i=centralEntry.size()-1; i>=0; i--) {
356  double z = centralEntry[i].z();
357  double r = centralEntry[i].r();
358  pcone->addPlane(-z,0,r);
359  }
360  for (unsigned int i=0; i<centralEntry.size(); i++) {
361  double z = centralEntry[i].z();
362  double r = centralEntry[i].r();
363  pcone->addPlane(z,0,r);
364  }
365  pcone->addPlane(m_centralRegionZMax,0,rFwd);
366  envelopes.centralShape = pcone;
367  }
368 
369 
370  // forward
371  {
372  GeoRef<GeoPcon> pcone (new GeoPcon(0, 360*Gaudi::Units::deg));
373  pcone->addPlane(m_centralRegionZMax,0,rFwd);
374  if (fwdEntry.size() == 0) {
375  // Unlikely case but for completeness
376  // we make small fwd region if everything is in central region.
377  pcone->addPlane(m_centralRegionZMax+0.1*Gaudi::Units::mm,0,rFwd);
378  }
379  for (unsigned int i=0; i<fwdEntry.size(); i++) {
380  double z = fwdEntry[i].z();
381  double r = fwdEntry[i].r();
382  pcone->addPlane(z,0,r);
383  }
384  envelopes.fwdShape = pcone;
385  }
386 
387  //central+fwd
388  {
389  GeoRef<GeoPcon> Pcone =(new GeoPcon(0, 360*Gaudi::Units::deg));
390  for (int i=fwdEntry.size()-1; i>=0; i--) {
391  double z = fwdEntry[i].z();
392  double r = fwdEntry[i].r();
393  Pcone->addPlane(-z,0,r);
394  }
395  Pcone->addPlane(-m_centralRegionZMax,0,rFwd);
396  Pcone->addPlane(m_centralRegionZMax,0,rFwd);
397  for (unsigned int i=0; i<fwdEntry.size(); i++) {
398  double z = fwdEntry[i].z();
399  double r = fwdEntry[i].r();
400  Pcone->addPlane(z,0,r);
401  }
402  envelopes.bpShape = Pcone;
403  }
404 
405  return envelopes;
406 
407 }

◆ makeEnvelopeOld()

BeamPipeDetectorFactory::EnvelopeShapes BeamPipeDetectorFactory::makeEnvelopeOld ( const IRDBRecordset_ptr atlasMother)
private

Definition at line 411 of file BeamPipeDetectorFactory.cxx.

412 {
413 
414  double iir = (*atlasMother)[0]->getDouble("IDETIR")*Gaudi::Units::cm;
415  double cir = (*atlasMother)[0]->getDouble("CALOIR")*Gaudi::Units::cm;
416  double mir = (*atlasMother)[0]->getDouble("MUONIR")*Gaudi::Units::cm;
417  double totlen = (*atlasMother)[0]->getDouble("ZMAX")*Gaudi::Units::cm;
418  double ilen = (*atlasMother)[0]->getDouble("IDETZMX")*Gaudi::Units::cm;
419  double clen = (*atlasMother)[0]->getDouble("CALOZMX")*Gaudi::Units::cm;
420 
421  // Central Section.
422  GeoRef<GeoTube> bpipeCentralShape (new GeoTube(0, iir, m_centralRegionZMax));
423 
424  // Left/Right section. We create this once (as the +ve z section) and
425  // place th -ve section by doing a rotation.
426 
427  // Right section (+ve z)
428 
429  GeoRef<GeoPcon> bpipeEnvPcone (new GeoPcon(0, 360*Gaudi::Units::deg));
430  bpipeEnvPcone->addPlane(m_centralRegionZMax,0,iir);
431  bpipeEnvPcone->addPlane(ilen,0,iir);
432  bpipeEnvPcone->addPlane(ilen,0,cir);
433  bpipeEnvPcone->addPlane(clen,0,cir);
434  bpipeEnvPcone->addPlane(clen,0,mir);
435  bpipeEnvPcone->addPlane(totlen,0,mir);
436 
437  // These get returned.
438  EnvelopeShapes envelopes;
439  envelopes.centralShape = bpipeCentralShape;
440  envelopes.fwdShape = bpipeEnvPcone;
441 
442  return envelopes;
443 }

◆ operator=()

const BeamPipeDetectorFactory& BeamPipeDetectorFactory::operator= ( const BeamPipeDetectorFactory right)
private

◆ setTagNode()

void BeamPipeDetectorFactory::setTagNode ( std::string  tag,
std::string  node,
std::string  mode 
)

Definition at line 311 of file BeamPipeDetectorFactory.cxx.

312 {
313  m_versionTag = std::move(tag);
314  m_versionNode = std::move(node);
315  m_mode = std::move(mode);
316 }

Member Data Documentation

◆ m_access

IRDBAccessSvc* BeamPipeDetectorFactory::m_access
private

Definition at line 77 of file BeamPipeDetectorFactory.h.

◆ m_centralRegionZMax

double BeamPipeDetectorFactory::m_centralRegionZMax
private

Definition at line 82 of file BeamPipeDetectorFactory.h.

◆ m_detectorManager

BeamPipeDetectorManager* BeamPipeDetectorFactory::m_detectorManager
private

Definition at line 72 of file BeamPipeDetectorFactory.h.

◆ m_detectorStore

StoreGateSvc* BeamPipeDetectorFactory::m_detectorStore
private

Definition at line 76 of file BeamPipeDetectorFactory.h.

◆ m_materialManager

StoredMaterialManager* BeamPipeDetectorFactory::m_materialManager
private

Definition at line 74 of file BeamPipeDetectorFactory.h.

◆ m_mode

std::string BeamPipeDetectorFactory::m_mode
private

Definition at line 80 of file BeamPipeDetectorFactory.h.

◆ m_versionNode

std::string BeamPipeDetectorFactory::m_versionNode
private

Definition at line 79 of file BeamPipeDetectorFactory.h.

◆ m_versionTag

std::string BeamPipeDetectorFactory::m_versionTag
private

Definition at line 78 of file BeamPipeDetectorFactory.h.


The documentation for this class was generated from the following files:
BeamPipeDetectorFactory::m_mode
std::string m_mode
Definition: BeamPipeDetectorFactory.h:80
beamspotman.r
def r
Definition: beamspotman.py:676
IRDBAccessSvc::getRecordsetPtr
virtual IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:176
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
BeamPipeDetectorFactory::m_versionTag
std::string m_versionTag
Definition: BeamPipeDetectorFactory.h:78
deg
#define deg
Definition: SbPolyhedron.cxx:17
BeamPipeDetectorFactory::m_centralRegionZMax
double m_centralRegionZMax
Definition: BeamPipeDetectorFactory.h:82
BeamPipeDetectorFactory::m_detectorStore
StoreGateSvc * m_detectorStore
Definition: BeamPipeDetectorFactory.h:76
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
BeamPipeDetectorFactory::makeEnvelopeOld
EnvelopeShapes makeEnvelopeOld(const IRDBRecordset_ptr &atlasMother)
Definition: BeamPipeDetectorFactory.cxx:411
StoreGateSvc::retrieve
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:176
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Preparation.mode
mode
Definition: Preparation.py:95
BeamPipeDetectorFactory::m_materialManager
StoredMaterialManager * m_materialManager
Definition: BeamPipeDetectorFactory.h:74
BeamPipeDetectorFactory::addSections
void addSections(GeoPhysVol *parent, int region)
Definition: BeamPipeDetectorFactory.cxx:157
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
BeamPipeDetectorFactory::makeEnvelope
EnvelopeShapes makeEnvelope(const IRDBRecordset_ptr &bpipeEnvelope)
Definition: BeamPipeDetectorFactory.cxx:320
BeamPipeDetectorManager::addTreeTop
void addTreeTop(PVConstLink)
Definition: BeamPipeDetectorManager.cxx:25
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
BeamPipeDetectorFactory::m_versionNode
std::string m_versionNode
Definition: BeamPipeDetectorFactory.h:79
StoredMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(const std::string &name)=0
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
BeamPipeDetectorFactory::m_access
IRDBAccessSvc * m_access
Definition: BeamPipeDetectorFactory.h:77
BeamPipeDetectorFactory::m_detectorManager
BeamPipeDetectorManager * m_detectorManager
Definition: BeamPipeDetectorFactory.h:72
python.SystemOfUnits.degree
tuple degree
Definition: SystemOfUnits.py:106
GeoRef
GeoIntrusivePtr< T > GeoRef
Definition: GeoRef.h:20
BeamPipeDetectorManager
Definition: BeamPipeDetectorManager.h:14
node
Definition: memory_hooks-stdcmalloc.h:74