63 #ifndef ST_TRS_WIRE_HISTOGRAM_HH
64 #define ST_TRS_WIRE_HISTOGRAM_HH
68 #if defined(__sun) && ! defined(__GNUG__)
72 #include "StThreeVector.hh"
73 #include "Randomize.h"
76 #include "StTpcGeometry.hh"
77 #include "StTpcSlowControl.hh"
78 #include "StTrsDeDx.hh"
79 #include "StMagneticField.hh"
80 #include "StTrsWireBinEntry.hh"
82 #ifndef ST_NO_TEMPLATE_DEF_ARGS
83 typedef vector<StTrsWireBinEntry> aTpcWire;
84 typedef vector<aTpcWire> aTpcWirePlane;
86 typedef vector<StTrsWireBinEntry, allocator<StTrsWireBinEntry> > aTpcWire;
87 typedef vector<aTpcWire, allocator<aTpcWire> > aTpcWirePlane;
94 static void dropit(){
delete mInstance;mInstance=0;}
109 double wireCoordinate(
int)
const;
110 aTpcWire& getWire(
int) ;
111 aTpcWirePlane& getWireHistogram() ;
112 void FreqFunctionTableBuilder();
113 double table_fast(
double)
const;
115 #ifndef ST_NO_TEMPLATE_DEF_ARGS
116 vector<double> mFreqFunctionTable;
120 vector<double, allocator<double> > mFreqFunctionTable;
124 double mNumberOfEntriesInTable;
125 double mRangeOfTable ;
133 void setDoGasGain(
bool) ;
134 void setGasGainInnerSector(
double) ;
135 void setGasGainOuterSector(
double) ;
136 void setDoGasGainFluctuations(
bool);
137 void setDoSingleElectronMultiplication(
bool);
138 double exponentialAvalanche(
int,
double) ;
139 double polyaAvalanche(
int,
double) ;
141 double gaussianAvalanche(
int,
double) ;
144 void setDoTimeDelay(
bool);
147 void gasGainCalculation() ;
149 double noFluctuations(
int)
const;
166 bool mDoGasGainFluctuations;
167 bool mGasGainCalculationDone;
168 bool mDoSingleElectronMultiplication;
175 aTpcWirePlane mSectorWires;
177 int mNumberOfInnerSectorAnodeWires;
178 int mNumberOfOuterSectorAnodeWires;
179 int mTotalNumberOfAnodeWires;
181 double mInnerSectorGasGain;
182 double mOuterSectorGasGain;
194 int inline StTrsWireHistogram::minWire()
const {
return mMin;}
195 int inline StTrsWireHistogram::maxWire()
const {
return mMax;}
196 void inline StTrsWireHistogram::setDoGasGain(
bool gg) {mDoGasGain = gg;}
197 void inline StTrsWireHistogram::setDoTimeDelay(
bool t) {mDoTimeDelay = t;}
198 void inline StTrsWireHistogram::setDoSingleElectronMultiplication(
bool t) {mDoSingleElectronMultiplication = t;}