ATLAS Offline Software
GeometryBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // GeometryBuilder.h, (c) ATLAS Detector software
8 
9 #ifndef TRKDETDESCRTOOLS_GEOMETRYBUILDER_H
10 #define TRKDETDESCRTOOLS_GEOMETRYBUILDER_H
11 
12 // Amg
14 // Trk
18 #include "TrkGeometry/Material.h"
19 // Gaudi & Athena
21 #include "GaudiKernel/ToolHandle.h"
22 
23 #ifdef TRKDETDESCR_MEMUSAGE
25 #endif
26 
27 
29 namespace Trk {
30 
31  class TrackingGeometry;
32  class TrackingVolume;
33  class ITrackingVolumeBuilder;
34  class ITrackingVolumeHelper;
35  class ITrackingVolumeArrayCreator;
36 
48  public AthAlgTool,
50  virtual public IGeometryBuilder {
51 
52  public:
54  GeometryBuilder(const std::string&,const std::string&,const IInterface*);
55 
57  virtual ~GeometryBuilder();
58 
61 
62 
64  std::unique_ptr<TrackingGeometry> trackingGeometry(TrackingVolume* tvol = 0) const;
65 
68 
69  private:
70 
72  std::unique_ptr<TrackingGeometry> atlasTrackingGeometry() const;
73 
74 #ifdef TRKDETDESCR_MEMUSAGE
75  MemoryLogger m_memoryLogger;
76 #endif
77 
80 
81  std::vector< double > m_worldDimension;
82  std::vector< double > m_worldMaterialProperties;
84 
85  // -------------------------- Tools for geometry building ------------------------------------------------------ //
86 
87  ToolHandle<ITrackingVolumeArrayCreator> m_trackingVolumeArrayCreator;
88 
89  ToolHandle<ITrackingVolumeHelper> m_trackingVolumeHelper;
90 
91  //bool m_inDetGeometry; //!< switch on TrackingGeometry for the InnerDetector
92  ToolHandle<IGeometryBuilder> m_inDetGeometryBuilder;
93 
95  ToolHandle<IGeometryBuilder> m_caloGeometryBuilder;
96 
98  ToolHandle<IGeometryBuilder> m_muonGeometryBuilder;
99 
102 
103  };
104 
105 } // end of namespace
106 
107 #endif // TRKDETDESCRTOOLS_GEOMETRYBUILDER_H
108 
Trk::TrackingVolumeManipulator
Definition: TrackingVolumeManipulator.h:32
GeometrySignature.h
Trk::GeometryBuilder::m_navigationLevel
int m_navigationLevel
NavigationLevel.
Definition: GeometryBuilder.h:79
GeometrySignature
Trk::GeometryBuilder::m_trackingVolumeHelper
ToolHandle< ITrackingVolumeHelper > m_trackingVolumeHelper
Helper Tool to create TrackingVolumes.
Definition: GeometryBuilder.h:89
Trk::GeometryBuilder::m_createWorld
bool m_createWorld
Boolean Switch to create World manually.
Definition: GeometryBuilder.h:78
Trk::GeometryBuilder::m_caloGeometryBuilder
ToolHandle< IGeometryBuilder > m_caloGeometryBuilder
GeometryBuilder for the Calorimeters.
Definition: GeometryBuilder.h:95
Trk::GeometryBuilder::geometrySignature
GeometrySignature geometrySignature() const
The unique signature.
Definition: GeometryBuilder.h:67
Trk::MemoryLogger
Definition: MemoryLogger.h:31
GeoPrimitives.h
Trk::GeometryBuilder::m_worldMaterial
Material m_worldMaterial
the world material
Definition: GeometryBuilder.h:83
Trk::GeometryBuilder::initialize
StatusCode initialize()
AlgTool initialize method.
Definition: GeometryBuilder.cxx:79
Trk::GeometryBuilder::m_muonGeometry
bool m_muonGeometry
GeometryBuilder for the Muon System.
Definition: GeometryBuilder.h:97
Trk::GeometryBuilder::m_worldDimension
std::vector< double > m_worldDimension
The dimensions of the manually created world.
Definition: GeometryBuilder.h:81
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::IGeometryBuilder
Definition: IGeometryBuilder.h:40
Trk::GeometryBuilder::m_muonGeometryBuilder
ToolHandle< IGeometryBuilder > m_muonGeometryBuilder
GeometryBuilder for the Muon System.
Definition: GeometryBuilder.h:98
AthAlgTool.h
MemoryLogger.h
Trk::Global
@ Global
Definition: GeometrySignature.h:25
Trk::GeometryBuilder::atlasTrackingGeometry
std::unique_ptr< TrackingGeometry > atlasTrackingGeometry() const
TrackingGeometry for ATLAS setup.
Definition: GeometryBuilder.cxx:152
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::GeometryBuilder::m_inDetGeometryBuilder
ToolHandle< IGeometryBuilder > m_inDetGeometryBuilder
GeometryBuilder for the InnerDetector.
Definition: GeometryBuilder.h:92
Trk::GeometryBuilder::m_trackingVolumeArrayCreator
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Helper Tool to create TrackingVolume Arrays.
Definition: GeometryBuilder.h:87
Trk::GeometryBuilder::m_synchronizeLayers
bool m_synchronizeLayers
synchronize contained layer dimensions to volumes
Definition: GeometryBuilder.h:101
TrackingVolumeManipulator.h
IGeometryBuilder.h
Trk::GeometryBuilder::GeometryBuilder
GeometryBuilder(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: GeometryBuilder.cxx:34
Trk::GeometryBuilder::m_compactify
bool m_compactify
optimize event memory usage: register all surfaces with TG
Definition: GeometryBuilder.h:100
Trk::GeometryBuilder::m_caloGeometry
bool m_caloGeometry
switch on TrackingGeometry for the Calorimeters
Definition: GeometryBuilder.h:94
Trk::GeometryBuilder::m_worldMaterialProperties
std::vector< double > m_worldMaterialProperties
The material properties of the created world.
Definition: GeometryBuilder.h:82
Trk::Material
Definition: Material.h:116
Trk::GeometryBuilder
Definition: GeometryBuilder.h:50
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Trk::GeometryBuilder::~GeometryBuilder
virtual ~GeometryBuilder()
Destructor.
Material.h
Trk::GeometryBuilder::trackingGeometry
std::unique_ptr< TrackingGeometry > trackingGeometry(TrackingVolume *tvol=0) const
TrackingGeometry Interface method - optionally a pointer to Bounds.
Definition: GeometryBuilder.cxx:121