ATLAS Offline Software
Loading...
Searching...
No Matches
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
13
14#ifndef CALODETDESCR_ICALOCOORDINATETOOL_H
15#define CALODETDESCR_ICALOCOORDINATETOOL_H
16
17#include "GaudiKernel/IAlgTool.h"
19
20
63
64class ICaloCoordinateTool : virtual public IAlgTool
65{
66public:
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
This (clean) interface is implemented in the (rather dirty) ICaloCoordinateTool class,...
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:
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:
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:
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:
virtual void read_table_position()=0
clients who want the real position must call this
virtual Amg::Transform3D * transform_calo_to_ctb()=0
method accessing the transformations
virtual Amg::Transform3D * transform_ctb_to_calo()=0
method accessing the transformations
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...
DeclareInterfaceID(ICaloCoordinateTool, 1, 0)
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...
virtual void print_transform(Amg::Transform3D &htrans)=0
printout method
virtual void read_fake_table_position()=0
clients who want to avoid the DB-decoding, and force a fixed eta must call this :
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D