1#ifndef BMNSILICONMODULE_H
2#define BMNSILICONMODULE_H
29 Double_t
GetXSize() {
return XMaxModule-XMinModule; }
30 Double_t
GetYSize() {
return YMaxModule-YMinModule; }
90 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
93 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
96 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
99 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
110 Bool_t
SearchIntersectionPoint(Double_t &x, Double_t &y, Double_t strip_pos_layerA, Double_t strip_pos_layerB, Int_t layerA_index, Int_t layerB_index);
126 void ResetRealPoints() { RealPointsX.clear(); RealPointsY.clear(); RealPointsMC.clear();}
172 void DefineModuleBorders();
186 Double_t ZStartModulePosition;
187 Double_t ModuleThickness;
189 Double_t ModuleRotationAlgleDeg;
190 Double_t ModuleRotationAlgleRad;
191 Double_t ModuleRotationCenterX;
192 Double_t ModuleRotationCenterY;
194 vector<BmnSiliconLayer> StripLayers;
196 vector<Double_t> RealPointsX;
197 vector<Double_t> RealPointsY;
198 vector<Double_t> RealPointsMC;
200 vector<Double_t> IntersectionPointsX;
201 vector<Double_t> IntersectionPointsY;
202 vector<Double_t> IntersectionPointsXErrors;
203 vector<Double_t> IntersectionPointsYErrors;
205 vector<Int_t> IntersectionPoints_LowerLayerClusterSize;
206 vector<Int_t> IntersectionPoints_UpperLayerClusterSize;
208 vector<Double_t> IntersectionPoints_LowerLayerStripPosition;
209 vector<Double_t> IntersectionPoints_UpperLayerStripPosition;
211 vector<Double_t> IntersectionPoints_LowerLayerStripTotalSignal;
212 vector<Double_t> IntersectionPoints_UpperLayerStripTotalSignal;
214 vector<BmnMatch> IntersectionPointMatches;
215 vector<BmnMatch> IntersectionPointDigitNumberMatches;
217 vector<StripCluster> UpperClusters;
218 vector<StripCluster> LowerClusters;
221 vector<Double_t> PseudoIntersectionsX;
222 vector<Double_t> PseudoIntersectionsY;
223 vector<Double_t> PseudoIntersectionsXErrors;
224 vector<Double_t> PseudoIntersectionsYErrors;
226 vector<Int_t> PseudoIntersections_LowerLayerClusterSize;
227 vector<Int_t> PseudoIntersections_UpperLayerClusterSize;
229 vector<Double_t> PseudoIntersections_LowerLayerStripPosition;
230 vector<Double_t> PseudoIntersections_UpperLayerStripPosition;
232 vector<Double_t> PseudoIntersections_LowerLayerStripTotalSignal;
233 vector<Double_t> PseudoIntersections_UpperLayerStripTotalSignal;
235 vector<BmnMatch> PseudoIntersectionMatches;
236 vector<BmnMatch> PseudoIntersectionDigitNumberMatches;
238 vector<StripCluster> UpperClusters_PseudoIntersections;
239 vector<StripCluster> LowerClusters_PseudoIntersections;
245 CollPoint(Double_t _x, Double_t _y, Double_t _z) : x(_x), y(_y), z(_z) {}
Bool_t SetStripMatchInLayerByZoneId(Int_t zone_id, Int_t strip_num, BmnMatch mc_match)
Double_t GetPseudoIntersection_LowerLayerSripTotalSignal(Int_t indx)
BmnMatch GetStripMatchInLayer(Int_t layer_num, Int_t strip_num)
Double_t GetPseudoIntersectionY(Int_t indx)
Double_t GetIntersectionPointXError(Int_t indx)
Int_t GetPseudoIntersection_UpperLayerClusterSize(Int_t indx)
BmnMatch GetIntersectionPointDigitNumberMatch(Int_t indx)
BmnSiliconModule(Double_t z_start_pos)
Double_t GetPseudoIntersectionX(Int_t indx)
Double_t GetZStartModulePosition()
Bool_t IsPointInsideZThickness(Double_t z)
Bool_t SetStripDigitNumberMatchInLayerByZoneId(Int_t zone_id, Int_t strip_num, BmnMatch digit_num_match)
Double_t GetStripSignalInZone(Int_t zone_id, Int_t strip_num)
Double_t GetPseudoIntersectionYError(Int_t indx)
Double_t ConvertLocalToRotatedX(Double_t xloc, Double_t yloc)
Double_t GetPseudoIntersection_UpperLayerSripTotalSignal(Int_t indx)
Bool_t AddRealPointFull(Double_t x, Double_t y, Double_t z, Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID)
BmnMatch GetIntersectionPointMatch(Int_t indx)
Double_t GetIntersectionPointY(Int_t indx)
Double_t GetPseudoIntersection_LowerLayerSripPosition(Int_t indx)
Int_t GetLastStripInZone(Int_t zone_id)
Double_t GetRealPointY(Int_t indx)
Bool_t SetStripMatchInLayer(Int_t layer_num, Int_t strip_num, BmnMatch mc_match)
Double_t GetModuleRotationCenterX()
void AddStripLayer(BmnSiliconLayer strip_layer)
Double_t ConvertLocalToRotatedY(Double_t xloc, Double_t yloc)
Int_t GetIntersectionPoint_LowerLayerClusterSize(Int_t indx)
virtual ~BmnSiliconModule()
StripCluster GetUpperCluster(Int_t indx)
BmnMatch GetStripDigitNumberMatchInZone(Int_t zone_id, Int_t strip_num)
void ResetPseudoIntersections()
Double_t GetModuleRotationAngleDeg()
Bool_t SetModuleRotation(Double_t angleDeg, Double_t rot_center_x, Double_t rot_center_y)
Bool_t IsPointInsideModule(Double_t x, Double_t y, Double_t z, Bool_t isLocal)
Double_t GetIntersectionPoint_LowerLayerSripPosition(Int_t indx)
Bool_t AddRealPointSimple(Double_t x, Double_t y, Double_t z, Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID)
Double_t GetZPositionRegistered()
BmnMatch GetStripMatchInZone(Int_t zone_id, Int_t strip_num)
Bool_t AddStripMatchInLayerByZoneId(Int_t zone_id, Int_t strip_num, Double_t weight, Int_t mc_num)
Double_t GetStripSignalInLayer(Int_t layer_num, Int_t strip_num)
Double_t GetPseudoIntersection_UpperLayerSripPosition(Int_t indx)
Double_t GetIntersectionPointX(Int_t indx)
vector< BmnSiliconLayer > & GetStripLayers()
Double_t GetModuleRotationCenterY()
Double_t GetIntersectionPoint_UpperLayerSripTotalSignal(Int_t indx)
Bool_t SetStripSignalInLayer(Int_t layer_num, Int_t strip_num, Double_t signal)
StripCluster GetLowerCluster_PseudoIntersections(Int_t indx)
Int_t GetIntersectionPoint_UpperLayerClusterSize(Int_t indx)
Bool_t SetStripDigitNumberMatchInLayer(Int_t layer_num, Int_t strip_num, BmnMatch digit_num_match)
Double_t GetIntersectionPoint_UpperLayerSripPosition(Int_t indx)
Bool_t AddRealPointFullOne_WithIncline(Double_t x, Double_t y, Double_t z, Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID)
Bool_t AddStripDigitNumberMatchInLayerByZoneId(Int_t zone_id, Int_t strip_num, Double_t weight, Int_t digit_num)
Bool_t SearchIntersectionPoint(Double_t &x, Double_t &y, Double_t strip_pos_layerA, Double_t strip_pos_layerB, Int_t layerA_index, Int_t layerB_index)
Bool_t AddStripSignalInLayerByZoneId(Int_t zone_id, Int_t strip_num, Double_t signal)
Double_t ConvertRotatedToLocalX(Double_t xrot, Double_t yrot)
Int_t GetNIntersectionPoints()
Bool_t IsPointInsideModule(Double_t x, Double_t y, Bool_t isLocal)
StripCluster MakeCluster(Int_t layer_num, Double_t xcoord, Double_t ycoord, Double_t signal, Double_t radius)
BmnMatch GetStripDigitNumberMatchInLayer(Int_t layer_num, Int_t strip_num)
Double_t GetIntersectionPointYError(Int_t indx)
void CalculateStripHitIntersectionPoints()
Bool_t SetStripSignalInLayerByZoneId(Int_t zone_id, Int_t strip_num, Double_t signal)
Double_t GetIntersectionPoint_LowerLayerSripTotalSignal(Int_t indx)
Double_t GetRealPointMC(Int_t indx)
void SetZStartModulePosition(Double_t zpos_module)
void SetVerbosity(Bool_t verb)
Double_t GetRealPointX(Int_t indx)
StripCluster GetUpperCluster_PseudoIntersections(Int_t indx)
BmnMatch GetPseudoIntersectionDigitNumberMatch(Int_t indx)
void ResetIntersectionPoints()
Double_t GetPseudoIntersectionXError(Int_t indx)
Int_t GetFirstStripInZone(Int_t zone_id)
Bool_t AddStripSignalInLayer(Int_t layer_num, Int_t strip_num, Double_t signal)
Int_t GetPseudoIntersection_LowerLayerClusterSize(Int_t indx)
Double_t GetModuleThickness()
BmnSiliconLayer & GetStripLayer(Int_t num)
Double_t ConvertRotatedToLocalY(Double_t xrot, Double_t yrot)
Bool_t AddRealPointFullOne(Double_t x, Double_t y, Double_t z, Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID)
Int_t GetNPseudoIntersections()
BmnMatch GetPseudoIntersectionMatch(Int_t indx)
StripCluster GetLowerCluster(Int_t indx)