CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemMidDriftPlane.h
Go to the documentation of this file.
1#ifndef CGEMMIDDRIFTPLANE_H
2#define CGEMMIDDRIFTPLANE_H
3
4#include "CgemGeomSvc/CgemGeoAlign.h"
5#include "CgemGeomSvc/StraightLine.h"
6#include "CgemGeomSvc/CgemGeoReadoutPlane.h"
7
9
10public:
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, StraightLine pLine, HepPoint3D& posUp,
29 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
30 bool getPointIdealGeom(int layer, StraightLine* pLine, HepPoint3D& posUp,
31 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
32
33 /* Up: the cross point above the x-axis */
34 /* Down: the cross point above the x-axis */
35 /* posUp, posDown are in the BESIII global coordinate */
36 /* phiV[]: [phi, v], in the local corridinate of the CGEM layer */
37 bool getPointAligned(int layer, StraightLine pLine, HepPoint3D& posUp,
38 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
39 bool getPointAligned(int layer, StraightLine* pLine, HepPoint3D& posUp,
40 HepPoint3D& posDown, double phiVUp[], double phiVDown[]);
41
42 /* pos: x,y,z in the BESIII global coordinate */
43 /* phiV[]: [phi, v], in the local corridinate of the CGEM layer */
44 bool xyzToPhiVIdealGeom(int layer, HepPoint3D pos, double phiV[]);
45
46private:
47 CgemGeoAlign* m_align;
48 CgemGeoReadoutPlane* m_readoutPlane[3][2];
49
50 double m_rad[3];
51 double m_vAngle[3];
52};
53
54#endif
bool getPointIdealGeom(int layer, StraightLine pLine, HepPoint3D &posUp, HepPoint3D &posDown, double phiVUp[], double phiVDown[])
bool getPointAligned(int layer, StraightLine pLine, HepPoint3D &posUp, HepPoint3D &posDown, double phiVUp[], double phiVDown[])
void setReadoutPlane(int layer, int sheet, CgemGeoReadoutPlane *readoutPtr)
bool xyzToPhiVIdealGeom(int layer, HepPoint3D pos, double phiV[])