00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 #ifndef STAR_StFtpcParamReader
00088 #define STAR_StFtpcParamReader
00089
00090 #include "StMaker.h"
00091
00092 #include "TObject.h"
00093
00094 #include "tables/St_ftpcClusterPars_Table.h"
00095 #include "tables/St_ftpcSlowSimGas_Table.h"
00096 #include "tables/St_ftpcSlowSimPars_Table.h"
00097 #include "tables/St_ftpcFastSimGas_Table.h"
00098 #include "tables/St_ftpcFastSimPars_Table.h"
00099
00100 class StFtpcParamReader : public TObject
00101 {
00102
00103 protected:
00104
00105
00106 ftpcClusterPars_st *mClusterParsTable;
00107
00108
00109 Int_t mGaussFittingFlags;
00110 Int_t mMinimumClusterMaxADC;
00111 Int_t mNumberOfDriftSteps;
00112 Float_t mStandardPressure;
00113 Float_t mNormalizedNowPressure;
00114 Float_t mAdjustedAirPressureWest;
00115 Float_t mAdjustedAirPressureEast;
00116 Float_t mGasTemperatureWest;
00117 Float_t mGasTemperatureEast;
00118 Float_t mLorentzAngleFactor;
00119 Int_t mOrderOfDiffusionErrors;
00120 Float_t *mPadDiffusionErrors;
00121 Float_t *mTimeDiffusionErrors;
00122 Float_t mPadBadFitError;
00123 Float_t mTimeBadFitError;
00124 Float_t mPadUnfoldError;
00125 Float_t mTimeUnfoldError;
00126 Float_t mPadFailedFitError;
00127 Float_t mTimeFailedFitError;
00128 Float_t mPadCutoffClusterError;
00129 Float_t mTimeCutoffClusterError;
00130 Float_t mPadSaturatedClusterError;
00131 Float_t mTimeSaturatedClusterError;
00132 Float_t m2PadWeightedError;
00133 Float_t m2PadGaussError;
00134 Float_t m3PadWeightedError;
00135 Float_t m3PadGaussError;
00136 Float_t mZDirectionError;
00137
00138 Int_t mOrderOfFastEstimates;
00139 Float_t *mVDriftEstimates;
00140 Float_t *mTDriftEstimates;
00141 Float_t *mSigmaRadialEstimates;
00142 Float_t *mSigmaAzimuthalEstimates;
00143 Float_t *mErrorRadialEstimates;
00144 Float_t *mErrorAzimuthalEstimates;
00145 Int_t mUnfoldedClusterFlag;
00146 Int_t mBadShapeClusterFlag;
00147 Int_t mMergedClusterFlag;
00148 Int_t mNumberOfPadsDedxSmearing;
00149 Int_t mNumberOfBinsDedxSmearing;
00150 Float_t mRadiusTolerance;
00151 Float_t mSigmaSpacingFactor;
00152 Float_t mAdcConversionFactor;
00153 Float_t mClusterChargeConversionFactor;
00154
00155 Int_t mNumberOfFssGasValues;
00156 Float_t *mFssGasEField;
00157 Float_t *mFssGasVDrift;
00158 Float_t *mFssGasDiffusionX;
00159 Float_t *mFssGasDiffusionY;
00160 Float_t *mFssGasDiffusionZ;
00161 Float_t *mFssGasLorentzAngle;
00162 Int_t mRandomNumberGenerator;
00163 Int_t mZeroSuppressThreshold;
00164 Int_t mNumSlowSimGridPoints;
00165 Int_t mMaxAdc;
00166 Int_t mGaussIntegrationSteps;
00167 Int_t mDiffusionCoarseness;
00168 Float_t mAdcConversion;
00169 Float_t mChamberCathodeVoltage;
00170 Float_t mSigmaPadResponseFuntion;
00171 Float_t mReadoutShaperTime;
00172 Float_t mSlowSimPressure;
00173 Int_t mMaxNumSequences;
00174 Int_t mMaxNumSeqPeaks;
00175 Int_t mMaxNumPeaks;
00176 Int_t mMaxNumCUC;
00177 Int_t mMaxLoops;
00178 Int_t mMaxFastLoops;
00179 Float_t mUnfoldLimit;
00180 Float_t mUnfoldFailedLimit;
00181
00182 private:
00183
00184 Int_t FtpcClusterPars(St_ftpcClusterPars *det);
00185 Int_t FtpcFastSimGas(St_ftpcFastSimGas *gaspar);
00186 Int_t FtpcFastSimPars(St_ftpcFastSimPars *param);
00187 Int_t FtpcSlowSimGas(St_ftpcSlowSimGas *gas);
00188 Int_t FtpcSlowSimPars(St_ftpcSlowSimPars *param);
00189
00190 public:
00191
00192 StFtpcParamReader(St_ftpcClusterPars *det,
00193 St_ftpcFastSimGas *gaspar,
00194 St_ftpcFastSimPars *param);
00195
00196 StFtpcParamReader(St_ftpcClusterPars *det,
00197 St_ftpcSlowSimGas *gas,
00198 St_ftpcSlowSimPars *param);
00199
00200 StFtpcParamReader(St_ftpcClusterPars *det);
00201
00202 ~StFtpcParamReader();
00203
00204 Int_t returnCode;
00205
00206 Float_t padDiffusionErrors(Int_t i);
00207 Float_t timeDiffusionErrors(Int_t i);
00208 Float_t vDriftEstimates(Int_t i);
00209 Float_t tDriftEstimates(Int_t i);
00210 Float_t sigmaRadialEstimates(Int_t i);
00211 Float_t sigmaAzimuthalEstimates(Int_t i);
00212 Float_t errorRadialEstimates(Int_t i);
00213 Float_t errorAzimuthalEstimates(Int_t i);
00214 Float_t fssGasEField(Int_t i);
00215 Float_t fssGasVDrift(Int_t i);
00216 Float_t fssGasDiffusionX(Int_t i);
00217 Float_t fssGasDiffusionY(Int_t i);
00218 Float_t fssGasDiffusionZ(Int_t i);
00219 Float_t fssGasLorentzAngle(Int_t i);
00220
00221 Int_t setNormalizedNowPressure(Float_t f) {mNormalizedNowPressure=f; return 1;}
00222 Int_t setAdjustedAirPressureWest(Float_t f) {mAdjustedAirPressureWest=f;return 0;}
00223 Int_t setAdjustedAirPressureEast(Float_t f) {mAdjustedAirPressureEast=f;return 0;}
00224 Int_t setGasTemperatureWest(Float_t f) {mGasTemperatureWest = f;return 0;}
00225 Int_t setGasTemperatureEast(Float_t f) {mGasTemperatureEast = f;return 0;}
00226
00227
00228 Int_t gaussFittingFlags() {return mGaussFittingFlags;}
00229 Int_t minimumClusterMaxADC() {return mMinimumClusterMaxADC;}
00230 Int_t numberOfDriftSteps() {return mNumberOfDriftSteps;}
00231 Float_t standardPressure() {return mStandardPressure;}
00232 Float_t normalizedNowPressure() {return mNormalizedNowPressure;}
00233 Float_t adjustedAirPressureWest() {return mAdjustedAirPressureWest;}
00234 Float_t adjustedAirPressureEast() {return mAdjustedAirPressureEast;}
00235 Float_t gasTemperatureEast() {return mGasTemperatureEast;}
00236 Float_t gasTemperatureWest() {return mGasTemperatureWest;}
00237 Float_t lorentzAngleFactor() {return mLorentzAngleFactor;}
00238 Float_t padBadFitError() {return mPadBadFitError;}
00239 Float_t timeBadFitError() {return mTimeBadFitError;}
00240 Float_t padUnfoldError() {return mPadUnfoldError;}
00241 Float_t timeUnfoldError() {return mTimeUnfoldError;}
00242 Float_t padFailedFitError() {return mPadFailedFitError;}
00243 Float_t timeFailedFitError() {return mTimeFailedFitError;}
00244 Float_t padCutoffClusterError() {return mPadCutoffClusterError;}
00245 Float_t timeCutoffClusterError() {return mTimeCutoffClusterError;}
00246 Float_t padSaturatedClusterError() {return mPadSaturatedClusterError;}
00247 Float_t timeSaturatedClusterError() {return mTimeSaturatedClusterError;}
00248 Float_t twoPadWeightedError() {return m2PadWeightedError;}
00249 Float_t twoPadGaussError() {return m2PadGaussError;}
00250 Float_t threePadWeightedError() {return m3PadWeightedError;}
00251 Float_t threePadGaussError() {return m3PadGaussError;}
00252 Float_t zDirectionError() {return mZDirectionError;}
00253 Int_t unfoldedClusterFlag() {return mUnfoldedClusterFlag;}
00254 Int_t badShapeClusterFlag() {return mBadShapeClusterFlag;}
00255 Int_t mergedClusterFlag() {return mMergedClusterFlag;}
00256 Int_t numberOfPadsDedxSmearing() {return mNumberOfPadsDedxSmearing;}
00257 Int_t numberOfBinsDedxSmearing() {return mNumberOfBinsDedxSmearing;}
00258 Float_t radiusTolerance() {return mRadiusTolerance;}
00259 Float_t sigmaSpacingFactor() {return mSigmaSpacingFactor;}
00260 Float_t adcConversionFactor() {return mAdcConversionFactor;}
00261 Float_t clusterChargeConversionFactor() {return mClusterChargeConversionFactor;}
00262 Int_t numberOfFssGasValues() {return mNumberOfFssGasValues;}
00263 Int_t randomNumberGenerator() {return mRandomNumberGenerator;}
00264 Int_t zeroSuppressThreshold() {return mZeroSuppressThreshold;}
00265 Int_t numSlowSimGridPoints() {return mNumSlowSimGridPoints;}
00266 Int_t maxAdc() {return mMaxAdc;}
00267 Int_t gaussIntegrationSteps() {return mGaussIntegrationSteps;}
00268 Int_t diffusionCoarseness() {return mDiffusionCoarseness;}
00269 Float_t adcConversion() {return mAdcConversion;}
00270 Float_t chamberCathodeVoltage() {return mChamberCathodeVoltage;}
00271 Float_t sigmaPadResponseFuntion() {return mSigmaPadResponseFuntion;}
00272 Float_t readoutShaperTime() {return mReadoutShaperTime;}
00273 Float_t slowSimPressure() {return mSlowSimPressure;}
00274 Int_t maxNumSequences() {return mMaxNumSequences;}
00275 Int_t maxNumSeqPeaks() {return mMaxNumSeqPeaks;}
00276 Int_t maxNumPeaks() {return mMaxNumPeaks;}
00277 Int_t maxNumCUC() {return mMaxNumCUC;}
00278 Int_t maxLoops() {return mMaxLoops;}
00279 Int_t maxFastLoops() {return mMaxFastLoops;}
00280 Float_t unfoldLimit() {return mUnfoldLimit;}
00281 Float_t unfoldFailedLimit() {return mUnfoldFailedLimit;}
00282
00283 };
00284
00285 #endif
00286