FairRoot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FairGeaneUtil.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 #ifndef FAIRGEANEUTIL_H
9 #define FAIRGEANEUTIL_H
10 #include <Rtypes.h> // for THashConsistencyHolder, ClassDef
11 #include <RtypesCore.h> // for Double_t, Int_t
12 #include <TObject.h> // for TObject
13 #include <TVector3.h> // for TVector3
14 class TBuffer;
15 class TClass;
16 class TMemberInspector;
17 
18 class FairGeaneUtil : public TObject
19 {
20  public:
21  FairGeaneUtil();
23 
24  // frame changing
25  void FromPtToSC(Double_t PC[3], Double_t RC[15], Double_t* PD, Double_t* RD, Int_t& IERR);
26 
27  void FromPtToSD(Double_t PD[3],
28  Double_t RD[15],
29  Double_t H[3],
30  Int_t CH,
31  Double_t SPU,
32  Double_t DJ[3],
33  Double_t DK[3],
34  Int_t& IERR,
35  Double_t* PC,
36  Double_t* RC);
37 
38  void FromSCToPt(Double_t PC[3], Double_t RC[15], Double_t* PD, Double_t* RD, Int_t& IERR);
39 
40  void FromSCToSD(Double_t PC[3],
41  Double_t RC[15],
42  Double_t H[3],
43  Int_t CH,
44  Double_t DJ[3],
45  Double_t DK[3],
46  Int_t& IERR,
47  Double_t& SPU,
48  Double_t* PD,
49  Double_t* RD);
50 
51  void FromSD1ToSD2(Double_t PD1[3],
52  Double_t RD1[15],
53  Double_t H[3],
54  Int_t CH,
55  Double_t SP1,
56  Double_t DJ1[3],
57  Double_t DK1[3],
58  Double_t DJ2[3],
59  Double_t DK2[3],
60  Int_t& IERR,
61  Double_t& SP2,
62  Double_t* PD2,
63  Double_t* RD2);
64 
65  void FromSDToPt(Double_t PD[3],
66  Double_t RD[15],
67  Double_t H[3],
68  Int_t CH,
69  Double_t SPU,
70  Double_t DJ[3],
71  Double_t DK[3],
72  Int_t& IERR,
73  Double_t* PC,
74  Double_t* RC);
75 
76  void FromSDToSC(Double_t PD[3],
77  Double_t RD[15],
78  Double_t H[3],
79  Int_t CH,
80  Double_t SPU,
81  Double_t DJ[3],
82  Double_t DK[3],
83  Int_t& IERR,
84  Double_t* PC,
85  Double_t* RC);
86 
87  typedef Double_t sixMat[6][6];
88  void FromSCToMars(Double_t PC[3], Double_t RC[15], Double_t H[3], Int_t CH, Double_t* PD, sixMat& RD);
89 
90  void FromMarsToSC(Double_t PD[3], Double_t RD[6][6], Double_t H[3], Int_t CH, Double_t* PC, Double_t* RC);
91 
92  void FromSDToMars(Double_t PC[3],
93  Double_t RC[15],
94  Double_t H[3],
95  Int_t CH,
96  Double_t SP1,
97  Double_t DJ1[3],
98  Double_t DK1[3],
99  Double_t* PD,
100  sixMat& RD);
101 
102  void FromMarsToSD(Double_t PD[3],
103  Double_t RD[6][6],
104  Double_t H[3],
105  Int_t CH,
106  Double_t DJ1[3],
107  Double_t DK1[3],
108  Int_t& IERR,
109  Double_t& SP1,
110  Double_t* PC,
111  Double_t* RC);
112 
113  void FromMat25ToVec15(Double_t A[5][5], Double_t* V);
114  void FromMatToVec(Double_t A[5][5], Double_t* V);
115 
116  typedef Double_t fiveMat[5][5];
117  void FromVec15ToMat25(Double_t V[15], fiveMat& A);
118 
119  void FromVecToMat(fiveMat& A, Double_t V[25]);
120  void SymmProd(Double_t A[25], Double_t S[15], Double_t* R);
121  TVector3 FromMARSToSDCoord(TVector3 xyz, TVector3 o, TVector3 di, TVector3 dj, TVector3 dk);
122  TVector3 FromSDToMARSCoord(TVector3 uvw, TVector3 o, TVector3 di, TVector3 dj, TVector3 dk);
123 
125 };
126 
127 #endif
void FromMarsToSC(Double_t PD[3], Double_t RD[6][6], Double_t H[3], Int_t CH, Double_t *PC, Double_t *RC)
void FromSDToPt(Double_t PD[3], Double_t RD[15], Double_t H[3], Int_t CH, Double_t SPU, Double_t DJ[3], Double_t DK[3], Int_t &IERR, Double_t *PC, Double_t *RC)
void FromMarsToSD(Double_t PD[3], Double_t RD[6][6], Double_t H[3], Int_t CH, Double_t DJ1[3], Double_t DK1[3], Int_t &IERR, Double_t &SP1, Double_t *PC, Double_t *RC)
void FromSDToMars(Double_t PC[3], Double_t RC[15], Double_t H[3], Int_t CH, Double_t SP1, Double_t DJ1[3], Double_t DK1[3], Double_t *PD, sixMat &RD)
Double_t fiveMat[5][5]
void FromPtToSC(Double_t PC[3], Double_t RC[15], Double_t *PD, Double_t *RD, Int_t &IERR)
void FromSCToPt(Double_t PC[3], Double_t RC[15], Double_t *PD, Double_t *RD, Int_t &IERR)
void FromVec15ToMat25(Double_t V[15], fiveMat &A)
void SymmProd(Double_t A[25], Double_t S[15], Double_t *R)
void FromSD1ToSD2(Double_t PD1[3], Double_t RD1[15], Double_t H[3], Int_t CH, Double_t SP1, Double_t DJ1[3], Double_t DK1[3], Double_t DJ2[3], Double_t DK2[3], Int_t &IERR, Double_t &SP2, Double_t *PD2, Double_t *RD2)
void FromMat25ToVec15(Double_t A[5][5], Double_t *V)
TVector3 FromMARSToSDCoord(TVector3 xyz, TVector3 o, TVector3 di, TVector3 dj, TVector3 dk)
TVector3 FromSDToMARSCoord(TVector3 uvw, TVector3 o, TVector3 di, TVector3 dj, TVector3 dk)
void FromMatToVec(Double_t A[5][5], Double_t *V)
void FromSDToSC(Double_t PD[3], Double_t RD[15], Double_t H[3], Int_t CH, Double_t SPU, Double_t DJ[3], Double_t DK[3], Int_t &IERR, Double_t *PC, Double_t *RC)
void FromSCToMars(Double_t PC[3], Double_t RC[15], Double_t H[3], Int_t CH, Double_t *PD, sixMat &RD)
void FromVecToMat(fiveMat &A, Double_t V[25])
ClassDef(FairGeaneUtil, 1)
void FromSCToSD(Double_t PC[3], Double_t RC[15], Double_t H[3], Int_t CH, Double_t DJ[3], Double_t DK[3], Int_t &IERR, Double_t &SPU, Double_t *PD, Double_t *RD)
void FromPtToSD(Double_t PD[3], Double_t RD[15], Double_t H[3], Int_t CH, Double_t SPU, Double_t DJ[3], Double_t DK[3], Int_t &IERR, Double_t *PC, Double_t *RC)
Double_t sixMat[6][6]
Definition: FairGeaneUtil.h:87