00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00014
00015 #ifndef STAR_StBarrelEmcClusterMaker
00016 #define STAR_StBarrelEmcClusterMaker
00017
00018 class StBarrelEmcCluster;
00019 class StGammaEventMaker;
00020 class StGammaRawMaker;
00021 class StGammaTower;
00022
00023 #include "StMaker.h"
00024
00025 class StBarrelEmcClusterMaker: public StMaker
00026 {
00027
00028 public:
00029
00030 StBarrelEmcClusterMaker(const char* name = "mBemcClusterMaker");
00031 ~StBarrelEmcClusterMaker() {};
00032
00033 virtual const char* GetCVS() const
00034 {static const char cvs[] = "Tag $Name: $ $Id: StBarrelEmcClusterMaker.h,v 1.5 2008/12/03 15:32:47 betan Exp $ built "__DATE__" "__TIME__; return cvs; }
00035
00036
00037 int Init();
00038 void Clear(Option_t* option = "");
00039 int Make();
00040 int Finish() { return kStOK; }
00041
00042
00043 vector<StBarrelEmcCluster*>& clusters();
00044
00045
00046 void setSeedThreshold(double threshold);
00047 void setClusterThreshold(double threshold);
00048
00049 private:
00050
00051 float mHighTowerThreshold;
00052 float mClusterThreshold;
00053
00054 StGammaEventMaker* mGammaEventMaker;
00055 StGammaRawMaker* mGammaRawMaker;
00056 TVector3 mVertex;
00057 vector<StBarrelEmcCluster*> mClusters;
00058
00059 StBarrelEmcCluster* makeCluster(StGammaTower* tower) const;
00060 void getTowerPosition(int id, TVector3& position) const;
00061
00062 ClassDef(StBarrelEmcClusterMaker, 2)
00063
00064 };
00065
00066 inline vector<StBarrelEmcCluster*>& StBarrelEmcClusterMaker::clusters() { return mClusters; }
00067 inline void StBarrelEmcClusterMaker::setSeedThreshold(double threshold) { mHighTowerThreshold = threshold; }
00068 inline void StBarrelEmcClusterMaker::setClusterThreshold(double threshold) { mClusterThreshold = threshold; }
00069
00070 #endif