00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00017
00018
00019
00021 #ifndef STAR_StFtpcSlowSimCluster
00022 #define STAR_StFtpcSlowSimCluster
00023
00024 #include "math.h"
00025
00026 class StFtpcSlowSimField;
00027 class StFtpcParamReader;
00028 class StFtpcDbReader;
00029
00030
00031
00032
00033
00034 class StFtpcSlowSimCluster
00035 {
00036 public:
00037
00038 StFtpcSlowSimCluster(StFtpcParamReader *paramReader,
00039 StFtpcDbReader *dbReader,
00040 StFtpcSlowSimField *field,
00041 const float el, const float rad_offset,
00042 const float pad_offset, const float r,
00043 const float ph, const float time,
00044 const int call_padrow);
00045
00046 ~StFtpcSlowSimCluster();
00047
00048 void DriftDiffuse(StFtpcSlowSimField *field);
00049
00050
00051 void Print() const;
00052 float GetElectron() const {return electron;}
00053
00054 float GetSigRad() const {return ::sqrt(sigma_rad_squared);}
00055
00056 float GetSigPhi() const {return ::sqrt(sigma_phi_squared);}
00057
00058 float GetRadOff() const { return radialDipWidth;}
00059
00060 float GetPadOff() const {return azimuthalCrossWidth;}
00061
00062 float GetRad() const {return currentRadius;}
00063
00064 float GetPhi() const {return currentPhi;}
00065
00066 float GetDriftTime() const {return drift_time;}
00067
00068
00069 private:
00070 int mIntDiffCoarseness;
00071 float mFlDiffCoarseness;
00072 float outerRadius;
00073 float deltaRadius;
00074 float twoDeltaRadius;
00075 float electron;
00076 float electronLoss;
00077 float sigma_rad_squared;
00078 float sigma_phi_squared;
00079 float radialDipWidth;
00080 float azimuthalCrossWidth;
00081 float currentRadius;
00082 float currentPhi;
00083 float drift_time;
00084 int padrow;
00085 int original_padrow;
00086
00087
00088 };
00089
00090 #endif
00091
00092
00093
00094
00095