1#ifndef BMNGEMSTRIPLAYER_H
2#define BMNGEMSTRIPLAYER_H
22 Double_t xsize, Double_t ysize,
23 Double_t xorig, Double_t yorig,
24 Double_t pitch, Double_t adeg);
37 void SetLayerSizes(Double_t xsize, Double_t ysize, Double_t xorig=0.0, Double_t yorig=0.0);
50 Double_t
GetXSize() {
return XMaxLayer-XMinLayer; }
51 Double_t
GetYSize() {
return YMaxLayer-YMinLayer; }
70 Bool_t
AddDeadZone(Int_t n_points, Double_t *x_points, Double_t *y_points);
127 void SmoothStripSignal(vector<Double_t>& AnalyzableStrips, Int_t NIterations, Int_t SmoothWindow, Double_t Weight);
144 Int_t LayerZoneNumber;
156 vector<DeadZoneOfStripLayer> DeadZones;
160 Double_t XLeftPointOfStripNumbering;
161 Double_t XRightPointOfStripNumbering;
162 Double_t YLeftPointOfStripNumbering;
163 Double_t YRightPointOfStripNumbering;
166 vector<Double_t> Strips;
169 vector<BmnMatch> StripMatches;
170 vector<BmnMatch> StripDigitNumberMatches;
173 vector<Double_t> StripHits;
174 vector<Double_t> StripHitsTotalSignal;
175 vector<Double_t> StripHitsErrors;
176 vector<Int_t> StripHitsClusterSize;
177 vector<Double_t> SmoothStrips;
178 Double_t ClusterFindingThreshold;
179 Double_t TotalClusterThreshold;
183 vector<StripCluster> StripClusters;
185 static Int_t fUniqueIdU;
186 static Int_t fUniqueIdL;
Double_t GetStripHitError(Int_t num)
void SmoothStripSignal(vector< Double_t > &AnalyzableStrips, Int_t NIterations, Int_t SmoothWindow, Double_t Weight)
Double_t ConvertPointToStripPosition(Double_t x, Double_t y)
Double_t GetYRightStripBorderPoint()
vector< DeadZoneOfStripLayer > GetDeadZones()
Bool_t SetStripNumberingOrder(StripNumberingDirection strip_direction)
BmnMatch GetStripDigitNumberMatch(Int_t strip_num)
Bool_t SetStripMatch(Int_t strip_num, BmnMatch mc_match)
Bool_t IsPointInsideStripLayer(Double_t x, Double_t y)
void ResetStripDigitNumberMatches()
static void SetUpperUniqueID(Int_t id)
void MakeStripHit(StripCluster &cluster, vector< Double_t > &AnalyzableStrips, Int_t &curcnt)
Double_t ConvertNormalPointToStripY(Double_t x, Double_t y)
Double_t GetXRightStripBorderPoint()
void SetLayerSizes(Double_t xsize, Double_t ysize, Double_t xorig=0.0, Double_t yorig=0.0)
Double_t GetYLeftStripBorderPoint()
Bool_t SetStripSignal(Int_t strip_num, Double_t signal)
vector< Double_t > GetSmoothStrips()
Double_t GetXLeftStripBorderPoint()
Bool_t IsPointInsideDeadZones(Double_t x, Double_t y)
Double_t CalculateStripEquationB(Double_t strip_pos)
Bool_t AddStripSignal(Int_t strip_num, Double_t signal)
int GetFirstStripNumber()
vector< StripCluster > GetStripClusters()
Int_t GetStripHitClusterSize(Int_t num)
void SetPitch(Double_t pitch)
Bool_t AddDeadZone(DeadZoneOfStripLayer dead_zone)
Double_t GetClusterFindingThreshold()
virtual ~BmnGemStripLayer()
Bool_t SetStripNumberingBorders(StripBorderPoint left, StripBorderPoint right)
void SetVerbosity(Bool_t verb)
void FindClustersAndStripHits()
StripNumberingDirection GetStripNumberingOrder()
BmnGemStripLayer(Int_t zone_number, StripLayerType layer_type, Double_t xsize, Double_t ysize, Double_t xorig, Double_t yorig, Double_t pitch, Double_t adeg)
Bool_t SetStripDigitNumberMatch(Int_t strip_num, BmnMatch digit_num_match)
BmnMatch GetStripMatch(Int_t strip_num)
Double_t GetStripHitPos(Int_t num)
void SetClusterFindingThreshold(Double_t threshold)
Double_t GetStripHitTotalSignal(Int_t num)
Double_t GetStripSignal(Int_t strip_num)
Bool_t AddLinkToStripMatch(Int_t strip_num, Double_t weight, Int_t mc_num)
Bool_t AddLinkToStripDigitNumberMatch(Int_t strip_num, Double_t weight, Int_t digit_num)
Bool_t AddDeadZone(Int_t n_points, Double_t *x_points, Double_t *y_points)
static void SetLowerUniqueID(Int_t id)
void SetAngleDeg(Double_t deg)
Bool_t SetStripNumberingBorders(Double_t x_left, Double_t y_left, Double_t x_right, Double_t y_right)
void SetTotalClusterThreshold(Double_t th)
Double_t ConvertNormalPointToStripX(Double_t x, Double_t y)