PandaRoot
PndSdsCalcStripDif.h
Go to the documentation of this file.
1 //
2 // C++ Interface: PndSdsCalcStrip
3 //
4 // Description:
5 //
6 //
7 // Author: HG Zaunick <hg.zaunick@physik.tu-dresden.de>, (C) 2007
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //
12 #ifndef PNDSDSCALCSTRIPDIF_H
13 #define PNDSDSCALCSTRIPDIF_H
14 
15 #include "PndSdsStrip.h"
16 //#include "FairGeoVector.h"
17 #include "PndSdsStripDigiPar.h"
18 
19 #include <TVector2.h>
20 #include <TRandom.h>
21 
22 #include <iostream>
23 #include <vector>
24 
25 #include "PndDetectorList.h"
26 
28 
33  public:
39 
52  PndSdsCalcStripDif(Double_t pitch, Double_t orient, Int_t nrStrips, Int_t nrFeChannels, const TVector2 &firstStripAnchor, Double_t threshold, Double_t noise, Double_t sigma);
53 
55 
67  std::vector<PndSdsStrip> GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss);
68 
74  Int_t CalcFEfromStrip(Int_t stripNr) const;
75 
81  Int_t CalcChannelfromStrip(Int_t stripNr) const;
82 
90  void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const;
91  void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const;
92 
96  const TVector2 GetStripDirection() const { return fStripDir; }
97 
98  void SetVerboseLevel(Int_t level) { fVerboseLevel = level; }
99  std::ostream &operator<<(std::ostream &out);
100 
101  Double_t ChargeDiffusion(Double_t u, Double_t a, Double_t path, Double_t dir, Double_t Q);
102 
103  void Print() const;
104 
105  private:
106  Double_t fPitch;
107  Double_t fOrient;
108  Int_t fNrStrips;
109  Int_t fNrFeChannels;
110  TVector2 fAnchor;
111  Double_t fThreshold;
112  Double_t fNoise;
113  TVector2 fStripDir;
114  TVector2 fOrthoDir;
115  Int_t fVerboseLevel;
116  Double_t fSigma;
117 
124  Double_t CalcStripFromPoint(Double_t x, Double_t y);
125 
131  Double_t SmearCharge(Double_t charge);
132  const Double_t ChargeFromEloss(Double_t eloss) const { return eloss / (3.61e-9); }
133 };
134 
135 #endif /* SSDCALCSTRIPDIF_H */
void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const
Int_t CalcFEfromStrip(Int_t stripNr) const
Class for calculating strip indices from wafer hits.
void SetVerboseLevel(Int_t level)
const TVector2 GetStripDirection() const
Double_t ChargeDiffusion(Double_t u, Double_t a, Double_t path, Double_t dir, Double_t Q)
Int_t CalcChannelfromStrip(Int_t stripNr) const
std::ostream & operator<<(std::ostream &out)
void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const
std::vector< PndSdsStrip > GetStrips(Double_t inx, Double_t iny, Double_t inz, Double_t outx, Double_t outy, Double_t outz, Double_t eLoss)
Digitization Parameter Class for MVD-Strip part.
SensorSide
void Print() const