Belle II Software  release-05-02-19
TOPGeoModuleDisplacement.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <top/dbobjects/TOPGeoBase.h>
14 #include <TVector3.h>
15 #include <TRotation.h>
16 
17 namespace Belle2 {
28  class TOPGeoModuleDisplacement: public TOPGeoBase {
29  public:
30 
35  {}
36 
47  TOPGeoModuleDisplacement(double x, double y, double z,
48  double alpha, double beta, double gamma,
49  const std::string& name = "TOPModuleDisplacement"):
50  TOPGeoBase(name),
51  m_x(x), m_y(y), m_z(z),
52  m_alpha(alpha), m_beta(beta), m_gamma(gamma)
53  {}
54 
59  double getX() const {return m_x / s_unit;}
60 
65  double getY() const {return m_y / s_unit;}
66 
71  double getZ() const {return m_z / s_unit;}
72 
77  double getAlpha() const {return m_alpha;}
78 
83  double getBeta() const {return m_beta;}
84 
89  double getGamma() const {return m_gamma;}
90 
95  TRotation getRotation() const
96  {
97  TRotation rot;
98  rot.RotateX(m_alpha).RotateY(m_beta).RotateZ(m_gamma);
99  return rot;
100  }
101 
106  TVector3 getTranslation() const {return TVector3(m_x, m_y, m_z);}
107 
112  bool isConsistent() const override {return true;}
113 
118  void print(const std::string& title = "Module displacement parameters") const override;
119 
120  private:
121 
122  float m_x = 0;
123  float m_y = 0;
124  float m_z = 0;
125  float m_alpha = 0;
126  float m_beta = 0;
127  float m_gamma = 0;
131  };
132 
134 } // end namespace Belle2
Belle2::TOPGeoModuleDisplacement::m_y
float m_y
translation in y
Definition: TOPGeoModuleDisplacement.h:131
Belle2::TOPGeoBase
Base class for geometry parameters.
Definition: TOPGeoBase.h:35
Belle2::TOPGeoModuleDisplacement::print
void print(const std::string &title="Module displacement parameters") const override
Print the content of the class.
Definition: TOPGeoModuleDisplacement.cc:22
Belle2::TOPGeoModuleDisplacement::getTranslation
TVector3 getTranslation() const
Returns translation vector (always in Basf2 units!)
Definition: TOPGeoModuleDisplacement.h:114
Belle2::TOPGeoModuleDisplacement::getX
double getX() const
Returns translation in x.
Definition: TOPGeoModuleDisplacement.h:67
Belle2::TOPGeoModuleDisplacement::getBeta
double getBeta() const
Returns rotation angle around y.
Definition: TOPGeoModuleDisplacement.h:91
Belle2::TOPGeoModuleDisplacement
Displacement parameters of a TOP module.
Definition: TOPGeoModuleDisplacement.h:36
Belle2::TOPGeoModuleDisplacement::m_z
float m_z
translation in z
Definition: TOPGeoModuleDisplacement.h:132
Belle2::TOPGeoModuleDisplacement::getGamma
double getGamma() const
Returns rotation angle around z.
Definition: TOPGeoModuleDisplacement.h:97
Belle2::TOPGeoModuleDisplacement::getZ
double getZ() const
Returns translation in z.
Definition: TOPGeoModuleDisplacement.h:79
Belle2::TOPGeoModuleDisplacement::TOPGeoModuleDisplacement
TOPGeoModuleDisplacement()
Default constructor.
Definition: TOPGeoModuleDisplacement.h:42
Belle2::TOPGeoModuleDisplacement::m_gamma
float m_gamma
rotation angle around z
Definition: TOPGeoModuleDisplacement.h:135
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPGeoModuleDisplacement::m_alpha
float m_alpha
rotation angle around x
Definition: TOPGeoModuleDisplacement.h:133
Belle2::TOPGeoModuleDisplacement::getY
double getY() const
Returns translation in y.
Definition: TOPGeoModuleDisplacement.h:73
Belle2::TOPGeoBase::s_unit
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:96
Belle2::TOPGeoModuleDisplacement::m_beta
float m_beta
rotation angle around y
Definition: TOPGeoModuleDisplacement.h:134
Belle2::TOPGeoModuleDisplacement::ClassDefOverride
ClassDefOverride(TOPGeoModuleDisplacement, 1)
ClassDef.
Belle2::TOPGeoModuleDisplacement::getAlpha
double getAlpha() const
Returns rotation angle around x.
Definition: TOPGeoModuleDisplacement.h:85
Belle2::TOPGeoModuleDisplacement::getRotation
TRotation getRotation() const
Returns rotation matrix.
Definition: TOPGeoModuleDisplacement.h:103
Belle2::TOPGeoModuleDisplacement::isConsistent
bool isConsistent() const override
Check for consistency of data members.
Definition: TOPGeoModuleDisplacement.h:120
Belle2::TOPGeoModuleDisplacement::m_x
float m_x
translation in x
Definition: TOPGeoModuleDisplacement.h:130