ATLAS Offline Software
Loading...
Searching...
No Matches
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
14class StoreGateSvc;
16class GeoShape;
17
18class 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
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
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
Simple smart-pointer class for GeoModel objects.
GeoIntrusivePtr< T > GeoRef
Definition GeoRef.h:20
Definition of the abstract IRDBAccessSvc interface.
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
EnvelopeShapes makeEnvelope(const IRDBRecordset_ptr &bpipeEnvelope)
virtual void create(GeoPhysVol *world) override
EnvelopeShapes makeEnvelopeOld(const IRDBRecordset_ptr &atlasMother)
const BeamPipeDetectorFactory & operator=(const BeamPipeDetectorFactory &right)
void addSections(GeoPhysVol *parent, int region)
BeamPipeDetectorManager * m_detectorManager
void setTagNode(std::string tag, std::string node, std::string mode)
BeamPipeDetectorFactory(const BeamPipeDetectorFactory &right)
StoredMaterialManager * m_materialManager
virtual const BeamPipeDetectorManager * getDetectorManager() const override
BeamPipeDetectorFactory(StoreGateSvc *pDetStore, IRDBAccessSvc *pAccess)
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
The Athena Transient Store API.
This class holds one or more material managers and makes them storeable, under StoreGate.
Definition node.h:24