ATLAS Offline Software
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 
25 class IMessageSvc;
26 class CaloDepthTool;
29 
30 namespace Trk {
31 class Surface;
32 class CylinderLayer;
33 class DiscLayer;
34 }
35 
36 //<<<<<< INCLUDES >>>>>>
37 
42 class ICaloSurfaceBuilder : virtual public IAlgTool
43 {
44 
45 public:
47  virtual ~ICaloSurfaceBuilder() = default;
48 
51 
52  virtual CaloDepthTool* getCaloDepth() = 0;
53 
54 
58  const double offset,
59  const double etaCaloLocal,
60  const CaloDetDescrManager* calo_dd) const = 0;
61 
65  const double offset,
66  const double etaCaloLocal,
67  const CaloDetDescrManager* calo_dd) const = 0;
68 
73  virtual bool get_cylinder_surface(
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 
CaloDepthTool
Implementation of the ICaloDepthTool interface.Given a Track direction, checks if it is in the Calori...
Definition: CaloDepthTool.h:47
ICaloSurfaceBuilder::entrySurfaces
virtual std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > entrySurfaces(const CaloDetDescrManager *calo_dd) const =0
ICaloSurfaceBuilder::CreateLastSurface
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
egammaParameters::depth
@ depth
pointing depth of the shower as calculated in egammaqgcld
Definition: egammaParamDefs.h:276
ICaloSurfaceBuilder::CreateUserSurface
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
ICaloSurfaceBuilder::DeclareInterfaceID
DeclareInterfaceID(ICaloSurfaceBuilder, 1, 0)
Declare interface.
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
ICaloSurfaceBuilder::get_cylinder_surface
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
ICaloRecoMaterialTool
This (clean) interface is driven by 2 constraints :
Definition: ICaloRecoMaterialTool.h:36
ICaloSurfaceBuilder
Interface to CaloSurfaceBuilder.
Definition: ICaloSurfaceBuilder.h:43
CaloCell_ID.h
TRT::Hit::side
@ side
Definition: HitInfo.h:83
GeoPrimitives.h
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:113
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
z
#define z
ICaloRecoSimpleGeomTool
Definition: ICaloRecoSimpleGeomTool.h:37
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
CaloPhiRange.h
CaloPhiRange class declaration.
ICaloCoordinateTool
This (clean) interface is implemented in the (rather dirty) ICaloCoordinateTool class,...
Definition: ICaloCoordinateTool.h:65
ICaloSurfaceBuilder::get_disk_surface
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
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
ICaloSurfaceBuilder::getCaloDepth
virtual CaloDepthTool * getCaloDepth()=0
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
ICaloSurfaceBuilder::~ICaloSurfaceBuilder
virtual ~ICaloSurfaceBuilder()=default
Virtual destructor.
ICaloSurfaceBuilder::exitSurfaces
virtual std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > exitSurfaces(const CaloDetDescrManager *calo_dd) const =0
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
ICaloSurfaceBuilder::get_cylinder_surface
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,...
ICaloSurfaceBuilder::get_disk_surface
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
CaloSubdetNames.h
CaloSubdetNames declaration.
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
CaloSubdetNames::ALIGNVOL
ALIGNVOL
LAr Alignable volumes.
Definition: CaloSubdetNames.h:36