00001 #include "StGammaMaker.h"
00002
00003 using namespace std;
00004
00005 ClassImp(StGammaMaker);
00006
00008
00010 StGammaMaker::StGammaMaker(const char *name, detectorSwitch detector, analysisType analysis):
00011 StMaker(name)
00012 {
00013
00014 LOG_DEBUG << "StGammaMaker()" << endm;
00015
00016
00017 mUseBemc = true;
00018 mUseEemc = true;
00019
00020 if(detector == kBemc) mUseEemc = false;
00021 if(detector == kEemc) mUseBemc = false;
00022
00023 if(analysis == kData)
00024 {
00025 mSimu = false;
00026 }
00027 else
00028 {
00029 mSimu = true;
00030 }
00031
00032
00033 if(mUseEemc)
00034 {
00035
00036 mMuDstMaker = dynamic_cast<StMuDstMaker*>(GetMakerInheritsFrom("StMuDstMaker"));
00037 assert(mMuDstMaker);
00038
00039 mEemcAnalysis = dynamic_cast<StEEmcA2EMaker*>(GetMakerInheritsFrom("StEEmcA2EMaker"));
00040 assert(mEemcAnalysis);
00041
00042 }
00043 else
00044 {
00045 mMuDstMaker = NULL;
00046 mEemcAnalysis = NULL;
00047 }
00048
00049
00050 if(mSimu)
00051 {
00052 mAsymMaker = new StMCAsymMaker("mAsymMaker");
00053 mPythiaMaker = new StGammaPythiaEventMaker("mGammaPythiaMaker");
00054 mScheduleMaker = new StGammaScheduleMaker("mGammaScheduleMaker");
00055 mScheduleMaker->rearrange();
00056 }
00057
00058 mEventMaker = new StGammaEventMaker("mGammaEventMaker");
00059 mRawMaker = new StGammaRawMaker("mGammaRawMaker");
00060 if(mUseBemc) mRawMaker->useBemc();
00061 if(mUseEemc) mRawMaker->useEemc();
00062
00063 if(mUseBemc) mBemcClusterMaker = new StBarrelEmcClusterMaker();
00064 if(mUseEemc)
00065 {
00066 mEemcClusterMaker = new StMyClusterMaker("mEemcClusterMaker", mEemcAnalysis, mMuDstMaker);
00067 mEemcClusterMaker->setEtaCut(1);
00068 mEemcClusterMaker->setPhiCut(1);
00069 }
00070
00071 mCandidateMaker = new StGammaCandidateMaker("mGammaCandidateMaker");
00072 if(mUseBemc) mCandidateMaker->useBemc();
00073 if(mUseEemc) mCandidateMaker->useEemc();
00074 mTreeMaker = new StGammaTreeMaker("mGammaTreeMaker");
00075
00076 }
00077
00079
00081 Int_t StGammaMaker::Init()
00082 {
00083
00084 if(mSimu) LOG_INFO << "Preparing to run over simulation..." << endm;
00085 if(!mSimu) LOG_INFO << "Preparing to run over data..." << endm;
00086
00087 if(mUseBemc) LOG_INFO << "Including the BEMC" << endm;
00088 if(mUseEemc) LOG_INFO << "Including the EEMC" << endm;
00089
00090 return StMaker::Init();
00091
00092 }
00093
00094 void StGammaMaker::setSeedEnergyThreshold(double threshold)
00095 {
00096 if(mUseBemc) mBemcClusterMaker->setSeedThreshold(threshold);
00097 if(mUseEemc) mEemcClusterMaker->setSeedEnergy(threshold);
00098 }
00099
00100 void StGammaMaker::setClusterEnergyThreshold(double threshold)
00101 {
00102 if(mUseBemc) mBemcClusterMaker->setClusterThreshold(threshold);
00103 }
00104
00105 void StGammaMaker::addTimestamp(int date, int time, double weight)
00106 {
00107
00108 if(mSimu)
00109 {
00110 mScheduleMaker->addTimestamp(date, time, weight);
00111 }
00112 else
00113 {
00114 LOG_WARN << "addTimestamp() - StGammaMaker not prepared for simulation, ignoring timestamp request!" << endm;
00115 }
00116
00117 }