1#ifndef BMNGEMSTRIPMODULE_H
2#define BMNGEMSTRIPMODULE_H
30 Double_t DriftGap, Double_t FTransferGap, Double_t STransferGap, Double_t InductionGap);
45 Double_t
GetXSize() {
return XMaxModule-XMinModule; }
46 Double_t
GetYSize() {
return YMaxModule-YMinModule; }
85 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
88 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
91 Double_t px, Double_t py, Double_t pz, Double_t signal, Int_t refID);
109 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);
118 void ResetRealPoints() { RealPointsX.clear(); RealPointsY.clear(); RealPointsMC.clear(); }
164 void DefineModuleBorders();
165 Double_t GetNumberOfClusters(Double_t beta, Double_t gamma, Double_t charge, Double_t p0, Double_t p1);
179 Double_t ZStartModulePosition;
181 Double_t DriftGapThickness;
182 Double_t FirstTransferGapThickness;
183 Double_t SecondTransferGapThickness;
184 Double_t InductionGapThickness;
185 Double_t ModuleThickness;
189 vector<BmnGemStripLayer> StripLayers;
191 UInt_t AvalancheGenerationSeed;
192 Double_t AvalancheRadius;
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;
260 CollPoint(Double_t _x, Double_t _y, Double_t _z) : x(_x), y(_y), z(_z) {}
void ResetPseudoIntersections()
Double_t GetPseudoIntersectionX(Int_t indx)
void ResetIntersectionPoints()
void CalculateStripHitIntersectionPoints()
BmnMatch GetPseudoIntersectionMatch(Int_t indx)
void SetZStartModulePosition(Double_t zpos_module)
BmnMatch GetStripMatchInLayer(Int_t layer_num, Int_t strip_num)
void SetAvalancheRadius(Double_t aval_radius)
Double_t GetIntersectionPoint_UpperLayerSripPosition(Int_t indx)
vector< Double_t > XElectronPos
vector< vector< StripCluster > > AddedClusters
Double_t GetPseudoIntersection_UpperLayerSripPosition(Int_t indx)
void SetVerbosity(Bool_t verb)
Double_t GetIntersectionPoint_LowerLayerSripTotalSignal(Int_t indx)
Double_t GetIntersectionPointX(Int_t indx)
Double_t GetIntersectionPointY(Int_t indx)
StripCluster GetLowerCluster(Int_t indx)
BmnMatch GetStripDigitNumberMatchInLayer(Int_t layer_num, Int_t strip_num)
Double_t GetPseudoIntersection_UpperLayerSripTotalSignal(Int_t indx)
StripCluster GetLowerCluster_PseudoIntersections(Int_t indx)
BmnGemStripModule(Double_t z_start_pos, ElectronDriftDirectionInModule edrift_direction, Double_t DriftGap, Double_t FTransferGap, Double_t STransferGap, Double_t InductionGap)
Double_t GetModuleThickness()
BmnGemStripLayer & GetStripLayer(Int_t num)
Double_t GetIntersectionPointYError(Int_t indx)
void SetElectronDriftDirection(ElectronDriftDirectionInModule direction)
Int_t GetPseudoIntersection_LowerLayerClusterSize(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)
Double_t GetPseudoIntersection_LowerLayerSripPosition(Int_t indx)
Int_t GetNIntersectionPoints()
Double_t GetStripSignalInLayer(Int_t layer_num, Int_t strip_num)
StripCluster GetUpperCluster_PseudoIntersections(Int_t indx)
vector< Double_t > YElectronPos
void SetAvalancheGenerationSeed(UInt_t seed)
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)
BmnMatch GetIntersectionPointMatch(Int_t indx)
Double_t GetRealPointMC(Int_t indx)
UInt_t GetAvalancheGenerationSeed()
Bool_t SetStripSignalInLayer(Int_t layer_num, Int_t strip_num, Double_t signal)
vector< Double_t > ElectronSignal
Int_t GetNPseudoIntersections()
Bool_t IsPointInsideModule(Double_t x, Double_t y)
BmnMatch GetPseudoIntersectionDigitNumberMatch(Int_t indx)
BmnMatch GetIntersectionPointDigitNumberMatch(Int_t indx)
Double_t GetPseudoIntersection_LowerLayerSripTotalSignal(Int_t indx)
Double_t GetPseudoIntersectionXError(Int_t indx)
Bool_t AddStripSignalInLayer(Int_t layer_num, Int_t strip_num, Double_t signal)
Double_t GetRealPointY(Int_t indx)
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)
Bool_t SetStripMatchInLayer(Int_t layer_num, Int_t strip_num, BmnMatch mc_match)
StripCluster GetUpperCluster(Int_t indx)
Double_t GetPseudoIntersectionY(Int_t indx)
Int_t GetPseudoIntersection_UpperLayerClusterSize(Int_t indx)
Int_t GetIntersectionPoint_LowerLayerClusterSize(Int_t indx)
Double_t GetRealPointX(Int_t indx)
Double_t GetZStartModulePosition()
Double_t GetIntersectionPoint_LowerLayerSripPosition(Int_t indx)
StripCluster MakeCluster(Int_t layer_num, Double_t xcoord, Double_t ycoord, Double_t signal, Double_t radius)
void ResetElectronPointsAndClusters()
Bool_t IsPointInsideZThickness(Double_t z)
ElectronDriftDirectionInModule GetElectronDriftDirection()
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 IsPointInsideModule(Double_t x, Double_t y, Double_t z)
Double_t GetIntersectionPointXError(Int_t indx)
Int_t GetIntersectionPoint_UpperLayerClusterSize(Int_t indx)
Double_t GetPseudoIntersectionYError(Int_t indx)
Double_t GetZPositionRegistered()
void AddStripLayer(BmnGemStripLayer strip_layer)
Double_t GetIntersectionPoint_UpperLayerSripTotalSignal(Int_t indx)
Bool_t SetStripDigitNumberMatchInLayer(Int_t layer_num, Int_t strip_num, BmnMatch digit_num_match)
virtual ~BmnGemStripModule()
Double_t GetAvalancheRadius()
vector< BmnGemStripLayer > & GetStripLayers()
ElectronDriftDirectionInModule
ElectronDriftDirectionInModule