ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtEulerTransformation.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- AtEulerTransformation header file -----
3 // ----- Adapted from ActarSim (H. Alvarez-Pol) -----
4 // ----- Created 04/08/15 by Y. Ayyad (ayyadlim@nscl.msu.edu) -----
5 // -------------------------------------------------------------------------
6 // *** Transformation coordinate system (Euler angles) : ***
7 // DEFINITIONS:
8 // --from beam to lab system
9 // alpha = phi
10 // beta = theta
11 // gamma = 0
12 // *** inputs: theta_beam, phi_beam, alpha, beta, gamma
13 // *** calculate: theta_lab, phi_lab (from beam to lab)
14 //
15 // --or from lab to beam system
16 // alpha = pi
17 // beta = theta_beam
18 // gamma = pi - phi_beam
19 
20 #ifndef AtEULERTRANSFORMAtION_H
21 #define AtEULERTRANSFORMAtION_H
22 
23 #include <Rtypes.h>
24 #include <TNamed.h>
25 
26 class TBuffer;
27 class TClass;
28 class TMemberInspector;
29 
30 class AtEulerTransformation : public TNamed {
31 private:
32  // inputs: teta0,phi0, beamdirection=>(alpha,beta,gamma)
33  // outputs: theta_1,phi_1
34 
35  Double_t ThetaInBeamSystem{0.0};
36  Double_t PhiInBeamSystem{0.0};
37  Double_t BeamDirectionAtVertexTheta{0.0};
38  Double_t BeamDirectionAtVertexPhi{0.0};
39 
40  Double_t ThetaInLabSystem{0.0};
41  Double_t PhiInLabSystem{0.0};
42 
43 public:
44  AtEulerTransformation() = default;
46 
47  void SetThetaInBeamSystem(Double_t value) { ThetaInBeamSystem = value; }
48  void SetPhiInBeamSystem(Double_t value) { PhiInBeamSystem = value; }
49  void SetBeamDirectionAtVertexTheta(Double_t value) { BeamDirectionAtVertexTheta = value; }
50  void SetBeamDirectionAtVertexPhi(Double_t value) { BeamDirectionAtVertexPhi = value; }
51 
52  Double_t GetThetaInBeamSystem(void) { return ThetaInBeamSystem; }
53  Double_t GetPhiInBeamSystem(void) { return PhiInBeamSystem; }
54  Double_t GetThetaInLabSystem(void) { return ThetaInLabSystem; }
55  Double_t GetPhiInLabSystem(void) { return PhiInLabSystem; }
56  Double_t GetBeamDirectionAtVertexTheta(void) { return BeamDirectionAtVertexTheta; }
57  Double_t GetBeamDirectionAtVertexPhi(void) { return BeamDirectionAtVertexPhi; }
58 
60 
61  void Dump();
62 
63  void PrintResults();
64 
65  ClassDef(AtEulerTransformation, 1)
66 };
67 #endif
AtEulerTransformation::SetBeamDirectionAtVertexPhi
void SetBeamDirectionAtVertexPhi(Double_t value)
Definition: AtEulerTransformation.h:50
AtEulerTransformation::GetBeamDirectionAtVertexPhi
Double_t GetBeamDirectionAtVertexPhi(void)
Definition: AtEulerTransformation.h:57
AtEulerTransformation::SetBeamDirectionAtVertexTheta
void SetBeamDirectionAtVertexTheta(Double_t value)
Definition: AtEulerTransformation.h:49
AtEulerTransformation::PrintResults
void PrintResults()
Definition: AtEulerTransformation.cxx:81
AtEulerTransformation::GetPhiInBeamSystem
Double_t GetPhiInBeamSystem(void)
Definition: AtEulerTransformation.h:53
AtEulerTransformation::SetPhiInBeamSystem
void SetPhiInBeamSystem(Double_t value)
Definition: AtEulerTransformation.h:48
AtEulerTransformation::Dump
void Dump()
Definition: AtEulerTransformation.cxx:79
AtEulerTransformation::GetBeamDirectionAtVertexTheta
Double_t GetBeamDirectionAtVertexTheta(void)
Definition: AtEulerTransformation.h:56
AtEulerTransformation::GetThetaInBeamSystem
Double_t GetThetaInBeamSystem(void)
Definition: AtEulerTransformation.h:52
AtEulerTransformation::GetPhiInLabSystem
Double_t GetPhiInLabSystem(void)
Definition: AtEulerTransformation.h:55
AtEulerTransformation
Definition: AtEulerTransformation.h:30
AtEulerTransformation::DoTheEulerTransformationBeam2Lab
void DoTheEulerTransformationBeam2Lab()
Definition: AtEulerTransformation.cxx:8
AtEulerTransformation::~AtEulerTransformation
~AtEulerTransformation()=default
AtEulerTransformation::SetThetaInBeamSystem
void SetThetaInBeamSystem(Double_t value)
Definition: AtEulerTransformation.h:47
AtEulerTransformation::AtEulerTransformation
AtEulerTransformation()=default
AtEulerTransformation::GetThetaInLabSystem
Double_t GetThetaInLabSystem(void)
Definition: AtEulerTransformation.h:54