ATLAS Offline Software
ActsCaloTrackingVolumeBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSGEOMETRY_ACTSCALOTRACKINGVOLUMEBUILDER_H
6 #define ACTSGEOMETRY_ACTSCALOTRACKINGVOLUMEBUILDER_H
7 
8 #include "GaudiKernel/ServiceHandle.h"
11 #include "StoreGate/StoreGateSvc.h"
13 
15 
16 #include <memory>
17 
18 // ACTS
19 #include "Acts/Geometry/Volume.hpp"
20 #include "Acts/Geometry/GeometryContext.hpp"
21 
23 
24 namespace Acts {
25 class TrackingVolume;
26 class VolumeBounds;
27 class CutoutCylinderVolumeBounds;
28 
29 
30 }
31 
32 class ActsCaloTrackingVolumeBuilder : public extends<AthAlgTool, IActsTrackingVolumeBuilder>
33 {
34 public:
35  StatusCode initialize() override;
36  ActsCaloTrackingVolumeBuilder(const std::string& type,
37  const std::string& name,
38  const IInterface* parent);
39 
40  std::shared_ptr<Acts::TrackingVolume>
41  trackingVolume(const Acts::GeometryContext& gctx,
42  std::shared_ptr<const Acts::TrackingVolume> insideVolume = nullptr,
43  std::shared_ptr<const Acts::VolumeBounds> outsideBounds = nullptr) const override;
44 
45 private:
46 
47  Acts::Volume
48  build_endcap(double z, double dz, double eta, double deta, double phi, double dphi) const;
49 
50  Acts::Volume
51  build_barrel(double r, double dr, double eta, double deta, double phi, double dphi) const;
52 
53  Acts::Volume
54  build_box(double x, double dx, double y, double dy, double z, double dz) const;
55 
56  std::vector<std::unique_ptr<Acts::Volume>>
57  cellFactory() const;
58 
59  std::shared_ptr<Acts::CutoutCylinderVolumeBounds>
60  makeCaloVolumeBounds(const std::vector<std::unique_ptr<Acts::Volume::BoundingBox>>& boxStore,
61  std::shared_ptr<const Acts::TrackingVolume> insideVolume) const;
62 
63 
64  const CaloDetDescrManager* m_caloMgr{nullptr};
65 };
66 
67 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
beamspotman.r
def r
Definition: beamspotman.py:676
ActsCaloTrackingVolumeBuilder::trackingVolume
std::shared_ptr< Acts::TrackingVolume > trackingVolume(const Acts::GeometryContext &gctx, std::shared_ptr< const Acts::TrackingVolume > insideVolume=nullptr, std::shared_ptr< const Acts::VolumeBounds > outsideBounds=nullptr) const override
Definition: ActsCaloTrackingVolumeBuilder.cxx:56
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ActsCaloTrackingVolumeBuilder::makeCaloVolumeBounds
std::shared_ptr< Acts::CutoutCylinderVolumeBounds > makeCaloVolumeBounds(const std::vector< std::unique_ptr< Acts::Volume::BoundingBox >> &boxStore, std::shared_ptr< const Acts::TrackingVolume > insideVolume) const
Definition: ActsCaloTrackingVolumeBuilder.cxx:349
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:112
ActsCaloTrackingVolumeBuilder::build_box
Acts::Volume build_box(double x, double dx, double y, double dy, double z, double dz) const
Definition: ActsCaloTrackingVolumeBuilder.cxx:651
x
#define x
ActsCaloTrackingVolumeBuilder::build_barrel
Acts::Volume build_barrel(double r, double dr, double eta, double deta, double phi, double dphi) const
Definition: ActsCaloTrackingVolumeBuilder.cxx:580
ActsCaloTrackingVolumeBuilder::cellFactory
std::vector< std::unique_ptr< Acts::Volume > > cellFactory() const
Definition: ActsCaloTrackingVolumeBuilder.cxx:698
Acts
Definition: MultiTrajectory.h:45
z
#define z
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsCaloTrackingVolumeBuilder::ActsCaloTrackingVolumeBuilder
ActsCaloTrackingVolumeBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ActsCaloTrackingVolumeBuilder.cxx:34
IActsTrackingVolumeBuilder.h
ActsCaloTrackingVolumeBuilder::build_endcap
Acts::Volume build_endcap(double z, double dz, double eta, double deta, double phi, double dphi) const
Definition: ActsCaloTrackingVolumeBuilder.cxx:510
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsCaloTrackingVolumeBuilder
Definition: ActsCaloTrackingVolumeBuilder.h:33
makeTRTBarrelCans.dy
tuple dy
Definition: makeTRTBarrelCans.py:21
ActsCaloTrackingVolumeBuilder::m_caloMgr
const CaloDetDescrManager * m_caloMgr
Definition: ActsCaloTrackingVolumeBuilder.h:64
y
#define y
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
makeTRTBarrelCans.dx
tuple dx
Definition: makeTRTBarrelCans.py:20
AthService.h
ActsCaloTrackingVolumeBuilder::initialize
StatusCode initialize() override
Definition: ActsCaloTrackingVolumeBuilder.cxx:43
StoreGateSvc.h