BmnRoot
Loading...
Searching...
No Matches
BmnVSPStation.h
Go to the documentation of this file.
1#ifndef BMNVSPSTATION_H
2#define BMNVSPSTATION_H
3
4#include "BmnVSPModule.h"
5#include "BmnStripData.h"
6
7#include "TDOMParser.h"
8#include "TXMLNode.h"
9#include "TXMLAttr.h"
10#include "TList.h"
11
12#include <iostream>
13
14class BmnVSPStation
15{
16 protected:
17 /* station parameters */
18 Int_t StationNumber;
19 Int_t NModules;
20
21 Double_t XMinStation;
22 Double_t XMaxStation;
23 Double_t YMinStation;
24 Double_t YMaxStation;
25 Double_t ZMinStation;
26 Double_t ZMaxStation;
27
28 Double_t XSize;
29 Double_t YSize;
30 Double_t ZSize;
31
32 Double_t XPosition;
33 Double_t YPosition;
34 Double_t ZPosition;
35
36 Double_t RotationAngleDeg; // rotation angle (deg) for the station (counter-clockwise)
37 Double_t RotationCenterX; // x-rotation center for the station
38 Double_t RotationCenterY; // y-rotation center for the station
39
40 /*Shifts of modules in each station*/
41 Double_t *XShiftOfModules; //[NModules]
42 Double_t *YShiftOfModules; //[NModules]
43 Double_t *ZShiftOfModules; //[NModules]
44
45 BmnVSPModule **Modules; //[NModules] modules in the station [array]
46
47 public:
48 /* Constructor */
50 BmnVSPStation(TXMLNode *stationNode, Int_t iStation,
51 Double_t xpos_station, Double_t ypos_station, Double_t zpos_station);
52 /* Destructor */
53 virtual ~BmnVSPStation();
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 BmnVSPModule* GetModule(Int_t module_num);
74
75 //Reset all data in modules of the station
76 void Reset();
77
78 Int_t AddPointToStation(Double_t xcoord, Double_t ycoord, Double_t zcoord,
79 Double_t px, Double_t py, Double_t pz,
80 Double_t dEloss, Int_t refID);
81
83
86
87 //which module in the station does a point belong to?
88 //zcoord - is unused usually, but if modules in the station are (x,y)-overlapped then zcoord is important
89 Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord);
90
91 //--------------------------------------------------------------------------
92
93 protected:
95
96 private:
97 Bool_t CreateConfigurationFromXMLNode(TXMLNode *node);
98 Int_t CountNumberOfModules(TXMLNode *node);
99 Bool_t ParseModule(TXMLNode *node, Int_t iModule);
100 BmnVSPLayer ParseLayer(TXMLNode *node, Int_t iLayer, Int_t iModule);
101 DeadZoneOfStripLayer ParseDeadZone(TXMLNode *node, Int_t iModule);
102 Int_t CountDeadZonePoints(TXMLNode *node);
103
104 ClassDef(BmnVSPStation, 1);
105};
106
107#endif /* BMNVSPSTATION_H */
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)
Double_t RotationAngleDeg
Double_t GetYMaxStation()
BmnVSPStation(TXMLNode *stationNode, Int_t iStation, Double_t xpos_station, Double_t ypos_station, Double_t zpos_station)
Double_t GetZMaxStation()
void DefineStationBorders()
virtual ~BmnVSPStation()
Double_t XPosition
Int_t GetNModules()
Double_t GetXMaxStation()
Double_t GetYPosition()
Double_t GetXShiftOfModule(Int_t module_num)
Double_t * ZShiftOfModules
BmnVSPModule ** Modules
Double_t * YShiftOfModules
Double_t ZMinStation
Double_t RotationCenterY
Double_t GetXMinStation()
Double_t GetZShiftOfModule(Int_t module_num)
Double_t XMinStation
Int_t CountNAddedToStationPoints()
Double_t YMinStation
BmnVSPModule * GetModule(Int_t module_num)
Double_t RotationCenterX
Double_t ZPosition
Double_t YPosition
Double_t GetZPosition()
Int_t CountNProcessedPointInStation()
Double_t GetXPosition()
Double_t GetYShiftOfModule(Int_t module_num)
Double_t GetZSize()
Double_t GetYSize()
Double_t GetXSize()
Int_t GetPointModuleOwnership(Double_t xcoord, Double_t ycoord, Double_t zcoord)
Double_t ZMaxStation
Int_t GetStationNumber()
Double_t GetZMinStation()
Double_t XMaxStation
Double_t * XShiftOfModules
Double_t YMaxStation
void ProcessPointsInStation()
Double_t GetYMinStation()