ATLAS Offline Software
TileVolumeBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TileVolumeBuilder.h, (c) ATLAS Detector software
8 
9 #ifndef TILETRACKINGGEOMETRY_TILEVOLUMEBUILDER_H
10 #define TILETRACKINGGEOMETRY_TILEVOLUMEBUILDER_H
11 
12 // Gaudi
15 #include "GaudiKernel/ToolHandle.h"
16 // GeoModel
18 //
19 #include "GeoModelKernel/GeoVPhysVol.h"
20 // Trk
23 #include "TrkGeometry/Material.h"
24 // STL
25 #include <memory>
26 #include <mutex>
27 #include <vector>
28 
31 class CaloDepthTool;
32 class StoreGateSvc;
33 
34 namespace Trk {
35 class ILayerArrayCreator;
36 class ITrackingVolumeHelper;
37 class ITrackingVolumeCreator;
38 class TrackingVolume;
39 class Volume;
40 class Layer;
41 }
42 
43 namespace Tile {
44 
57 class TileVolumeBuilder final
58  : public AthAlgTool
59  , virtual public Trk::ICaloTrackingVolumeBuilder
60 {
61 
62 public:
64  TileVolumeBuilder(const std::string&, const std::string&, const IInterface*);
66  virtual ~TileVolumeBuilder();
67 
69  virtual StatusCode initialize() override final;
70 
72  virtual std::vector<Trk::TrackingVolume*>* trackingVolumes(
73  const CaloDetDescrManager& caloDDM) const override final;
74 
75 private:
76  static void printCheckResult(MsgStream& log, const Trk::TrackingVolume* vol) ;
77 
78  void printInfo(const GeoPVConstLink& pv) const;
79  void printChildren(const GeoPVConstLink& pv, int igen, const Amg::Transform3D& trIn) const;
80 
81  void throwIntoGarbage(std::unique_ptr<Trk::Material> mat) const;
82 
84  std::string m_tileMgrLocation;
85 
86  ToolHandle<Trk::ITrackingVolumeHelper> m_trackingVolumeHelper;
87  ToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator;
88 
90 
95 
97 
98  mutable std::mutex m_garbageMutex;
99  mutable std::vector<std::unique_ptr<Trk::Material>> m_garbage ATLAS_THREAD_SAFE;
100 };
101 
102 } // end of namespace
103 
104 #endif // TILETRACKINGGEOMETRY_TILEVOLUMEBUILDER_H
105 
Tile::TileVolumeBuilder::m_tileMgrLocation
std::string m_tileMgrLocation
Location of the CaloDetDescrMgr.
Definition: TileVolumeBuilder.h:84
CaloDepthTool
Implementation of the ICaloDepthTool interface.Given a Track direction, checks if it is in the Calori...
Definition: CaloDepthTool.h:47
ICaloTrackingVolumeBuilder.h
Tile::TileVolumeBuilder::m_trackingVolumeCreator
ToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Second helper for volume creation.
Definition: TileVolumeBuilder.h:87
Tile::TileVolumeBuilder::m_tileBarrelLayersPerSampling
unsigned int m_tileBarrelLayersPerSampling
if m_useCaloSurfBuilder == true, number of layers per dead material region or sampling
Definition: TileVolumeBuilder.h:92
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
Tile::TileVolumeBuilder::throwIntoGarbage
void throwIntoGarbage(std::unique_ptr< Trk::Material > mat) const
Definition: TileVolumeBuilder.cxx:859
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
Tile::TileVolumeBuilder::printInfo
void printInfo(const GeoPVConstLink &pv) const
Definition: TileVolumeBuilder.cxx:806
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Tile::TileVolumeBuilder::~TileVolumeBuilder
virtual ~TileVolumeBuilder()
Destructor.
ICaloSurfaceBuilder
Definition: ICaloSurfaceBuilder.h:44
Trk::ICaloTrackingVolumeBuilder
Definition: ICaloTrackingVolumeBuilder.h:27
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
GeoPrimitives.h
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
Tile
Definition: TileVolumeBuilder.h:43
Tile::TileVolumeBuilder::m_garbageMutex
std::mutex m_garbageMutex
Definition: TileVolumeBuilder.h:98
TileDetDescrManager
Definition: TileDetDescrManager.h:33
Tile::TileVolumeBuilder::m_tileBarrelEnvelope
double m_tileBarrelEnvelope
envelope Cover of the Barrel
Definition: TileVolumeBuilder.h:89
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
Tile::TileVolumeBuilder::trackingVolumes
virtual std::vector< Trk::TrackingVolume * > * trackingVolumes(const CaloDetDescrManager &caloDDM) const override final
TrackingVolumeBuilder interface method - returns vector of Volumes.
Definition: TileVolumeBuilder.cxx:129
Tile::TileVolumeBuilder::TileVolumeBuilder
TileVolumeBuilder(const std::string &, const std::string &, const IInterface *)
AlgTool style constructor.
Definition: TileVolumeBuilder.cxx:60
Tile::TileVolumeBuilder::m_trackingVolumeHelper
ToolHandle< Trk::ITrackingVolumeHelper > m_trackingVolumeHelper
Helper Tool to create TrackingVolumes.
Definition: TileVolumeBuilder.h:86
Tile::TileVolumeBuilder::initialize
virtual StatusCode initialize() override final
AlgTool initialize method.
Definition: TileVolumeBuilder.cxx:94
Tile::TileVolumeBuilder::m_useCaloSurfBuilder
bool m_useCaloSurfBuilder
if true use DetDescr based layering, if false use biequidistant layering
Definition: TileVolumeBuilder.h:91
Tile::TileVolumeBuilder::m_surfBuilder
ToolHandle< ICaloSurfaceBuilder > m_surfBuilder
tool required for definition of active volumes
Definition: TileVolumeBuilder.h:94
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
ICaloSurfaceBuilder.h
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
python.changerun.pv
pv
Definition: changerun.py:81
Tile::TileVolumeBuilder::printCheckResult
static void printCheckResult(MsgStream &log, const Trk::TrackingVolume *vol)
Definition: TileVolumeBuilder.cxx:798
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Material
@ Material
Definition: MaterialTypes.h:8
Tile::TileVolumeBuilder::m_tileMgr
const TileDetDescrManager * m_tileMgr
Calo DetDescrMgr.
Definition: TileVolumeBuilder.h:83
Tile::TileVolumeBuilder::m_forceSymmetry
bool m_forceSymmetry
forces volume symmetry between negative/positive part
Definition: TileVolumeBuilder.h:96
Material.h
Tile::TileVolumeBuilder::ATLAS_THREAD_SAFE
std::vector< std::unique_ptr< Trk::Material > > m_garbage ATLAS_THREAD_SAFE
Definition: TileVolumeBuilder.h:99
Tile::TileVolumeBuilder::printChildren
void printChildren(const GeoPVConstLink &pv, int igen, const Amg::Transform3D &trIn) const
Definition: TileVolumeBuilder.cxx:816
Tile::TileVolumeBuilder
Definition: TileVolumeBuilder.h:60