BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcCalibAlg/MdcCalibAlg-01-00-00/share/distcalib/src/include/MdcCosGeom.h
Go to the documentation of this file.
1/* Class MdcCosGeom describes the geometry of the chamber */
2/* Created by Wu Linghui, 2006/05/28 */
3
4#ifndef MDCCOSGEOM_H
5#define MDCCOSGEOM_H
6
7#include "MdcCosWire.h"
8#include "MdcCosLayer.h"
9#include "const.h"
10
11#include <iostream>
12#include <string>
13#include <vector>
14#include <assert.h>
15
16class MdcCosGeom{
17public:
18 /* constructor */
19 MdcCosGeom(std::string fwireconf, std::string fAlign);
20
21 /* destructor */
23
24 bool initialize(double rot);
25 bool initWire();
26 bool initPream();
27 bool setTension();
28 void check(std::string fchk) const; /* check mdc geometry data */
29
30 const int getLayerSize() const { return m_nLayer; }
31 const int getWireSize() const { return m_nWire; }
32
33 const MdcCosWire* getWire(int iwire) const { return m_pwire[iwire]; }
34 const MdcCosWire* getWire(int ilay, int icell) const;
35
36 const MdcCosLayer* getLayer(int ilay) const { return m_player[ilay]; }
37
38 const void getAlignPar(double alignPar[]) const;
39
40private:
41 bool initAlign();
42
43 /* name of wire config file */
44 std::string m_fwconf;
45
46 /* name of wire alignment file */
47 std::string m_falign;
48
49 /* pointer to wire */
50 MdcCosWire* m_pwire[WIRENMAX];
51
52 /* pointer to layer */
53 MdcCosLayer* m_player[LAYERNMAX];
54
55 int m_nLayer;
56 int m_nWire;
57 int m_wiretable[LAYERNMAX][CELLNMAX];
58
59 int m_fan[LAYERNMAX][100];
60
61 /* alignment parameter */
62 /* 0-7: TX_east; 8-15: TX_west; 16-23: TY_east; 24-31: TY_west */
63 /* 32-39: TZ_east; 40-47: TZ_west; 48-55: RX_east; 56-63: RX_west */
64 /* 64-71: RY_east; 72-79: RY_west; 80-87: RZ_east; 88-95: RZ_west */
65 double m_alignPar[96];
66
67 double m_rot;
68
69 int m_iTXf; /* translation in x of east endplate */
70 int m_iTXb; /* translation in x of west endplate */
71 int m_iTYf; /* translation in y of east endplate */
72 int m_iTYb; /* translation in y of west endplate */
73 int m_iTZf; /* translation in z of east endplate */
74 int m_iTZb; /* translation in z of west endplate */
75
76 int m_iRXf; /* rotation in x of east endplate */
77 int m_iRXb; /* rotation in x of west endplate */
78 int m_iRYf; /* rotation in y of east endplate */
79 int m_iRYb; /* rotation in y of west endplate */
80 int m_iRZf; /* rotation in z of east endplate */
81 int m_iRZb; /* rotation in z of west endplate */
82
83};
84
85#endif /* MDCCOSGEOM_H */
bool setTension()
bool initWire()
bool initPream()
bool initialize(double rot)
void check(std::string fchk) const
MdcCosGeom(std::string fwireconf, std::string fAlign)
const MdcCosWire * getWire(int ilay, int icell) const
const void getAlignPar(double alignPar[]) const