00001
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 #ifndef StRichCluster_hh
00035 #define StRichCluster_hh
00036 #include "StObject.h"
00037
00038 class StRichCluster : public StObject {
00039 public:
00040 StRichCluster();
00041 ~StRichCluster();
00042 StRichCluster(int nPads, int nLocMax, int fPad, float ampSum, float amp2Sum, float rms2);
00043
00044
00045
00046 int operator==(const StRichCluster&) const;
00047
00048 int numberOfPads() const;
00049 int numberOfLocalMax() const;
00050 int firstPad() const;
00051 float minimumAmplitudeOfLocalMax() const;
00052 float amplitudeSum() const;
00053 float amplitude2Sum() const;
00054 float rms2() const;
00055 float rms2Calc();
00056
00057 void increaseNumberOfLocalMax();
00058 void increaseNumberOfPads();
00059 void setFirstPad(int index);
00060 void setNumberOfPads(int newNPads);
00061 void updateAmplitude(float newamp);
00062 void setMinimumAmplitudeOfLocalMax(float newLocMax);
00063
00064 private:
00065 Int_t mNumberOfPads;
00066 Int_t mNumberOfLocalMax;
00067 Int_t mFirstPad;
00068 Float_t mMinimumAmplitudeOfLocalMax;
00069 Float_t mAmplitudeSum;
00070 Float_t mAmplitude2Sum;
00071 Float_t mRms2;
00072 ClassDef(StRichCluster,1)
00073 };
00074
00075 inline int StRichCluster::numberOfPads() const { return mNumberOfPads; }
00076 inline int StRichCluster::numberOfLocalMax() const { return mNumberOfLocalMax; }
00077 inline int StRichCluster::firstPad() const { return mFirstPad; }
00078 inline float StRichCluster::minimumAmplitudeOfLocalMax() const { return mMinimumAmplitudeOfLocalMax; }
00079 inline float StRichCluster::amplitudeSum() const { return mAmplitudeSum; }
00080 inline float StRichCluster::amplitude2Sum() const { return mAmplitude2Sum; }
00081 inline float StRichCluster::rms2() const { return mRms2; }
00082 inline void StRichCluster::increaseNumberOfLocalMax() { mNumberOfLocalMax++; }
00083 inline void StRichCluster::increaseNumberOfPads() { mNumberOfPads++; }
00084 inline void StRichCluster::setFirstPad(int index) { mFirstPad=index; }
00085 inline void StRichCluster::setNumberOfPads(int newNPads) { mNumberOfPads=newNPads; }
00086 inline void StRichCluster::updateAmplitude(float newamp)
00087 {
00088 mAmplitudeSum += newamp;
00089 mAmplitude2Sum += newamp*newamp;
00090 }
00091 inline float StRichCluster::rms2Calc()
00092 { return (mRms2 = mAmplitude2Sum/mNumberOfPads - (mAmplitudeSum*mAmplitudeSum/mNumberOfPads/mNumberOfPads)); }
00093 inline void StRichCluster::setMinimumAmplitudeOfLocalMax(float newLocMax)
00094 { mMinimumAmplitudeOfLocalMax = newLocMax; }
00095 #endif
00096