/
FairGeaneUtil.h
82 lines (60 loc) · 2.97 KB
/
FairGeaneUtil.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef FAIRGEANEUTIL_H
#define FAIRGEANEUTIL_H
#include "FairTrackPar.h"
#include "TVector3.h"
class FairGeaneUtil : public TObject
{
public:
FairGeaneUtil();
~FairGeaneUtil();
// frame changing
void FromPtToSC(Double_t PC[3], Double_t RC[15],
Double_t* PD, Double_t* RD, Int_t& IERR);
void FromPtToSD(Double_t PD[3], Double_t RD[15], Double_t H[3],Int_t CH,
Double_t SPU, Double_t DJ[2], Double_t DK[2],
Int_t& IERR, Double_t* PC, Double_t* RC);
void FromSCToPt(Double_t PC[3], Double_t RC[15],
Double_t* PD, Double_t* RD, Int_t& IERR);
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 FromSD1ToSD2(Double_t PD1[2], Double_t RD1[15],Double_t H[2],
Int_t CH, Double_t SP1,
Double_t DJ1[2], Double_t DK1[2],
Double_t DJ2[2], Double_t DK2[2],
Int_t& IERR, Double_t& SP2,
Double_t* PD2, Double_t* RD2);
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 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);
typedef Double_t sixMat[6][6];
void FromSCToMars(Double_t PC[3], Double_t RC[15], Double_t H[3], Int_t CH,
Double_t* PD, sixMat& RD);
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 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);
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 FromMat25ToVec15(Double_t A[5][5], Double_t* V);
void FromMatToVec(Double_t A[5][5], Double_t* V);
typedef Double_t fiveMat[5][5];
void FromVec15ToMat25(Double_t V[15], fiveMat& A);
void FromVecToMat(fiveMat& A, Double_t V[25]);
void SymmProd(Double_t A[25], Double_t S[15], Double_t* R);
TVector3 FromMARSToSDCoord(TVector3 xyz, TVector3 o, TVector3 di, TVector3 dj, TVector3 dk);
TVector3 FromSDToMARSCoord(TVector3 uvw, TVector3 o, TVector3 di, TVector3 dj, TVector3 dk);
ClassDef(FairGeaneUtil,1);
};
#endif