BmnRoot
Loading...
Searching...
No Matches
BmnCSCStation.h
Go to the documentation of this file.
1#ifndef BMNCSCSTATION_H
2#define BMNCSCSTATION_H
3
4#include "BmnCSCModule.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;
37 Double_t *YShiftOfModules;
38 Double_t *ZShiftOfModules;
39
41
42 BmnCSCModule **Modules; //modules in the station [array]
43
44public:
45
46 /* Constructor */
48
49 BmnCSCStation(TXMLNode *stationNode, Int_t iStation,
50 Double_t xpos_station, Double_t ypos_station, Double_t zpos_station);
51
52 /* Destructor */
53 virtual ~BmnCSCStation();
54
55 //Getters
56 Int_t GetStationNumber() { return StationNumber; }
57 Int_t GetNModules() { return NModules; }
58 Double_t GetXMinStation() { return XMinStation; }
59 Double_t GetXMaxStation() { return XMaxStation; }
60 Double_t GetYMinStation() { return YMinStation; }
61 Double_t GetYMaxStation() { return YMaxStation; }
62 Double_t GetZMinStation() { return ZMinStation; }
63 Double_t GetZMaxStation() { return ZMaxStation; }
64 Double_t GetXSize() { return XSize; }
65 Double_t GetYSize() { return YSize; }
66 Double_t GetZSize() { return ZSize; }
67 Double_t GetXPosition() { return XPosition; }
68 Double_t GetYPosition() { return YPosition; }
69 Double_t GetZPosition() { return ZPosition; }
70 Double_t GetXShiftOfModule(Int_t module_num);
71 Double_t GetYShiftOfModule(Int_t module_num);
72 Double_t GetZShiftOfModule(Int_t module_num);
73
74 Double_t GetThicknessOfModule(Int_t module_num);
75
76 BmnCSCModule* GetModule(Int_t module_num);
77
78 //Reset all data in modules of the station
79 void Reset();
80
81 Int_t AddPointToStation(Double_t xcoord, Double_t ycoord, Double_t zcoord,
82 Double_t px, Double_t py, Double_t pz,
83 Double_t dEloss, Int_t refID);
84
86
89
90 //Pure virtual methods (must be defined in derived classes) ---------------
91
92 //which module in the station does a point belong to?
93 //zcoord - is unused usually, but if modules in the station are (x,y)-overlapped then zcoord is important
94 Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord);
95
96 //--------------------------------------------------------------------------
97
98protected:
100
101private:
102
103 Bool_t CreateConfigurationFromXMLNode(TXMLNode *node);
104 Int_t CountNumberOfModules(TXMLNode *node);
105 Bool_t ParseModule(TXMLNode *node, Int_t iModule);
106 BmnCSCLayer ParseLayer(TXMLNode *node, Int_t iLayer, Int_t iModule);
107 DeadZoneOfStripLayer ParseDeadZone(TXMLNode *node, Int_t iModule);
108 Int_t CountDeadZonePoints(TXMLNode *node);
109
110 ClassDef(BmnCSCStation, 1)
111};
112
113#endif
Double_t GetZSize()
Double_t ZMaxStation
BmnCSCModule ** Modules
Double_t * YShiftOfModules
Double_t ZMinStation
Double_t GetXMinStation()
Double_t GetYMaxStation()
Double_t GetZShiftOfModule(Int_t module_num)
Double_t GetYShiftOfModule(Int_t module_num)
Double_t * ZShiftOfModules
Int_t CountNAddedToStationPoints()
Int_t CountNProcessedPointInStation()
Double_t XPosition
void ProcessPointsInStation()
Int_t GetNModules()
Double_t XMaxStation
Double_t GetXShiftOfModule(Int_t module_num)
Double_t GetZPosition()
Double_t GetThicknessOfModule(Int_t module_num)
Double_t YMaxStation
Double_t GetXPosition()
virtual ~BmnCSCStation()
Double_t GetZMinStation()
Double_t GetXSize()
Double_t * ThicknessOfModules
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)
BmnCSCModule * GetModule(Int_t module_num)
Double_t * XShiftOfModules
void DefineStationBorders()
Double_t GetXMaxStation()
Double_t GetYSize()
Double_t ZPosition
Double_t YMinStation
Double_t GetYMinStation()
Double_t XMinStation
Double_t YPosition
Double_t GetZMaxStation()
Double_t GetYPosition()
Int_t GetStationNumber()