BmnRoot 26.10.0-19-g6979a6c6
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmKFMaterial.h
Go to the documentation of this file.
1/** Base class for material is being used by the CbmKF Kalman Filter
2 *
3 * @author S.Gorbunov
4 * @version 0.0
5 * @since 02.12.05
6 *
7 * Description will be here
8 *
9 */
10
11#ifndef CBMKFMATERIAL_H
12#define CBMKFMATERIAL_H 1
13
14#include "CbmKFTrackInterface.h"
15class TString;
16
17class CbmKFMaterial : public TObject
18{
19 public:
21 : ID(-1)
22 , ZReference(-1)
23 , ZThickness(-1)
24 , RadLength(-1)
25 , F(1)
26 , Fe(0.02145)
27 {}
28 virtual ~CbmKFMaterial() {};
29
36 virtual Bool_t IsOutside(Double_t x, Double_t y) { return 0; }
37
38 virtual Int_t Pass(Double_t ZCross, Double_t ZThick, CbmKFTrackInterface& track, Bool_t downstream, Double_t& QP0);
39
40 virtual Int_t Pass(CbmKFTrackInterface& track, Bool_t downstream, Double_t& QP0)
41 {
42 return Pass(ZReference, ZThickness, track, downstream, QP0);
43 }
44
45 virtual Int_t Pass(CbmKFTrackInterface& track, Bool_t downstream)
46 {
47 Double_t QP0 = track.GetTrack()[4];
48 return Pass(ZReference, ZThickness, track, downstream, QP0);
49 }
50
51 virtual TString Info() const;
52
53 static Bool_t comparePDown(const CbmKFMaterial* a, const CbmKFMaterial* b) { return a->ZReference < b->ZReference; }
54
55 static Bool_t compareP_z(const CbmKFMaterial* a, Double_t z) { return (a->ZReference + a->ZThickness / 2) < z; }
56
57 static Bool_t compareP_Z(Double_t z, const CbmKFMaterial* a) { return z < (a->ZReference + a->ZThickness / 2); }
58
60};
61
63{
64 public:
67
69};
70
72{
73 public:
75 : x(0)
76 , y(0)
77 , z(0)
78 , dz(0)
79 , r(0)
80 , R(0)
81 , rr(0)
82 , RR(0)
83 {}
86
87 TString Info() const;
88
91
93 {
94 X -= x;
95 Y -= y;
96 Double_t r2 = X * X + Y * Y;
97 return (r2 < rr || RR < r2);
98 }
100};
101
103{
104 public:
106 : x(0)
107 , y(0)
108 , z(0)
109 , dx05(0)
110 , dy05(0)
111 , dz(0)
112 {}
115
116 TString Info() const;
117
119
121
123};
124
126{
127 public:
129 : z1(0)
130 , z2(0)
131 , r1(0)
132 , R1(0)
133 , r2(0)
134 , R2(0) {};
136
139
140 Int_t Pass(Double_t ZCross, Double_t ZThick, CbmKFTrackInterface& track, Bool_t downstream, Double_t& QP0);
141
142 Int_t Pass(CbmKFTrackInterface& track, Bool_t downstream, Double_t& QP0)
143 {
144 return Pass(ZReference, ZThickness, track, downstream, QP0);
145 }
146
148 {
149 Double_t QP0 = track.GetTrack()[4];
150 return Pass(ZReference, ZThickness, track, downstream, QP0);
151 }
153};
154
155#endif /* !CBMKFMATERIAL_H */
bool Bool_t
int Int_t
double Double_t
#define ClassDef(name, id)
Double_t x
Double_t z
TString Info() const
Bool_t IsOutside(Double_t X, Double_t Y)
Double_t dx05
Double_t y
Double_t dz
Double_t dy05
Double_t R2
Double_t z2
Double_t R1
Int_t Pass(CbmKFTrackInterface &track, Bool_t downstream)
Double_t r1
Double_t r2
Int_t Pass(Double_t ZCross, Double_t ZThick, CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0)
Int_t Pass(CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0)
Double_t z1
virtual Bool_t IsOutside(Double_t x, Double_t y)
Double_t ZReference
virtual Int_t Pass(Double_t ZCross, Double_t ZThick, CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0)
virtual TString Info() const
Double_t RadLength
static Bool_t comparePDown(const CbmKFMaterial *a, const CbmKFMaterial *b)
static Bool_t compareP_z(const CbmKFMaterial *a, Double_t z)
virtual Int_t Pass(CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0)
virtual ~CbmKFMaterial()
Double_t ZThickness
virtual Int_t Pass(CbmKFTrackInterface &track, Bool_t downstream)
static Bool_t compareP_Z(Double_t z, const CbmKFMaterial *a)
virtual Double_t * GetTrack()
Is it electron.
Double_t R
Double_t rr
Bool_t IsOutside(Double_t X, Double_t Y)
Double_t RR
Double_t x
TString Info() const
Double_t r
Double_t dz
Double_t y
Double_t z