StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEmcCluster.h
1 
5 /***************************************************************************
6  *
7  * $Id: StEmcCluster.h,v 2.11 2016/02/25 17:10:19 ullrich Exp $
8  *
9  * Author: Akio Ogawa, Jan 2000
10  ***************************************************************************
11  *
12  * Description: Base class for electromagnetic calorimeter cluster
13  *
14  ***************************************************************************
15  *
16  * $Log: StEmcCluster.h,v $
17  * Revision 2.11 2016/02/25 17:10:19 ullrich
18  * Implemented detector() which is now a pure abstract method in StHit.
19  *
20  * Revision 2.10 2012/09/16 21:33:33 fisyak
21  * Make one line print out
22  *
23  * Revision 2.9 2012/05/07 14:42:57 fisyak
24  * Add handilings for Track to Fast Detectors Matching
25  *
26  * Revision 2.8 2004/07/15 16:36:24 ullrich
27  * Removed all clone() declerations and definitions. Use StObject::clone() only.
28  *
29  * Revision 2.7 2003/09/02 17:58:05 perev
30  * gcc 3.2 updates + WarnOff
31  *
32  * Revision 2.6 2002/02/22 22:56:47 jeromel
33  * Doxygen basic documentation in all header files. None of this is required
34  * for QM production.
35  *
36  * Revision 2.5 2001/04/05 04:00:34 ullrich
37  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
38  *
39  * Revision 2.4 2001/03/24 03:34:44 perev
40  * clone() -> clone() const
41  *
42  * Revision 2.3 2000/07/31 22:12:23 akio
43  * eliminate print() for L3(?)
44  *
45  * Revision 2.2 2000/03/23 22:24:06 akio
46  * Initial version of Emc Point, and Inclusion of track pointers
47  *
48  * Revision 2.1 2000/02/23 17:55:43 ullrich
49  * Initial Revision
50  *
51  **************************************************************************/
52 #ifndef StEmcCluster_hh
53 #define StEmcCluster_hh
54 
55 #include <Stiostream.h>
56 #include "StHit.h"
57 #include "StContainers.h"
58 
59 class StEmcCluster : public StHit {
60 public:
61  StEmcCluster();
62  ~StEmcCluster();
63  // StEmcCluster(const StEmcCluster&); use default
64  // StEmcCluster& operator=(const StEmcCluster&); use default
65 
66  float eta() const;
67  float phi() const;
68  float sigmaEta() const;
69  float sigmaPhi() const;
70  float energy() const;
71  int nHits() const;
72  int nNeighbors() const;
73  int nTracks() const;
74 
75  StPtrVecEmcRawHit& hit();
76  const StPtrVecEmcRawHit& hit() const;
77  StPtrVecEmcCluster& neighbor();
78  const StPtrVecEmcCluster& neighbor() const;
79  StPtrVecTrack& track();
80  const StPtrVecTrack& track() const;
81 
82  void setEta(float);
83  void setPhi(float);
84  void setSigmaEta(float);
85  void setSigmaPhi(float);
86  void setEnergy(float);
87 
88  StDetectorId detector() const;
89 
90  void addHit(StEmcRawHit*);
91  void addNeighbor(StEmcCluster*);
92  void addTrack(StTrack*);
93  void Print(Option_t *option = "") const;
94 
95 private:
96  Float_t mEta;
97  Float_t mPhi;
98  Float_t mSigmaEta;
99  Float_t mSigmaPhi;
100  Float_t mEnergy;
101  StPtrVecEmcRawHit mHits;
102  StPtrVecEmcCluster mNeighbors;
103  StPtrVecTrack mTracks;
104 
105  ClassDef(StEmcCluster,2)
106 };
107 
108 inline StDetectorId StEmcCluster::detector() const {return static_cast<StDetectorId>(StHit::bits(0, 4));}
109 
110 ostream& operator<<(ostream&, const StEmcCluster&); // Printing operator
111 #endif
112 
113 
114 
115 
116 
117 
Definition: StHit.h:125