CbmRoot
Loading...
Searching...
No Matches
CbmKFMath.h
Go to the documentation of this file.
1/* Copyright (C) 2006-2013 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergey Gorbunov, Denis Bertini [committer] */
4
15#ifndef CBMKFMATH_H
16#define CBMKFMATH_H 1
17
18#include "TObject.h"
19
20class FairField;
21class FairTrackParam;
22
23class CbmKFMath : public TObject {
24 public:
27
28 static Bool_t GetThickness(Double_t z1, Double_t z2, Double_t mz, Double_t mthick, Double_t* mz_out,
29 Double_t* mthick_out);
30
31 static Bool_t intersectCone(Double_t zCone, Double_t ZCone, Double_t rCone, Double_t RCone, const Double_t x[],
32 Double_t* z1, Double_t* z2);
33
34 static Int_t indexS(Int_t i, Int_t j) { return (j <= i) ? i * (i + 1) / 2 + j : j * (j + 1) / 2 + i; }
35
36 static void multQSQt(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[]);
37 static void multQtSQ(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[]);
38 static void multSSQ(const Double_t* A, const Double_t* B, Double_t* C, Int_t n);
39 static void four_dim_inv(Double_t a[4][4]);
40 static void five_dim_inv(Double_t a[5][5]);
41 static Bool_t invS(Double_t A[], Int_t N);
42 static Double_t getDeviation(Double_t x, Double_t y, Double_t C[], Double_t vx, Double_t vy, Double_t Cv[] = nullptr);
43 static Double_t AnalyticQP(const Double_t T[], // track parameters (x,y,tx,ty,Q/p,z)
44 const Double_t V[], // vertex parameters (x,y,z)
45 FairField* MagneticField // magnetic field
46 );
47
48 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,
49 Bool_t is_electron, Bool_t downstream_direction, Double_t* Q5, Double_t* Q8, Double_t* Q9,
50 Double_t* Ecor);
51
52 static void CopyTrackParam2TC(const FairTrackParam* par, Double_t T[], Double_t C[]);
53 static void CopyTC2TrackParam(FairTrackParam* par, Double_t T[], Double_t C[]);
54
55 ClassDef(CbmKFMath, 1)
56};
57
58#endif /* ! CBMKFMATH_H */
static void multQtSQ(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[])
Definition CbmKFMath.cxx:70
static void CopyTC2TrackParam(FairTrackParam *par, Double_t T[], Double_t C[])
static Double_t getDeviation(Double_t x, Double_t y, Double_t C[], Double_t vx, Double_t vy, Double_t Cv[]=nullptr)
static Bool_t GetThickness(Double_t z1, Double_t z2, Double_t mz, Double_t mthick, Double_t *mz_out, Double_t *mthick_out)
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)
static Double_t AnalyticQP(const Double_t T[], const Double_t V[], FairField *MagneticField)
static void multSSQ(const Double_t *A, const Double_t *B, Double_t *C, Int_t n)
Definition CbmKFMath.cxx:94
static void five_dim_inv(Double_t a[5][5])
static Bool_t invS(Double_t A[], Int_t N)
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)
static void four_dim_inv(Double_t a[4][4])
static void CopyTrackParam2TC(const FairTrackParam *par, Double_t T[], Double_t C[])
static void multQSQt(Int_t N, const Double_t Q[], const Double_t S[], Double_t S_out[])
Definition CbmKFMath.cxx:46
static Int_t indexS(Int_t i, Int_t j)
Definition CbmKFMath.h:34