ATLAS Offline Software
ICaloCoordinateTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 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:
67 
68  // Methods for general use:
69 
72  virtual void ctb_to_local( Amg::Vector3D& pt_ctb, Amg::Vector3D& pt_local) =0 ;
75  virtual void local_to_ctb( Amg::Vector3D& pt_local, Amg::Vector3D& pt_ctb) =0 ;
76 
79  virtual void ctb_to_local( double& x_ctb, double& y_ctb, double& z_ctb,
80  double& x_local, double& y_local, double& z_local) =0 ;
83  virtual void local_to_ctb( double& x_local, double& y_local, double& z_local,
84  double& x_ctb, double& y_ctb, double& z_ctb) =0 ;
85 
90  virtual double beam_local_eta() =0 ;
95  virtual double beam_local_phi() =0 ;
96 
97  // Methods of less general interest, reserved to clients who want
98  // direct access to the HepTransform(s) :
99  // Warning : they must first read the table position !
100 
103  virtual void read_table_position() =0 ;
104 
108  virtual void read_fake_table_position() =0 ;
109 
116 
119  virtual void print_transform(Amg::Transform3D& htrans) =0 ;
120 
121 };
122 
123 
124 #endif // CALODETDESCR_ICALOCOORDINATETOOL
125 
126 
127 
128 
129 
130 
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::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