00001 #ifndef __StEEmcIUCluster_h__ 00002 #define __StEEmcIUCluster_h__ 00003 00004 #include <TObject.h> 00005 #include <TVector3.h> 00006 #include "StEEmcPool/StEEmcA2EMaker/StEEmcTower.h" 00007 00008 class StEmcCluster; 00009 00010 class StEEmcIUCluster : public TObject { 00011 00012 public: 00013 00014 StEEmcIUCluster(); 00015 ~StEEmcIUCluster(); 00016 00020 void add( StEEmcTower, Float_t weight=1.0 ); 00021 00023 Float_t energy(); 00025 Float_t seedEnergy(); 00027 TVector3 momentum(); 00029 Int_t numberOfTowers(); 00031 StEEmcTower tower(Int_t t); 00033 StEEmcTower tower(Int_t t) const; 00034 00036 Float_t weight(Int_t t); 00038 StEEmcTowerVec_t towers(); 00039 00041 void momentum( TVector3 p); 00042 00046 StEmcCluster *stemc(); 00047 00049 void stemc(StEmcCluster *c){ mEmcCluster = c; } 00050 00052 Int_t key(){ return mKey; } 00054 void key(Int_t k){ mKey=k; } 00055 00058 Bool_t operator==( const StEEmcIUCluster &other ) const { return this->tower(0).index() == other.tower(0).index(); } 00059 00061 void print(); 00062 00063 private: 00064 protected: 00065 00067 Int_t mKey; 00068 00070 StEEmcTowerVec_t mTowers; 00072 std::vector<Float_t> mWeights; 00073 00075 Float_t mEnergy; 00077 TVector3 mMomentum; 00078 00080 StEmcCluster *mEmcCluster; 00081 00083 ClassDef(StEEmcIUCluster,1); 00084 00085 }; 00086 00087 inline Float_t StEEmcIUCluster::energy(){ return mEnergy; } 00088 inline Float_t StEEmcIUCluster::seedEnergy(){ return (mTowers.size())?mTowers[0].energy():0.; } 00089 00090 inline void StEEmcIUCluster::momentum(TVector3 p){mMomentum=p;} 00091 inline TVector3 StEEmcIUCluster::momentum(){ return mMomentum;} 00092 inline StEEmcTower StEEmcIUCluster::tower(Int_t t){ return mTowers[t]; } 00093 inline StEEmcTower StEEmcIUCluster::tower(Int_t t)const{ return mTowers[t]; } 00094 inline Int_t StEEmcIUCluster::numberOfTowers(){ return (Int_t)mTowers.size(); } 00095 inline StEEmcTowerVec_t StEEmcIUCluster::towers(){ return mTowers; } 00096 inline Float_t StEEmcIUCluster::weight( Int_t t ) { return mWeights[t]; } 00097 00098 typedef std::vector<StEEmcIUCluster> StEEmcIUClusterVec_t; 00099 00100 #endif
1.5.9