CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
CgemMidDriftPlane.h
Go to the documentation of this file.
1#ifndef CGEMMIDDRIFTPLANE_H
2#define CGEMMIDDRIFTPLANE_H
3
7
9
10 public:
13
14 void setAlignment(CgemGeoAlign* alignPtr) {m_align = alignPtr;}
15 void setReadoutPlane(int layer, int sheet,
16 CgemGeoReadoutPlane* readoutPtr) {m_readoutPlane[layer][sheet]=readoutPtr;}
17
18 void setR(int layer, double r) {m_rad[layer] = r;}
19 double getR(int layer) {return m_rad[layer];}
20
21 /* set stereo angle */
22 /* void setVangle(int layer, double vAngle) {m_vAngle[layer] = vAngle;} */
23
24 /* IdealGeom: without misalignment, the CGEM local coordinate is the same as BESIII global */
25 /* Up: the cross point above the x-axis */
26 /* Down: the cross point above the x-axis */
27 /* phiV[]: [phi, v], in the local corridinate of the CGEM layer */
28 bool getPointIdealGeom(int layer_vir, StraightLine pLine, HepPoint3D& posUp,
29 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
30 bool getPointIdealGeom(int layer_vir, StraightLine* pLine, HepPoint3D& posUp,
31 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
32
33 bool getPointIdealGeom(int layer_geo, int sheet, StraightLine pLine, HepPoint3D& posUp,
34 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
35 bool getPointIdealGeom(int layer_geo, int sheet, StraightLine* pLine, HepPoint3D& posUp,
36 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
37
38 // for the functions that only return one intersection
39 bool getPointIdealGeom(int layer_vir, StraightLine pLine, HepPoint3D& pos,
40 double phiV[]);
41 bool getPointIdealGeom(int layer_vir, StraightLine* pLine, HepPoint3D& pos,
42 double phiV[]);
43
44 bool getPointIdealGeom(int layer_geo, int sheet, StraightLine pLine, HepPoint3D& pos,
45 double phiV[]);
46 bool getPointIdealGeom(int layer_geo, int sheet, StraightLine* pLine, HepPoint3D& pos,
47 double phiV[]);
48
49
50
51
52 /* Up: the cross point above the x-axis */
53 /* Down: the cross point above the x-axis */
54 /* posUp, posDown are in the BESIII global coordinate */
55 /* phiV[]: [phi, v], in the local corridinate of the CGEM layer */
56
57 // bool getPointAligned(int layer, StraightLine pLine, HepPoint3D& posUp,
58 // HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
59 // bool getPointAligned(int layer, StraightLine* pLine, HepPoint3D& posUp,
60 // HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
61
62 bool getPointAligned(int layer_vir, StraightLine pLine, HepPoint3D& posUp,
63 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
64 bool getPointAligned(int layer_vir, StraightLine* pLine, HepPoint3D& posUp,
65 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
66
67 bool getPointAligned(int layer_geo, int sheet, StraightLine pLine, HepPoint3D& posUp,
68 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
69 bool getPointAligned(int layer_geo, int sheet, StraightLine* pLine, HepPoint3D& posUp,
70 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
71
72
73 // for the functions that only return one intersection
74
75 bool getPointAligned(int layer_vir, StraightLine pLine, HepPoint3D& pos,
76 double phiV[]);
77 bool getPointAligned(int layer_vir, StraightLine* pLine, HepPoint3D& pos,
78 double phiV[]);
79
80 bool getPointAligned(int layer_geo, int sheet, StraightLine pLine, HepPoint3D& pos,
81 double phiV[]);
82 bool getPointAligned(int layer_geo, int sheet, StraightLine* pLine, HepPoint3D& pos,
83 double phiV[]);
84
85
86
87 // Why do I need these two functions ???
88 // bool getPointAligned(int layer_geo, int sheet, int layer_vir, StraightLine pLine, HepPoint3D& posUp,
89 // HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
90 // bool getPointAligned(int layer_geo, int sheet, int layer_vir, StraightLine* pLine, HepPoint3D& posUp,
91 // HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
92
93 /* pos: x,y,z in the BESIII global coordinate */
94 /* phiV[]: [phi, v], in the local corridinate of the CGEM layer */
95 bool xyzToPhiVIdealGeom(int layer_geo, HepPoint3D pos, double phiV[]);
96
97 private:
98 CgemGeoAlign* m_align;
99 CgemGeoReadoutPlane* m_readoutPlane[3][2];
100
101 double m_rad[3];
102 double m_vAngle[3];
103};
104
105#endif
void setAlignment(CgemGeoAlign *alignPtr)
bool getPointIdealGeom(int layer_vir, StraightLine pLine, HepPoint3D &posUp, HepPoint3D &posDown, double phiVUp[], double phiVDown[])
void setR(int layer, double r)
bool getPointAligned(int layer_vir, StraightLine pLine, HepPoint3D &posUp, HepPoint3D &posDown, double phiVUp[], double phiVDown[])
double getR(int layer)
void setReadoutPlane(int layer, int sheet, CgemGeoReadoutPlane *readoutPtr)
bool xyzToPhiVIdealGeom(int layer_geo, HepPoint3D pos, double phiV[])