00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013
00014 #ifndef STAR_StGammaCandidateMaker
00015 #define STAR_StGammaCandidateMaker
00016
00017 class TClonesArray;
00018 class TVector3;
00019 class StGammaTrack;
00020
00021 #include "StMaker.h"
00022 #include "StGammaCandidate.h"
00023
00024 class StGammaCandidateMaker: public StMaker
00025 {
00026
00027 public:
00028
00029 StGammaCandidateMaker(const char *name = "mGammaCandidateMaker");
00030 ~StGammaCandidateMaker();
00031
00032 virtual const char* GetCVS() const
00033 {static const char cvs[] = "Tag $Name: $ $Id: StGammaCandidateMaker.h,v 1.10 2009/06/17 06:21:45 betan Exp $ built "__DATE__" "__TIME__; return cvs; }
00034
00035
00036 Int_t Init();
00037 Int_t Make();
00038 void Clear(Option_t *opts="");
00039 Int_t Finish() { return kStOK; }
00040
00041
00042 void SetMinimumEt(Float_t et) { mMinimumEt = et; }
00043 void SetRadius(Float_t r) { mRadius = r; }
00044 void SetBsmdRange(Float_t r){ mBsmdRange = r; }
00045 void SetEsmdRange(Float_t r){ mEsmdRange = r; }
00046
00047 void useBemc() { mUseBemc = true; }
00048 void useEemc() { mUseEemc = true; }
00049
00050 void useStrictBemcStatus() { mStrictBemcStatus = true; }
00051
00052 enum { kNoCompress, kCompressSmd, kCompressAll };
00053
00054
00055
00056 void SetCompressLevel(Int_t level = kCompressSmd ) { mCompressLevel = level; }
00057
00058 Int_t Compress();
00059
00060 private:
00061
00062 protected:
00063
00064 bool mUseBemc;
00065 bool mUseEemc;
00066
00067 bool mStrictBemcStatus;
00068
00069 Float_t mMinimumEt;
00070 Float_t mRadius;
00071 Float_t mBsmdRange;
00072 Float_t mEsmdRange;
00073 Int_t mCompressLevel;
00074
00075 Int_t mId;
00076 Int_t nextId(){ return mId++; }
00077
00078 Int_t MakeBarrel();
00079 Int_t MakeEndcap();
00080 template<class T> void Compress(TClonesArray* clones);
00081
00082
00083
00084 TVector3 getEEmcClusterPosition(const StEEmcCluster& cluster);
00085
00086
00087 ClassDef(StGammaCandidateMaker, 4);
00088
00089 };
00090
00091 #endif