ATLAS Offline Software
ICaloCoordinateTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
14 #ifndef CALODETDESCR_ICALOCOORDINATETOOL_H
15 #define CALODETDESCR_ICALOCOORDINATETOOL_H
16 
17 #include "GaudiKernel/IAlgTool.h"
19 
20 
64 class ICaloCoordinateTool : virtual public IAlgTool
65 {
66 public:
68 
69  // Methods for general use:
70 
73  virtual void ctb_to_local( Amg::Vector3D& pt_ctb, Amg::Vector3D& pt_local) =0 ;
76  virtual void local_to_ctb( Amg::Vector3D& pt_local, Amg::Vector3D& pt_ctb) =0 ;
77 
80  virtual void ctb_to_local( double& x_ctb, double& y_ctb, double& z_ctb,
81  double& x_local, double& y_local, double& z_local) =0 ;
84  virtual void local_to_ctb( double& x_local, double& y_local, double& z_local,
85  double& x_ctb, double& y_ctb, double& z_ctb) =0 ;
86 
91  virtual double beam_local_eta() =0 ;
96  virtual double beam_local_phi() =0 ;
97 
98  // Methods of less general interest, reserved to clients who want
99  // direct access to the HepTransform(s) :
100  // Warning : they must first read the table position !
101 
104  virtual void read_table_position() =0 ;
105 
109  virtual void read_fake_table_position() =0 ;
110 
117 
120  virtual void print_transform(Amg::Transform3D& htrans) =0 ;
121 
122 };
123 
124 
125 #endif // CALODETDESCR_ICALOCOORDINATETOOL
126 
127 
128 
129 
130 
131 
ICaloCoordinateTool::beam_local_eta
virtual double beam_local_eta()=0
the most common use-case : the H8 beam goes along the x axis -> that are the local calorimeters eta a...
ICaloCoordinateTool::ctb_to_local
virtual void ctb_to_local(double &x_ctb, double &y_ctb, double &z_ctb, double &x_local, double &y_local, double &z_local)=0
General use method: basic translation between the 2 cartesian coordinate systems:
ICaloCoordinateTool::beam_local_phi
virtual double beam_local_phi()=0
the most common use-case : the H8 beam goes along the x axis -> that are the local calorimeters eta a...
ICaloCoordinateTool::local_to_ctb
virtual void local_to_ctb(Amg::Vector3D &pt_local, Amg::Vector3D &pt_ctb)=0
General use method: basic translation between the 2 cartesian coordinate systems:
GeoPrimitives.h
ICaloCoordinateTool::DeclareInterfaceID
DeclareInterfaceID(ICaloCoordinateTool, 1, 0)
ICaloCoordinateTool::transform_ctb_to_calo
virtual Amg::Transform3D * transform_ctb_to_calo()=0
method accessing the transformations
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
ICaloCoordinateTool
This (clean) interface is implemented in the (rather dirty) ICaloCoordinateTool class,...
Definition: ICaloCoordinateTool.h:65
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ICaloCoordinateTool::transform_calo_to_ctb
virtual Amg::Transform3D * transform_calo_to_ctb()=0
method accessing the transformations
ICaloCoordinateTool::read_table_position
virtual void read_table_position()=0
clients who want the real position must call this
ICaloCoordinateTool::ctb_to_local
virtual void ctb_to_local(Amg::Vector3D &pt_ctb, Amg::Vector3D &pt_local)=0
General use method: basic translation between the 2 cartesian coordinate systems:
ICaloCoordinateTool::read_fake_table_position
virtual void read_fake_table_position()=0
clients who want to avoid the DB-decoding, and force a fixed eta must call this :
ICaloCoordinateTool::local_to_ctb
virtual void local_to_ctb(double &x_local, double &y_local, double &z_local, double &x_ctb, double &y_ctb, double &z_ctb)=0
General use method: basic translation between the 2 cartesian coordinate systems:
ICaloCoordinateTool::print_transform
virtual void print_transform(Amg::Transform3D &htrans)=0
printout method