ATLAS Offline Software
Loading...
Searching...
No Matches
ITrackingVolumeCreator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// ITrackingVolumeCreator.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRINTERFACES_ITRACKINGVOLUMECREATOR_H
10#define TRKDETDESCRINTERFACES_ITRACKINGVOLUMECREATOR_H
11
12// Gaudi
13#include "GaudiKernel/IAlgTool.h"
14// Trk
16// STL
17#include <string>
18#include <vector>
19
22
23namespace Trk {
24
25class Layer;
26class TrackingVolume;
27class VolumeBounds;
28class Material;
30
40class ITrackingVolumeCreator : virtual public IAlgTool
41{
42
43public:
46
49
65 const std::vector<Layer*>& layers,
66 Material& matprop,
67 VolumeBounds* volBounds = 0,
68 Amg::Transform3D* transform = 0,
69 const std::string& volumeName = "UndefinedVolume",
70 BinningType btype = arbitrary) const = 0;
71
84 const std::vector<Layer*>& layers,
85 Material& matprop,
86 double loc1Min,
87 double loc1Max,
88 double loc2Min,
89 double loc2Max,
90 const std::string& volumeName = "UndefinedVolume",
91 BinningType btype = arbitrary) const = 0;
92
105 Material& matprop,
106 double loc1Min,
107 double loc1Max,
108 double loc2Min,
109 double loc2Max,
110 unsigned int materialLayers,
111 bool cylinder = true,
112 const std::string& volumeName = "UndefinedVolume") const = 0;
113
125 Material& matprop,
126 double loc1Min,
127 double loc1Max,
128 double loc2Min,
129 double loc2Max,
130 const std::vector<double>& layerPositions,
131 bool cylinder = true,
132 const std::string& volumeName = "UndefinedVolume",
133 BinningType btype = arbitrary) const = 0;
134
143 const std::vector<TrackingVolume*>& volumes,
144 const Material& matprop,
145 const std::string& volumeName = "UndefinedVolume",
146 bool buildBoundaryLayers = false,
147 bool replaceBoundaryFace = false) const = 0;
148};
149
150} // end of namespace
151
152#endif // TRKDETDESCRINTERFACES_ITRACKINGVOLUMECREATOR_H
Define macros for attributes used to control the static checker.
Interface class ITrackingVolumeCreators It inherits from IAlgTool.
virtual TrackingVolume * createGapTrackingVolume(Material &matprop, double loc1Min, double loc1Max, double loc2Min, double loc2Max, const std::vector< double > &layerPositions, bool cylinder=true, const std::string &volumeName="UndefinedVolume", BinningType btype=arbitrary) const =0
create a gap volume from dimensions and
virtual TrackingVolume * createGapTrackingVolume(Material &matprop, double loc1Min, double loc1Max, double loc2Min, double loc2Max, unsigned int materialLayers, bool cylinder=true, const std::string &volumeName="UndefinedVolume") const =0
create a gap volume from dimensions and
virtual ~ITrackingVolumeCreator()
Virtual destructor.
DeclareInterfaceID(ITrackingVolumeCreator, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual TrackingVolume * createContainerTrackingVolume(const std::vector< TrackingVolume * > &volumes, const Material &matprop, const std::string &volumeName="UndefinedVolume", bool buildBoundaryLayers=false, bool replaceBoundaryFace=false) const =0
Create a one level higher TrackingVolue.
virtual TrackingVolume * createTrackingVolume(const std::vector< Layer * > &layers, Material &matprop, double loc1Min, double loc1Max, double loc2Min, double loc2Max, const std::string &volumeName="UndefinedVolume", BinningType btype=arbitrary) const =0
create a TrackingVolume* from a set of layers and (optional) parameters
virtual TrackingVolume * createTrackingVolume(const std::vector< Layer * > &layers, Material &matprop, VolumeBounds *volBounds=0, Amg::Transform3D *transform=0, const std::string &volumeName="UndefinedVolume", BinningType btype=arbitrary) const =0
create a TrackingVolume* from a set of layers and (optional) parameters
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
magnetic field properties to steer the behavior of the extrapolation
A common object to be contained by.
Definition Material.h:117
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Pure Absract Base Class for Volume bounds.
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.
BinningType
, BinningOption & BinningAccess
Definition BinningType.h:31
@ arbitrary
Definition BinningType.h:34