CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
MucEntity.h
Go to the documentation of this file.
1//------------------------------------------------------------------------------|
2// [File ]: MucEntity.h |
3// [Brief ]: Head file of MUC geometry entity class |
4// [Author]: Xie Yuguang, <[email protected]> |
5// [Date ]: May 22, 2005 |
6//------------------------------------------------------------------------------|
7
8#ifndef MUC_ENTITY_H
9#define MUC_ENTITY_H
10
11#include<iostream>
12
13//#include "CLHEP/Geometry/Vector3D.h"
14//#include "CLHEP/Geometry/Point3D.h"
15
16using namespace std;
17
19{
20 public:
21 MucEntity( int part, int segment, int layer );
22 MucEntity( int part, int segment, int layer, int id );
23 MucEntity( int part, int segment, int layer, int upDown, int id );
24 MucEntity( int part, int segment, int layer, int upDown, int rpcId, int id );
25 MucEntity( const MucEntity &other );
26 MucEntity &operator =( const MucEntity &other );
27 virtual ~MucEntity() ;
28
29 int GetPart();
30 int GetSegment();
31 int GetLayer();
32 int GetUpDown();
33 int GetRpcId();
34 int GetID();
35
36 double GetTheta();
37 double GetRin();
38 double GetRout();
39 double GetRc();
40 double GetThin();
41 double GetW();
42 double GetH();
43 double GetL();
44 double GetWu();
45 double GetWd();
46 double GetArea();
47
48 double GetLocOrgInBes( int i ); // 1: Bes_x, 2: Bes_y, 3, Bes_z
49 double GetObjRotToMot( int i ); // 1: Rot_x, 2: Rot_y, 3, Rot_z
50 double GetObjOrgInBes( int i ); // 1: Bes_x, 2: Bes_y, 3, Bes_z
51 double GetObjOrgInLoc( int i ); // 1: Pos_x, 2: Pos_y, 3, Pos_z
52
53 double* GetLocOrgInBes();
54 double* GetObjRotToMot();
55 double* GetObjOrgInLoc();
56 double* GetObjOrgInBes();
57
58 // coordinate transform function, from old to new,
59 // Rot_z is the direction angle of new x axis in old coordinate system
60 void TransBesToLoc( double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z );
61 void TransLocToBes( double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z );
62
63 protected:
64
65 virtual void Init(); // all geometry information initilization
66
67 virtual void SetTheta(); // set theta
68 virtual void SetRin(); // set r inner
69 virtual void SetRout(); // set r outer
70 virtual void SetRc(); // set r center
71 virtual void SetThin(); // set thickness
72 virtual void SetW(); // set width
73 virtual void SetH(); // set height
74 virtual void SetL(); // set stretching length
75 virtual void SetWu(); // set up width
76 virtual void SetWd(); // set down width
77 virtual void SetArea(); // set area of entity(mm^2)
78 virtual void SetLocOrgInBes(); // set x, y, z of local origin in BES coordinate system
79 virtual void SetObjRotToMot(); // set rotation angles of x, y, z axises of local coordinate system
80 // relative to BES
81 virtual void SetObjOrgInBes(); // set x, y and z of object origin in BES coordinate system
82 virtual void SetObjOrgInLoc(); // set x, y and z of object origin in local or
83 // temporary local coordinate system
84
85 virtual void SetAlignment( double dx, double dy, double dz); // set alignment
86
87 protected:
88 int m_Part; // part id
89 int m_Segment; // segment id
90 int m_Layer; // layer id
91 int m_UpDown; // up or down superlayer id, only valid for superlayer objects
92 int m_RpcId; // rpc id in up or down superlayer
93 int m_ID; // object id
94
95 double m_Theta; // barrel: inclination angle of R and Bes_X
96 // endcap: inclination angle of panel boudary and Bes_X
97
98 double m_Rin; // r of the inner surface relative to BES origin
99 double m_Rout; // r of the outer surface relative to BES origin
100 double m_Rc; // r of the center surface relative to BES orign
101 double m_Thin; // thickness of entity
102 double m_W; // width of cross section
103 double m_H; // height of cross section
104 double m_L; // stretching length of cross section
105 double m_Wu; // up width of trapezoid cross section
106 double m_Wd; // down width of trapezoid cross section
107 double m_Area; // area of entity,mm^2
108
109 double m_LocOrgInBes[3]; // x, y, z of the mother origin in BES coordinate system
110 // for panel, the mother is temporary local coordinate system
111 double m_ObjRotToMot[3]; // rotation angles of x, y, z axises of the object coordinate system
112 // relative to the mother
113 // only rotation angle relative to Bes_z axis is useful
114 // defined as the angle of local xy plane circling mother's z axis,
115 // not Euler angle
116 // for local or temparory local, the mother is BES, for panel,
117 // the mother is the local or temparory local
118 double m_ObjOrgInBes[3]; // x, y and z of object origin in BES coordinate system
119 double m_ObjOrgInLoc[3]; // x, y and z of object origin in its mother coordinate system
120 // for panel, the mother is temporary local coordinate system
121
122//-------------------------------------------------------------NOTE---------------------------------------------------------------
123// 1: There are four coordinate systems: BES(the world), local(the mother), temporary local(the temp, for many panels object)
124// and object, the posterior one is always located in the anterior one.
125// 2: If the local coordinate system of one entity is BES, m_MotOrgInBes is unuseful.
126// 3: According to the detector structure, the origin coordinates and rotation angles of geometry entities relative to BES
127// coordinate system can be calculated easily and conveniently, so these values will be initialized first in constructor.
128// 4: For objects having many panels, the id of integral object is -1, and the id of panel begins from 0 to panel number.
129// These objects must be added a temporary local coordinate system for locating the panels, the temporary local
130
131};
132
133#endif
134
double GetWu()
virtual void SetArea()
double GetW()
virtual void SetObjOrgInBes()
virtual void SetObjRotToMot()
int m_RpcId
Definition MucEntity.h:92
double GetThin()
MucEntity(int part, int segment, int layer)
Definition MucEntity.cxx:17
double m_W
Definition MucEntity.h:102
virtual void SetWd()
double m_Area
Definition MucEntity.h:107
MucEntity & operator=(const MucEntity &other)
Definition MucEntity.cxx:92
virtual ~MucEntity()
double m_Thin
Definition MucEntity.h:101
double m_Rin
Definition MucEntity.h:98
virtual void SetW()
virtual void SetL()
double GetWd()
double m_H
Definition MucEntity.h:103
double GetH()
virtual void SetLocOrgInBes()
virtual void SetAlignment(double dx, double dy, double dz)
int m_Layer
Definition MucEntity.h:90
double GetArea()
int GetID()
virtual void SetH()
double m_ObjOrgInLoc[3]
Definition MucEntity.h:119
double * GetLocOrgInBes()
double m_Rout
Definition MucEntity.h:99
virtual void SetThin()
double * GetObjRotToMot()
double m_ObjRotToMot[3]
Definition MucEntity.h:111
virtual void SetObjOrgInLoc()
double m_Wd
Definition MucEntity.h:106
double GetRc()
virtual void SetRc()
double GetTheta()
void TransBesToLoc(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
int GetSegment()
int m_Segment
Definition MucEntity.h:89
double m_Theta
Definition MucEntity.h:95
virtual void SetRout()
int GetUpDown()
int m_Part
Definition MucEntity.h:88
double m_LocOrgInBes[3]
Definition MucEntity.h:109
double m_Rc
Definition MucEntity.h:100
virtual void SetRin()
virtual void SetTheta()
int GetRpcId()
double * GetObjOrgInBes()
double m_ObjOrgInBes[3]
Definition MucEntity.h:118
double GetRin()
int GetLayer()
int m_UpDown
Definition MucEntity.h:91
void TransLocToBes(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
double GetL()
double * GetObjOrgInLoc()
double GetRout()
double m_Wu
Definition MucEntity.h:105
virtual void SetWu()
int GetPart()
virtual void Init()
double m_L
Definition MucEntity.h:104