StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StSvtSignal.hh
1 #ifndef STSVTSIGNAL_HH
2 #define STSVTSIGNAL_HH
3 
4 
5 #include <Stiostream.h>
6 #include <string.h>
7 #include <math.h>
8 
10 
12 {
13 public:
14  StSvtSignal();
15  ~StSvtSignal();
16 
17  void setOption(int option);
18  void setAnodeTimeBinSizes(double timBinSize, double anodeSize);
19  void setDriftVelocity(double driftVelocity);
20  void setCloud(StSvtElectronCloud* elCloud);
21  double chargeFraction(int an, double anHit);
22  int timeCenterAndWidth(double anHit,double timeHit);
23  void setTimeWidth(double timWidth);
24  void calcConvSignal(double chargeOnAnode);
25  void selemonSignal(int nMin,int nMax, double tStep, double charge);
26  void rykovSignal(int nMin,int nMax, double tStep);
27  void pasaRelatedStuff();
28  void doPasaOnly(int option);
29  void peakingTimeR();
30  void halfWidthAtHalfMaxR();
31  void peakingTimeS();
32  void halfWidthAtHalfMaxS();
33  void unNormPasaConst();
34  void normPasaConst();
35  void arrays();
36  double signal(double t);
37  double getShortSignal(double localTime);
38  double getLongSignal(double localTime);
39  double useArrays5And6(double ds1,double dsc);
40  double useArrays3And4Or1And2(double ds1,double dsc);
41  double numConvInt(int nMin , int n, int numOfIntPoints, double tStep, double t);
42  double analConvInt(double tim, double sigmat, double tc);
43  double simpsonInt(int numOfIntPoints,double lowlim, double step, double t);
44  double gausInput(double tim);
45  double pasaRes(double tim);
46  double freq(double num);
47  double prob1(double anOrTimeDiff , double sigma);
48  double prob2(double num , double sigma);
49  int getLowTBin();
50  int getHiTBin();
51  int getTrackId() const {return mTrackId;}
52  double getTimeCenter();
53  double getTimeWidth();
54  double getPeak();
55  double getMinUnderShoot();
56  double getSignal(int n);
57  void resetPeakAndUnderShoot();
58  void resetSignal(int lBin, int hBin);
59 
60 private:
61  double mTotalHitCharge;
62  double mAnRightEdge;
63  double mAnLeftEdge;
64  double mFractionOfCharge;
65  double mCollectedCharge;
66 
67  int mOption;
68  int mLowTBin;
69  int mHiTBin;
70  int mTrackId;
71 
72  double mDriftVel;
73  double mTimeBinSize;
74  double mAnodeSize;
75 
76  double mSigmaMajor;
77  double mSigmaMinor;
78  double mTimeCenter;
79  double mTimeWidth;
80  double mPeakSignal;
81  double mMinUnderShoot;
82 
83  double GAP_TWIDTH;
84  double mPasaGain;
85 
86  //for selemon's piece of code
87  double mPasaNorm;
88  double mPeakTimeS;
89  double mPasaMaxS;
90  double mFwhmS;
91 
92  //for Rykoves piece of code( fortran converted to c++)
93  double mPasaMaxR;
94  double mPeakTimeR;
95  double mFwhmR;
96 
97  double mTau_s;
98  double mTau_l;
99 
100  double mC1;
101  double mC2;
102  double mC3;
103 
104  double mSignal[128];
105  double mPasa[5];
106  double mArray1[9];
107  double mArray2[9];
108  double mArray3[7];
109  double mArray4[7];
110  double mArray5[6];
111  double mArray6[6];
112 
113  //ClassDef(StSvtSignal,1)
114 
115 };
116 
117 /*inline void StSvtSignal::arrays()
118 {
119  mArray1[0] = 2.46196981473530512524*::pow(0.1,10);
120  mArray1[1] = 0.564189564831068821977;
121  mArray1[2] = 7.46321056442269912687;
122  mArray1[3] = 48.6371970985681366614;
123  mArray1[4] = 196.520832956077098242;
124  mArray1[5] = 526.445194995477358631;
125  mArray1[6] = 934.528527171957607540;
126  mArray1[7] = 1027.55188689515710272;
127  mArray1[8] = 557.535335369399327526;
128 
129  mArray2[0] = 1.0;
130  mArray2[1] = 13.2281951154744992508;
131  mArray2[2] = 86.7072140885989742329;
132  mArray2[3] = 354.937778887819891062;
133  mArray2[4] = 975.708501743205489753;
134  mArray2[5] = 1823.90916687909736289;
135  mArray2[6] = 2246.33760818710981792;
136  mArray2[7] = 1656.66309194161350182;
137  mArray2[8] = 557.535340817727675546;
138 
139  mArray3[0] = 0.0;
140  mArray3[1] = 0.564189583547755073984;
141  mArray3[2] = 1.275366707599781044160;
142  mArray3[3] = 5.019050422511804774140;
143  mArray3[4] = 6.160210979930535851950;
144  mArray3[5] = 7.409742699504489391600;
145  mArray3[6] = 2.978866653721002406700;
146 
147  mArray4[0] = 1.0;
148  mArray4[1] = 2.26052863220117276590;
149  mArray4[2] = 9.39603524938001434673;
150  mArray4[3] = 12.0489539808096656605;
151  mArray4[4] = 17.0814450747565897222;
152  mArray4[5] = 9.60896809063285878198;
153  mArray4[6] = 3.36907645100081516050;
154 
155  mArray5[0] = 0.0;
156  mArray5[1] = 9.60497373987051638749;
157  mArray5[2] = 90.0260197203842689217;
158  mArray5[3] = 2232.00534594684319226;
159  mArray5[4] = 7003.32514112805075473;
160  mArray5[5] = 55592.3013010394962768;
161 
162  mArray6[0] = 1.0;
163  mArray6[1] = 33.5617141647503099647;
164  mArray6[2] = 521.357949780152679795;
165  mArray6[3] = 4594.32382970980127987;
166  mArray6[4] = 22629.0000613890934246;
167  mArray6[5] = 49267.3942608635921086;
168 
169  }*/
170 
171 #endif
SVT electron cloud expansion routines Simulates electron cloud expansion inside of the silicon wafer...