1 | #ifndef G__SOLGEOM_H
|
---|
2 | #define G__SOLGEOM_H
|
---|
3 |
|
---|
4 | #include <Rtypes.h>
|
---|
5 | #include <TString.h>
|
---|
6 |
|
---|
7 | // Class to create geometry for solenoid geometry
|
---|
8 |
|
---|
9 | class SolGeom{
|
---|
10 | //
|
---|
11 | // Units are m
|
---|
12 | //
|
---|
13 | private:
|
---|
14 | const Int_t fNlMax = 200; // Maximum number of layers
|
---|
15 |
|
---|
16 | // B field
|
---|
17 | Double_t fB; // B field in Tesla
|
---|
18 |
|
---|
19 | // Barrel layer properties
|
---|
20 | Int_t fNlay; // Total number of layers
|
---|
21 | Int_t fBlay; // Number of barrel layers
|
---|
22 | Int_t fFlay; // Number of forward/backward layers
|
---|
23 | Int_t fNm; // Nr. measurement layers
|
---|
24 | Int_t *ftyLay; // Layer type 1 = R (barrel) or 2 = z (forward/backward)
|
---|
25 | TString *fLyLabl; // Layer label
|
---|
26 | // Barrel: PIPE, VTXLOW, VTXHIGH, DCHCANI, DCH, DCHCANO, BSILWRP, MAG, BPRESH
|
---|
27 | // Fw/Bw: VTXDSK, DCHWALL, FSILWRP, FRAD, FPRESH
|
---|
28 | Double_t *fxMin; // Minimum dimension z for barrel or R for forward
|
---|
29 | Double_t *fxMax; // Maximum dimension z for barrel or R for forward
|
---|
30 | Double_t *frPos; // R/z location of layer
|
---|
31 | Double_t *fthLay; // Thickness (meters)
|
---|
32 | Double_t *frlLay; // Radiation length (meters)
|
---|
33 | Int_t *fnmLay; // Number of measurements in layers (1D or 2D)
|
---|
34 | Double_t *fstLayU; // Stereo angle (rad) - 0(pi/2) = axial(z) layer - Upper side
|
---|
35 | Double_t *fstLayL; // Stereo angle (rad) - 0(pi/2) = axial(z) layer - Lower side
|
---|
36 | Double_t *fsgLayU; // Resolution Upper side (meters) - 0 = no measurement
|
---|
37 | Double_t *fsgLayL; // Resolution Lower side (meters) - 0 = no measurement
|
---|
38 | Bool_t *fflLay; // measurement flag = T, scattering only = F
|
---|
39 |
|
---|
40 | public:
|
---|
41 | SolGeom();
|
---|
42 | ~SolGeom();
|
---|
43 |
|
---|
44 | void Read(const char *data);
|
---|
45 |
|
---|
46 | Double_t B() { return fB; }
|
---|
47 | Int_t Nl() { return fNlay; }
|
---|
48 | Int_t Nm() { return fNm; }
|
---|
49 | Int_t NBl() { return fBlay; }
|
---|
50 | TString lLabl(Int_t nlayer) { return fLyLabl[nlayer]; }
|
---|
51 | Int_t lTyp(Int_t nlayer) { return ftyLay[nlayer]; }
|
---|
52 | Double_t lxMin(Int_t nlayer) { return fxMin[nlayer]; }
|
---|
53 | Double_t lxMax(Int_t nlayer) { return fxMax[nlayer]; }
|
---|
54 | Double_t lPos(Int_t nlayer) { return frPos[nlayer]; }
|
---|
55 | Double_t lTh(Int_t nlayer) { return fthLay[nlayer]; }
|
---|
56 | Double_t lX0(Int_t nlayer) { return frlLay[nlayer]; }
|
---|
57 | Int_t lND(Int_t nlayer) { return fnmLay[nlayer]; }
|
---|
58 | Double_t lStU(Int_t nlayer) { return fstLayU[nlayer]; }
|
---|
59 | Double_t lStL(Int_t nlayer) { return fstLayL[nlayer]; }
|
---|
60 | Double_t lSgU(Int_t nlayer) { return fsgLayU[nlayer]; }
|
---|
61 | Double_t lSgL(Int_t nlayer) { return fsgLayL[nlayer]; }
|
---|
62 | Bool_t isMeasure(Int_t nlayer) { return fflLay[nlayer]; }
|
---|
63 | };
|
---|
64 |
|
---|
65 | #endif
|
---|