StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StRichCluster.h
1 
5 /***************************************************************************
6  *
7  * $Id: StRichCluster.h,v 2.5 2002/02/22 22:56:49 jeromel Exp $
8  *
9  * Author: bl
10  ***************************************************************************
11  *
12  * Description: Definition of the Cluster object (Persistent)
13  *
14  ***************************************************************************
15  *
16  * $Log: StRichCluster.h,v $
17  * Revision 2.5 2002/02/22 22:56:49 jeromel
18  * Doxygen basic documentation in all header files. None of this is required
19  * for QM production.
20  *
21  * Revision 2.4 2001/04/05 04:00:39 ullrich
22  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
23  *
24  * Revision 2.3 2000/08/09 14:11:51 perev
25  * ClassDef must be without ;, (???)
26  *
27  * Revision 2.2 2000/08/08 14:42:14 ullrich
28  * Added missing ClassDef and ClassImp macros.
29  *
30  * Revision 2.1 2000/05/22 21:44:56 ullrich
31  * Initial Revision
32  *
33  ***************************************************************************/
34 #ifndef StRichCluster_hh
35 #define StRichCluster_hh
36 #include "StObject.h"
37 
38 class StRichCluster : public StObject {
39 public:
40  StRichCluster();
41  ~StRichCluster();
42  StRichCluster(int nPads, int nLocMax, int fPad, float ampSum, float amp2Sum, float rms2);
43  //StRichCluster(const StRichCluster&) {}
44  //StRichCluster& operator=(const StRichCluster&) {}
45 
46  int operator==(const StRichCluster&) const;
47 
48  int numberOfPads() const;
49  int numberOfLocalMax() const;
50  int firstPad() const;
51  float minimumAmplitudeOfLocalMax() const;
52  float amplitudeSum() const;
53  float amplitude2Sum() const;
54  float rms2() const;
55  float rms2Calc();
56 
57  void increaseNumberOfLocalMax();
58  void increaseNumberOfPads();
59  void setFirstPad(int index);
60  void setNumberOfPads(int newNPads);
61  void updateAmplitude(float newamp);
62  void setMinimumAmplitudeOfLocalMax(float newLocMax);
63 
64 private:
65  Int_t mNumberOfPads; // number of associated pads
66  Int_t mNumberOfLocalMax; // number of local maxima
67  Int_t mFirstPad; // index of first cluster pad
68  Float_t mMinimumAmplitudeOfLocalMax; // lowest amplitude of all associated local maxima
69  Float_t mAmplitudeSum; // sum of all pad amplitudes
70  Float_t mAmplitude2Sum; // sum of squares of all pad amplitudes
71  Float_t mRms2; // square rms of pad amplitudes
72  ClassDef(StRichCluster,1)
73 };
74 
75 inline int StRichCluster::numberOfPads() const { return mNumberOfPads; }
76 inline int StRichCluster::numberOfLocalMax() const { return mNumberOfLocalMax; }
77 inline int StRichCluster::firstPad() const { return mFirstPad; }
78 inline float StRichCluster::minimumAmplitudeOfLocalMax() const { return mMinimumAmplitudeOfLocalMax; }
79 inline float StRichCluster::amplitudeSum() const { return mAmplitudeSum; }
80 inline float StRichCluster::amplitude2Sum() const { return mAmplitude2Sum; }
81 inline float StRichCluster::rms2() const { return mRms2; }
82 inline void StRichCluster::increaseNumberOfLocalMax() { mNumberOfLocalMax++; }
83 inline void StRichCluster::increaseNumberOfPads() { mNumberOfPads++; }
84 inline void StRichCluster::setFirstPad(int index) { mFirstPad=index; }
85 inline void StRichCluster::setNumberOfPads(int newNPads) { mNumberOfPads=newNPads; }
86 inline void StRichCluster::updateAmplitude(float newamp)
87 {
88  mAmplitudeSum += newamp;
89  mAmplitude2Sum += newamp*newamp;
90 }
91 inline float StRichCluster::rms2Calc()
92 { return (mRms2 = mAmplitude2Sum/mNumberOfPads - (mAmplitudeSum*mAmplitudeSum/mNumberOfPads/mNumberOfPads)); }
93 inline void StRichCluster::setMinimumAmplitudeOfLocalMax(float newLocMax)
94 { mMinimumAmplitudeOfLocalMax = newLocMax; }
95 #endif
96