00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00022
00023 #ifndef STAR_StGammaFilterMaker
00024 #define STAR_StGammaFilterMaker
00025
00026 #include "StMaker.h"
00027
00028 using namespace std;
00029
00030
00031 class StEmcCollection;
00032 class StEmcGeom;
00033 class StEmcPosition;
00034 class StMcEmcHitCollection;
00035 class StMcCalorimeterHit;
00036 class TVector3;
00037
00038 class TFile;
00039 class TTree;
00040 class StPythiaEvent;
00041
00042
00043 const unsigned int nModules = 120;
00044 const unsigned int nBemcTowers = 4800;
00045
00046 class StGammaFilterMaker: public StMaker
00047 {
00048
00049 public:
00050
00051 StGammaFilterMaker(const char *name = "gammaFilterMaker");
00052 ~StGammaFilterMaker();
00053
00054 virtual Int_t Init();
00055 virtual Int_t Make();
00056 virtual Int_t Finish();
00057 virtual void Clear(const Option_t* = "");
00058
00059 virtual const char *GetCVS() const
00060 {
00061 static const char cvs[]="$Id: StGammaFilterMaker.h, v1.0 2008/06/25 00:00:00 betan";
00062 return cvs;
00063 }
00064
00065 void setThresholds(double seed, double cluster);
00066 double BEMCSamplingMultiplier(double eta);
00067
00068 Int_t makeBEMC(StMcEmcHitCollection *mcEmcCollection, double zVertex);
00069
00070 private:
00071
00072 TVector3 *mMomentum;
00073
00074
00075 double mSeedEnergyThreshold;
00076 double mClusterEtThreshold;
00077
00078 StMcCalorimeterHit *mBemcTowerHits[nBemcTowers + 1];
00079
00080 StEmcGeom *mBemcGeom;
00081 StEmcPosition *mPosition;
00082
00083
00084 bool mFirst;
00085
00086 unsigned int mTotal;
00087 unsigned int mAccepted;
00088
00089
00090 TString mPythiaName;
00091 TFile *mPythiaFile;
00092 TTree *mPythiaTree;
00093 StPythiaEvent *mPythiaEvent;
00094
00095 void fStorePythia();
00096
00097 ClassDef(StGammaFilterMaker, 0);
00098
00099 };
00100
00101 #endif