CbmRoot
CbmKFMath.h
Go to the documentation of this file.
1 
11 #ifndef CBMKFMATH_H
12 #define CBMKFMATH_H 1
13 
14 #include "TObject.h"
15 
16 class FairField;
17 class FairTrackParam;
18 
19 class CbmKFMath : public TObject {
20 public:
21  CbmKFMath() {}
23 
24  static Bool_t GetThickness(Double_t z1,
25  Double_t z2,
26  Double_t mz,
27  Double_t mthick,
28  Double_t* mz_out,
29  Double_t* mthick_out);
30 
31  static Bool_t intersectCone(Double_t zCone,
32  Double_t ZCone,
33  Double_t rCone,
34  Double_t RCone,
35  const Double_t x[],
36  Double_t* z1,
37  Double_t* z2);
38 
39  static Int_t indexS(Int_t i, Int_t j) {
40  return (j <= i) ? i * (i + 1) / 2 + j : j * (j + 1) / 2 + i;
41  }
42 
43  static void
44  multQSQt(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[]);
45  static void
46  multQtSQ(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[]);
47  static void
48  multSSQ(const Double_t* A, const Double_t* B, Double_t* C, Int_t n);
49  static void four_dim_inv(Double_t a[4][4]);
50  static void five_dim_inv(Double_t a[5][5]);
51  static Bool_t invS(Double_t A[], Int_t N);
52  static Double_t getDeviation(Double_t x,
53  Double_t y,
54  Double_t C[],
55  Double_t vx,
56  Double_t vy,
57  Double_t Cv[] = 0);
58  static Double_t
59  AnalyticQP(const Double_t T[], // track parameters (x,y,tx,ty,Q/p,z)
60  const Double_t V[], // vertex parameters (x,y,z)
61  FairField* MagneticField // magnetic field
62  );
63 
64  static Int_t GetNoise(Double_t Lrl,
65  Double_t F,
66  Double_t Fe,
67  Double_t tx,
68  Double_t ty,
69  Double_t qp,
70  Double_t mass,
71  Bool_t is_electron,
72  Bool_t downstream_direction,
73  Double_t* Q5,
74  Double_t* Q8,
75  Double_t* Q9,
76  Double_t* Ecor);
77 
78  static void
79  CopyTrackParam2TC(const FairTrackParam* par, Double_t T[], Double_t C[]);
80  static void
81  CopyTC2TrackParam(FairTrackParam* par, Double_t T[], Double_t C[]);
82 
83  ClassDef(CbmKFMath, 1)
84 };
85 
86 #endif /* ! CBMKFMATH_H */
CbmKFMath::intersectCone
static Bool_t intersectCone(Double_t zCone, Double_t ZCone, Double_t rCone, Double_t RCone, const Double_t x[], Double_t *z1, Double_t *z2)
CbmKFMath::multQtSQ
static void multQtSQ(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[])
Definition: CbmKFMath.cxx:70
CbmKFMath::~CbmKFMath
~CbmKFMath()
Definition: CbmKFMath.h:22
CbmKFMath::four_dim_inv
static void four_dim_inv(Double_t a[4][4])
Definition: CbmKFMath.cxx:108
CbmKFMath::indexS
static Int_t indexS(Int_t i, Int_t j)
Definition: CbmKFMath.h:39
CbmKFMath::multSSQ
static void multSSQ(const Double_t *A, const Double_t *B, Double_t *C, Int_t n)
Definition: CbmKFMath.cxx:94
CbmKFMath::CopyTrackParam2TC
static void CopyTrackParam2TC(const FairTrackParam *par, Double_t T[], Double_t C[])
Definition: CbmKFMath.cxx:827
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
CbmKFMath::getDeviation
static Double_t getDeviation(Double_t x, Double_t y, Double_t C[], Double_t vx, Double_t vy, Double_t Cv[]=0)
Definition: CbmKFMath.cxx:324
z2
Double_t z2[nSects2]
Definition: pipe_v16a_mvdsts100.h:11
CbmKFMath::multQSQt
static void multQSQt(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[])
Definition: CbmKFMath.cxx:42
CbmKFMath::invS
static Bool_t invS(Double_t A[], Int_t N)
Definition: CbmKFMath.cxx:232
CbmKFMath::five_dim_inv
static void five_dim_inv(Double_t a[5][5])
Definition: CbmKFMath.cxx:168
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmKFMath
Definition: CbmKFMath.h:19
CbmKFMath::CopyTC2TrackParam
static void CopyTC2TrackParam(FairTrackParam *par, Double_t T[], Double_t C[])
Definition: CbmKFMath.cxx:809
CbmKFMath::CbmKFMath
CbmKFMath()
Definition: CbmKFMath.h:21
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmKFMath::GetNoise
static Int_t GetNoise(Double_t Lrl, Double_t F, Double_t Fe, Double_t tx, Double_t ty, Double_t qp, Double_t mass, Bool_t is_electron, Bool_t downstream_direction, Double_t *Q5, Double_t *Q8, Double_t *Q9, Double_t *Ecor)
Definition: CbmKFMath.cxx:756
z1
Double_t z1[nSects1]
Definition: pipe_v16a_mvdsts100.h:6
CbmKFMath::GetThickness
static Bool_t GetThickness(Double_t z1, Double_t z2, Double_t mz, Double_t mthick, Double_t *mz_out, Double_t *mthick_out)
Definition: CbmKFMath.cxx:717
CbmKFMath::AnalyticQP
static Double_t AnalyticQP(const Double_t T[], const Double_t V[], FairField *MagneticField)
Definition: CbmKFMath.cxx:350