ATLAS Offline Software
Loading...
Searching...
No Matches
ICaloSurfaceBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5// ***************************************************************************
6// -----------------------------------------
7//
8// 25.10.2004 Creation of the class by claire.bourdarios@cern.ch
9//
10// ***************************************************************************
11
12#ifndef CALOTRACKINGGEOMETRY_ICALOSURFACEBUILDER_H
13#define CALOTRACKINGGEOMETRY_ICALOSURFACEBUILDER_H
14
15#include "GaudiKernel/IAlgTool.h"
16
18
22
25class IMessageSvc;
26class CaloDepthTool;
29
30namespace Trk {
31class Surface;
32class CylinderLayer;
33class DiscLayer;
34}
35
36//<<<<<< INCLUDES >>>>>>
37
41
42class ICaloSurfaceBuilder : virtual public IAlgTool
43{
44
45public:
47 virtual ~ICaloSurfaceBuilder() = default;
48
51
53
54
57 const CaloCell_ID::CaloSample sample,
58 const double offset,
59 const double etaCaloLocal,
60 const CaloDetDescrManager* calo_dd) const = 0;
61
64 const CaloCell_ID::CaloSample sample,
65 const double offset,
66 const double etaCaloLocal,
67 const CaloDetDescrManager* calo_dd) const = 0;
68
72
75 int side,
76 Amg::Transform3D& htrans,
77 double& radius,
78 double& hphi,
79 double& hlength,
80 double& depth,
81 const CaloDetDescrManager* calo_dd) const = 0;
82
83 virtual bool get_disk_surface(
85 int side,
86 Amg::Transform3D& htrans,
87 double& z,
88 double& rmin,
89 double& rmax,
90 double& hphisec,
91 double& depth,
92 const CaloDetDescrManager* calo_dd) const = 0;
93
95 Amg::Transform3D& htrans,
96 double& hphi,
97 std::vector<double>& radius,
98 std::vector<double>& depth,
99 std::vector<double>& hlength) const = 0;
100
102 Amg::Transform3D& htrans,
103 double& hphi,
104 std::vector<double>& z,
105 std::vector<double>& depth,
106 std::vector<double>& rmin,
107 std::vector<double>& rmax) const = 0;
108
109 virtual std::vector<std::pair<const Trk::Surface*, const Trk::Surface*>>
110 entrySurfaces(const CaloDetDescrManager* calo_dd) const = 0;
111 virtual std::vector<std::pair<const Trk::Surface*, const Trk::Surface*>>
112 exitSurfaces(const CaloDetDescrManager* calo_dd) const = 0;
113};
114
115#endif // CALOTRACKINGGEOMETRY_ICALOSURFACEBUILDER_H
116
CaloPhiRange class declaration.
CaloSubdetNames declaration.
#define z
CaloSampling::CaloSample CaloSample
Definition CaloCell_ID.h:53
Implementation of the ICaloDepthTool interface.Given a Track direction, checks if it is in the Calori...
This class provides the client interface for accessing the detector description information common to...
ALIGNVOL
LAr Alignable volumes.
This (clean) interface is implemented in the (rather dirty) ICaloCoordinateTool class,...
This (clean) interface is driven by 2 constraints :
Interface to CaloSurfaceBuilder.
virtual bool get_cylinder_surface(CaloCell_ID::CaloSample sample, int side, Amg::Transform3D &htrans, double &radius, double &hphi, double &hlength, double &depth, const CaloDetDescrManager *calo_dd) const =0
These methods provide the default parameters used by the CaloTrackingGeometry and Surface Builders,...
virtual std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > exitSurfaces(const CaloDetDescrManager *calo_dd) const =0
virtual std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > entrySurfaces(const CaloDetDescrManager *calo_dd) const =0
virtual CaloDepthTool * getCaloDepth()=0
DeclareInterfaceID(ICaloSurfaceBuilder, 1, 0)
Declare interface.
virtual bool get_disk_surface(CaloCell_ID::CaloSample sample, int side, Amg::Transform3D &htrans, double &z, double &rmin, double &rmax, double &hphisec, double &depth, const CaloDetDescrManager *calo_dd) const =0
virtual bool get_disk_surface(CaloSubdetNames::ALIGNVOL alvol, Amg::Transform3D &htrans, double &hphi, std::vector< double > &z, std::vector< double > &depth, std::vector< double > &rmin, std::vector< double > &rmax) const =0
virtual bool get_cylinder_surface(CaloSubdetNames::ALIGNVOL alvol, Amg::Transform3D &htrans, double &hphi, std::vector< double > &radius, std::vector< double > &depth, std::vector< double > &hlength) const =0
virtual Trk::Surface * CreateUserSurface(const CaloCell_ID::CaloSample sample, const double offset, const double etaCaloLocal, const CaloDetDescrManager *calo_dd) const =0
overwrite DD radius/z by CaloDepth radius, and an offset can be added
virtual ~ICaloSurfaceBuilder()=default
Virtual destructor.
virtual Trk::Surface * CreateLastSurface(const CaloCell_ID::CaloSample sample, const double offset, const double etaCaloLocal, const CaloDetDescrManager *calo_dd) const =0
end of the sample for the last layers of the Calo
Class to describe a cylindrical detector layer for tracking, it inhertis from both,...
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class an...
Definition DiscLayer.h:45
Abstract Base Class for tracking surfaces.
std::string depth
tag string for intendation
Definition fastadd.cxx:46
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.