ATLAS Offline Software
BeamPipeDetectorFactory.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef BEAMPIPEGEOMODEL_BEAMPIPEDETECTORFACTORY_H
6 #define BEAMPIPEGEOMODEL_BEAMPIPEDETECTORFACTORY_H
7 
8 #include "GeoModelKernel/GeoVDetectorFactory.h"
12 #include <string>
13 
14 class StoreGateSvc;
16 class GeoShape;
17 
18 class BeamPipeDetectorFactory final : public GeoVDetectorFactory
19 {
20  public:
21 
22  // Constructor:
24  IRDBAccessSvc *pAccess);
25 
26  // Destructor:
28 
29  // Creation of geometry:
30  virtual void create(GeoPhysVol *world) override;
31 
32  // Access to the results:
33  virtual const BeamPipeDetectorManager * getDetectorManager() const override;
34 
35  // Set version Tag and Node
36  void setTagNode(std::string tag, std::string node, std::string mode);
37 
38  void addSections(GeoPhysVol* parent, int region);
39 
40  private:
41 
42  // small helper class
43  class EnvelopeEntry {
44  public:
45  EnvelopeEntry() : m_z(0), m_r(0) {}
46  EnvelopeEntry(double z, double r) : m_z(z), m_r(r) {}
47  double z() const {return m_z;}
48  double r() const {return m_r;}
49  private:
50  double m_z;
51  double m_r;
52  };
53 
55  public:
60  };
61 
62 
63  EnvelopeShapes makeEnvelope(const IRDBRecordset_ptr& bpipeEnvelope);
65 
66 
67  // Illegal operations:
70 
71  // The manager:
73 
75 
78  std::string m_versionTag;
79  std::string m_versionNode;
80  std::string m_mode;
81 
83 };
84 
85 // Class BeamPipeDetectorFactory
86 #endif
87 
88 
BeamPipeDetectorFactory::m_mode
std::string m_mode
Definition: BeamPipeDetectorFactory.h:80
BeamPipeDetectorFactory::EnvelopeShapes::centralShape
GeoRef< GeoShape > centralShape
Definition: BeamPipeDetectorFactory.h:57
GeoRef.h
Simple smart-pointer class for GeoModel objects.
BeamPipeDetectorFactory::EnvelopeEntry::z
double z() const
Definition: BeamPipeDetectorFactory.h:47
BeamPipeDetectorFactory::EnvelopeEntry::m_z
double m_z
Definition: BeamPipeDetectorFactory.h:50
BeamPipeDetectorFactory::EnvelopeShapes::bpShape
GeoRef< GeoShape > bpShape
Definition: BeamPipeDetectorFactory.h:59
BeamPipeDetectorFactory::m_versionTag
std::string m_versionTag
Definition: BeamPipeDetectorFactory.h:78
BeamPipeDetectorFactory::EnvelopeShapes::fwdShape
GeoRef< GeoShape > fwdShape
Definition: BeamPipeDetectorFactory.h:58
BeamPipeDetectorFactory::EnvelopeEntry::m_r
double m_r
Definition: BeamPipeDetectorFactory.h:51
BeamPipeDetectorFactory::m_centralRegionZMax
double m_centralRegionZMax
Definition: BeamPipeDetectorFactory.h:82
BeamPipeDetectorFactory::m_detectorStore
StoreGateSvc * m_detectorStore
Definition: BeamPipeDetectorFactory.h:76
BeamPipeDetectorFactory::EnvelopeShapes
Definition: BeamPipeDetectorFactory.h:54
BeamPipeDetectorFactory::makeEnvelopeOld
EnvelopeShapes makeEnvelopeOld(const IRDBRecordset_ptr &atlasMother)
Definition: BeamPipeDetectorFactory.cxx:410
BeamPipeDetectorFactory::EnvelopeEntry::EnvelopeEntry
EnvelopeEntry()
Definition: BeamPipeDetectorFactory.h:45
BeamPipeDetectorFactory::EnvelopeEntry
Definition: BeamPipeDetectorFactory.h:43
BeamPipeDetectorFactory::getDetectorManager
virtual const BeamPipeDetectorManager * getDetectorManager() const override
Definition: BeamPipeDetectorFactory.cxx:305
BeamPipeDetectorManager.h
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:125
BeamPipeDetectorFactory::EnvelopeShapes::EnvelopeShapes
EnvelopeShapes()
Definition: BeamPipeDetectorFactory.h:56
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
BeamPipeDetectorFactory::operator=
const BeamPipeDetectorFactory & operator=(const BeamPipeDetectorFactory &right)
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:42
BeamPipeDetectorFactory::setTagNode
void setTagNode(std::string tag, std::string node, std::string mode)
Definition: BeamPipeDetectorFactory.cxx:310
test_pyathena.parent
parent
Definition: test_pyathena.py:15
BeamPipeDetectorFactory
Definition: BeamPipeDetectorFactory.h:19
BeamPipeDetectorFactory::BeamPipeDetectorFactory
BeamPipeDetectorFactory(StoreGateSvc *pDetStore, IRDBAccessSvc *pAccess)
Definition: BeamPipeDetectorFactory.cxx:34
Preparation.mode
mode
Definition: Preparation.py:94
BeamPipeDetectorFactory::m_materialManager
StoredMaterialManager * m_materialManager
Definition: BeamPipeDetectorFactory.h:74
BeamPipeDetectorFactory::addSections
void addSections(GeoPhysVol *parent, int region)
Definition: BeamPipeDetectorFactory.cxx:156
BeamPipeDetectorFactory::EnvelopeEntry::EnvelopeEntry
EnvelopeEntry(double z, double r)
Definition: BeamPipeDetectorFactory.h:46
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
BeamPipeDetectorFactory::create
virtual void create(GeoPhysVol *world) override
Definition: BeamPipeDetectorFactory.cxx:46
BeamPipeDetectorFactory::makeEnvelope
EnvelopeShapes makeEnvelope(const IRDBRecordset_ptr &bpipeEnvelope)
Definition: BeamPipeDetectorFactory.cxx:319
BeamPipeDetectorFactory::BeamPipeDetectorFactory
BeamPipeDetectorFactory(const BeamPipeDetectorFactory &right)
BeamPipeDetectorFactory::EnvelopeEntry::r
double r() const
Definition: BeamPipeDetectorFactory.h:48
BeamPipeDetectorFactory::m_versionNode
std::string m_versionNode
Definition: BeamPipeDetectorFactory.h:79
StoredMaterialManager
This class holds one or more material managers and makes them storeable, under StoreGate.
Definition: StoredMaterialManager.h:28
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
GeoRef
GeoIntrusivePtr< T > GeoRef
Definition: GeoRef.h:20
BeamPipeDetectorManager
Definition: BeamPipeDetectorManager.h:14
node
Definition: memory_hooks-stdcmalloc.h:74
BeamPipeDetectorFactory::~BeamPipeDetectorFactory
~BeamPipeDetectorFactory()