ATLAS Offline Software
Loading...
Searching...
No Matches
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"
13
15
16#include <memory>
17
18// ACTS
19#include "Acts/Geometry/Volume.hpp"
20#include "Acts/Geometry/GeometryContext.hpp"
21
23
24namespace Acts {
25class TrackingVolume;
26class VolumeBounds;
27class CutoutCylinderVolumeBounds;
28
29
30}
31
32class ActsCaloTrackingVolumeBuilder : public extends<AthAlgTool, IActsTrackingVolumeBuilder>
33{
34public:
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
45private:
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
65};
66
67#endif
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Property holding a SG store/key/clid from which a ReadHandle is made.
#define y
#define x
#define z
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
std::vector< std::unique_ptr< Acts::Volume > > cellFactory() const
Acts::Volume build_box(double x, double dx, double y, double dy, double z, double dz) const
ActsCaloTrackingVolumeBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Acts::Volume build_barrel(double r, double dr, double eta, double deta, double phi, double dphi) const
std::shared_ptr< Acts::CutoutCylinderVolumeBounds > makeCaloVolumeBounds(const std::vector< std::unique_ptr< Acts::Volume::BoundingBox > > &boxStore, std::shared_ptr< const Acts::TrackingVolume > insideVolume) const
Acts::Volume build_endcap(double z, double dz, double eta, double deta, double phi, double dphi) const
This class provides the client interface for accessing the detector description information common to...
int r
Definition globals.cxx:22