BmnRoot
Loading...
Searching...
No Matches
CbmKFMaterial.h
Go to the documentation of this file.
1
11#ifndef CBMKFMATERIAL_H
12#define CBMKFMATERIAL_H 1
13
14#include "CbmKFTrackInterface.h"
15class TString;
16
17class CbmKFMaterial :public TObject
18{
19 public:
20
22 ID(-1),
23 ZReference(-1),
24 ZThickness(-1),
25 RadLength(-1),
26 F(1),
27 Fe(0.02145)
28 {}
29 virtual ~CbmKFMaterial(){};
30
31 Int_t ID;
32 Double_t ZReference ;
33 Double_t ZThickness ;
34 Double_t RadLength ;
35 Double_t F;
36 Double_t Fe;
37 virtual Bool_t IsOutside( Double_t x, Double_t y ){ return 0; }
38
39 virtual Int_t Pass( Double_t ZCross, Double_t ZThick,
40 CbmKFTrackInterface &track,
41 Bool_t downstream, Double_t &QP0 );
42
43 virtual Int_t Pass( CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0 ){
44 return Pass( ZReference, ZThickness, track, downstream, QP0);
45 }
46
47 virtual Int_t Pass( CbmKFTrackInterface &track, Bool_t downstream ){
48 Double_t QP0 = track.GetTrack()[4];
49 return Pass( ZReference, ZThickness, track, downstream, QP0);
50 }
51
52 virtual TString Info() const;
53
54 static Bool_t comparePDown( const CbmKFMaterial *a, const CbmKFMaterial *b ){
55 return a->ZReference < b->ZReference;
56 }
57
58 static Bool_t compareP_z( const CbmKFMaterial *a, Double_t z ){
59 return (a->ZReference + a->ZThickness/2) < z ;
60 }
61
62 static Bool_t compareP_Z( Double_t z, const CbmKFMaterial *a ){
63 return z < (a->ZReference + a->ZThickness/2) ;
64 }
65
66 ClassDef(CbmKFMaterial,1)
67};
68
70 public:
73
74 ClassDef(CbmKFWall,1)
75};
76
78 public:
79 CbmKFTube():x(0),y(0),z(0),dz(0),r(0),R(0),rr(0),RR(0){}
80 CbmKFTube(Int_t ID, Double_t x, Double_t y, Double_t z, Double_t dz, Double_t r, Double_t R, Double_t radL);
82
83 TString Info() const;
84
85 Double_t x,y,z, dz;
86 Double_t r, R, rr, RR;
87
88 Bool_t IsOutside( Double_t X, Double_t Y ){
89 X-=x;
90 Y-=y;
91 Double_t r2 = X*X + Y*Y;
92 return ( r2<rr || RR<r2 ) ;
93 }
94 ClassDef(CbmKFTube, 1)
95};
96
97class CbmKFBox: public CbmKFMaterial{
98 public:
99 CbmKFBox():x(0),y(0),z(0),dx05(0),dy05(0),dz(0){}
100 CbmKFBox(Int_t ID, Double_t x, Double_t y, Double_t z, Double_t dx, Double_t dy, Double_t dz, Double_t radL);
102
103 TString Info() const;
104
105 Double_t x,y,z, dx05,dy05,dz;
106
107 Bool_t IsOutside( Double_t X, Double_t Y );
108
109 ClassDef(CbmKFBox, 1)
110};
111
113 public:
114 CbmKFCone(): z1(0), z2(0), r1(0), R1(0), r2(0), R2(0) {};
116
117 Double_t z1, z2;
118 Double_t r1, R1, r2, R2;
119
120 Int_t Pass( Double_t ZCross, Double_t ZThick,
121 CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0 );
122
123 Int_t Pass( CbmKFTrackInterface &track, Bool_t downstream, Double_t &QP0 ){
124 return Pass( ZReference, ZThickness, track, downstream, QP0);
125 }
126
127 Int_t Pass( CbmKFTrackInterface &track, Bool_t downstream ){
128 Double_t QP0 = track.GetTrack()[4];
129 return Pass( ZReference, ZThickness, track, downstream, QP0);
130 }
131 ClassDef(CbmKFCone, 1)
132};
133
134
135#endif /* !CBMKFMATERIAL_H */
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