StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMuFttCluster.h
1 #ifndef STMUFTTCLUSTER_H
2 #define STMUFTTCLUSTER_H
3 
4 #include <TObject.h>
5 #include <TRefArray.h>
6 #include "StEnumerations.h"
7 
8 class StMuFttRawHit;
9 class StMuFttPoint;
10 class StFttCluster;
11 
12 class StMuFttCluster : public TObject {
13 public:
15  ~StMuFttCluster();
16 
17  int id() const; // Cluster ID
18  UChar_t plane() const; // Detector plane.
19  UChar_t quadrant() const; // detector quadrant.
20  UChar_t orientation() const;
21  int nStrips() const;
22  int nPoints() const;
23  int nRawHits() const; // == nStrips?? need both?
24  int nNeighbors() const;
25  float sumAdc() const;
26  float x() const; // Mean x ("center of gravity") in local grid coordinate (1st moment).
27  float sigma() const; // Maximum 2nd moment (along major axis).
28 
29  void setId(int cluid);
30  void setPlane(UChar_t plane);
31  void setQuadrant(UChar_t quad);
32  void setOrientation( UChar_t );
33  void setNStrips(int numStrips);
34  void setSumAdc(int theSumAdc);
35  void setX(float x0);
36  void setSigma(float sigma);
37 
38  TRefArray* rawHits();
39  const TRefArray* rawHits() const;
40  void addRawHit(StMuFttRawHit* p);
41  void addNeighbor(StMuFttCluster* neighbor);
42  TRefArray* neighbor();
43  const TRefArray* neighbor() const;
44  TRefArray* points();
45  const TRefArray* points() const;
46  void addPoint(StMuFttPoint* p);
47  // void print(Option_t *option="") const;
48 
49  void set( StFttCluster * clu );
50 
51 private:
52  Int_t mId=-1; // Eventwise cluster ID
53  UChar_t mPlane;
54  UChar_t mQuadrant;
55  UChar_t mOrientation = kFttUnknownOrientation; // Orientation of cluster
56  Int_t mNStrips=0; // Number of strips
57  Float_t mSumAdc=0.0; // Total ADC (0th moment)
58  Float_t mX=0.0; // Mean x ("center of gravity") in local grid coordinate (1st moment)
59  Float_t mSigma=0.0; // 2nd moment
60  TRefArray mRawHits; // Tower hits of the current cluster
61  TRefArray mNeighbors; // Neighbor clusters
62  TRefArray mPoints; // Fitted points (photons) in the cluster
63 
64  ClassDef(StMuFttCluster, 1)
65 };
66 
67 
68 inline int StMuFttCluster::id() const { return mId; } // Cluster ID
69 inline UChar_t StMuFttCluster::plane() const { return mPlane; }
70 inline UChar_t StMuFttCluster::quadrant() const { return mQuadrant; }
71 inline UChar_t StMuFttCluster::orientation() const { return mOrientation; }
72 inline int StMuFttCluster::nStrips() const { return mNStrips; }
73 inline int StMuFttCluster::nRawHits() const { return mRawHits.GetSize(); }
74 inline int StMuFttCluster::nNeighbors() const { return mNeighbors.GetSize(); }
75 inline int StMuFttCluster::nPoints() const { return mPoints.GetSize(); }
76 inline float StMuFttCluster::sumAdc() const { return mSumAdc; }
77 inline float StMuFttCluster::x() const { return mX; } // Mean x ("center of gravity") in local grid coordinate (1st moment).
78 inline float StMuFttCluster::sigma() const { return mSigma; } // 2nd moment
79 
80 inline void StMuFttCluster::setPlane(UChar_t plane) { mPlane = plane; }
81 inline void StMuFttCluster::setQuadrant(UChar_t quadrant) { mQuadrant = quadrant; }
82 inline void StMuFttCluster::setOrientation( UChar_t so ) { mOrientation = so; }
83 inline void StMuFttCluster::setNStrips(int numStrips) { mNStrips = numStrips; }
84 inline void StMuFttCluster::setSumAdc(int theSumAdc) { mSumAdc = theSumAdc; }
85 inline void StMuFttCluster::setX(float x0) { mX = x0; }
86 inline void StMuFttCluster::setSigma(float sigma) { mSigma = sigma; }
87 
88 inline void StMuFttCluster::setId(int cluid) { mId = cluid; }
89 
90 inline TRefArray* StMuFttCluster::rawHits() { return &mRawHits; }
91 inline const TRefArray* StMuFttCluster::rawHits() const { return &mRawHits; }
92 inline TRefArray* StMuFttCluster::neighbor() { return &mNeighbors; }
93 inline const TRefArray* StMuFttCluster::neighbor() const { return &mNeighbors; }
94 inline TRefArray* StMuFttCluster::points() { return &mPoints; }
95 inline const TRefArray* StMuFttCluster::points() const { return &mPoints; }
96 
97 #endif // STMUFTTCLUSTER_H