BmnRoot
Loading...
Searching...
No Matches
BmnGemStripStation.h
Go to the documentation of this file.
1#ifndef BMNGEMSTRIPSTATION_H
2#define BMNGEMSTRIPSTATION_H
3
4#include "BmnGemStripModule.h"
5#include "BmnStripData.h"
6
7#include "TDOMParser.h"
8#include "TXMLNode.h"
9#include "TXMLAttr.h"
10#include "TList.h"
11
13
14protected:
15
16 /* station parameters */
18 Int_t NModules;
19
20 Double_t XMinStation;
21 Double_t XMaxStation;
22 Double_t YMinStation;
23 Double_t YMaxStation;
24 Double_t ZMinStation;
25 Double_t ZMaxStation;
26
27 Double_t XSize;
28 Double_t YSize;
29 Double_t ZSize;
30
31 Double_t XPosition;
32 Double_t YPosition;
33 Double_t ZPosition;
34
35 /*Shifts of modules in each station*/
36 Double_t *XShiftOfModules; //[NModules]
37 Double_t *YShiftOfModules; //[NModules]
38 Double_t *ZShiftOfModules; //[NModules]
39
40 Double_t *DriftGapThicknessOfModules; //[NModules]
41 Double_t *FTransfGapThicknessOfModules; //[NModules]
42 Double_t *STransfGapThicknessOfModules; //[NModules]
43 Double_t *InductionGapThicknessOfModules; //[NModules]
44
46
47 BmnGemStripModule **Modules; //[NModules] modules in the station [array]
48
49 public:
50 /* Constructor */
52 BmnGemStripStation(TXMLNode *stationNode, Int_t iStation,
53 Double_t xpos_station, Double_t ypos_station, Double_t zpos_station,
54 Double_t beamradius);
55 /* Destructor */
56 virtual ~BmnGemStripStation();
57
58 //Getters
59 Int_t GetStationNumber() { return StationNumber; }
60 Int_t GetNModules() { return NModules; }
61 Double_t GetXMinStation() { return XMinStation; }
62 Double_t GetXMaxStation() { return XMaxStation; }
63 Double_t GetYMinStation() { return YMinStation; }
64 Double_t GetYMaxStation() { return YMaxStation; }
65 Double_t GetZMinStation() { return ZMinStation; }
66 Double_t GetZMaxStation() { return ZMaxStation; }
67 Double_t GetXSize() { return XSize; }
68 Double_t GetYSize() { return YSize; }
69 Double_t GetZSize() { return ZSize; }
70 Double_t GetXPosition() { return XPosition; }
71 Double_t GetYPosition() { return YPosition; }
72 Double_t GetZPosition() { return ZPosition; }
73 Double_t GetXShiftOfModule(Int_t module_num);
74 Double_t GetYShiftOfModule(Int_t module_num);
75 Double_t GetZShiftOfModule(Int_t module_num);
76
77 Double_t GetDriftGapThicknessOfModule(Int_t module_num);
78 Double_t GetFTransfGapThicknessOfModule(Int_t module_num);
79 Double_t GetSTransfGapThicknessOfModule(Int_t module_num);
80 Double_t GetInductionGapThicknessOfModule(Int_t module_num);
81
82 Double_t GetBeamHoleRadius() { return BeamHoleRadius; }
83 BmnGemStripModule* GetModule(Int_t module_num);
84
85 //Reset all data in modules of the station
86 void Reset();
87
88 Int_t AddPointToStation(Double_t xcoord, Double_t ycoord, Double_t zcoord,
89 Double_t px, Double_t py, Double_t pz,
90 Double_t dEloss, Int_t refID);
91
93
96
97 //Pure virtual methods (must be defined in derived classes) ---------------
98
99 //which module in the station does a point belong to?
100 //zcoord - is unused usually, but if modules in the station are (x,y)-overlapped then zcoord is important
101 Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord);
102
103 //--------------------------------------------------------------------------
104
105 protected:
107
108 private:
109 Bool_t CreateConfigurationFromXMLNode(TXMLNode *node);
110 Int_t CountNumberOfModules(TXMLNode *node);
111 Bool_t ParseModule(TXMLNode *node, Int_t iModule);
112 BmnGemStripLayer ParseLayer(TXMLNode *node, Int_t iLayer, Int_t iModule);
113 DeadZoneOfStripLayer ParseDeadZone(TXMLNode *node, Int_t iModule);
114 Int_t CountDeadZonePoints(TXMLNode *node);
115
116 ClassDef(BmnGemStripStation, 1)
117};
118
119#endif
Double_t * STransfGapThicknessOfModules
BmnGemStripModule ** Modules
Double_t * FTransfGapThicknessOfModules
Double_t GetDriftGapThicknessOfModule(Int_t module_num)
Double_t GetXShiftOfModule(Int_t module_num)
Double_t GetZShiftOfModule(Int_t module_num)
BmnGemStripModule * GetModule(Int_t module_num)
Double_t GetInductionGapThicknessOfModule(Int_t module_num)
Double_t GetSTransfGapThicknessOfModule(Int_t module_num)
Double_t * DriftGapThicknessOfModules
Double_t * InductionGapThicknessOfModules
Int_t AddPointToStation(Double_t xcoord, Double_t ycoord, Double_t zcoord, Double_t px, Double_t py, Double_t pz, Double_t dEloss, Int_t refID)
Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord)
Double_t GetFTransfGapThicknessOfModule(Int_t module_num)
Double_t GetYShiftOfModule(Int_t module_num)