00001 #ifndef STAR_StLuminosityMaker
00002 #define STAR_StLuminosityMaker
00003
00004 #ifndef StMaker_H
00005 #include "StMaker.h"
00006 #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
00007 #endif
00008
00009 #include "TClonesArray.h"
00010 #include "StTriggerUtilities/StTriggerSimuMaker.h"
00011 #include "StLuminosityHolder.h"
00012
00013 using namespace std;
00014
00015 class StLuminosityMaker : public StMaker {
00016 private:
00017 vector<unsigned int> mTriggers;
00018 vector<unsigned int> mNTotal;
00019 vector<unsigned int> mNVertex;
00020 vector<unsigned int> mNCuts;
00021 vector<unsigned int> mNSoftTrig;
00022 vector<float> mLumTotal;
00023 vector<float> mLumCuts;
00024 vector<float> mLumVertex;
00025 vector<float> mLumSoftTrig;
00026 vector<float> mPrescales;
00027 StMuDstMaker* muDstMaker;
00028 StTriggerSimuMaker* mTriggerSimuMaker;
00029 TClonesArray* mLumHolder;
00030
00031 char* runMode;
00032 float mXsec;
00033 int runNumber;
00034 float mVertexCut;
00035 int mOverrideMode;
00036 unsigned int mFilterMode;
00037
00038 void printOutput();
00039 void saveOutput();
00040
00041 public:
00042 StLuminosityMaker(const char *name="Luminosity");
00043 virtual ~StLuminosityMaker() {}
00044 virtual Int_t Init();
00045 virtual Int_t InitRun(int run);
00046 virtual Int_t Make();
00047 virtual Int_t Finish();
00048
00049 void getTriggersFromFilterMaker(const char* filtername="triggerFilter");
00050
00051 void setFilterMode(unsigned int flag=1) {mFilterMode = flag;}
00052 void addTrigger(unsigned int trigId);
00053 void setMode(char* newMode);
00054 void setCrossSectionNB(float newXsec, int overRideMode = 1);
00055 void setVertexCutcm(float newcut){mVertexCut = newcut;}
00056 const float getCrossSectionNB() const {return mXsec;}
00057 const float getVertexCutcm() const {return mVertexCut;}
00058 const TClonesArray* getHolder() const {return mLumHolder;}
00059 const vector<float> getLumTotal() const {return mLumTotal;}
00060 const vector<float> getLumCuts() const {return mLumCuts;}
00061 const vector<float> getLumVertex() const {return mLumVertex;}
00062 const vector<float> getLumSoftTrig() const {return mLumSoftTrig;}
00063 const vector<float> getPrescales() const {return mPrescales;}
00064 const vector<unsigned int> getTriggers() const {return mTriggers;}
00065 const vector<unsigned int> getNTotal() const {return mNTotal;}
00066 const vector<unsigned int> getNCuts() const {return mNCuts;}
00067 const vector<unsigned int> getNVertex() const {return mNVertex;}
00068 const vector<unsigned int> getNSoftTrig() const {return mNSoftTrig;}
00069
00070 virtual const char *GetCVS() const
00071 {static const char cvs[]="Tag $Name: $ $Id: StLuminosityMaker.h,v 1.2 2008/08/20 16:11:50 mattheww Exp $ built "__DATE__" "__TIME__ ; return cvs;}
00072
00073 ClassDef(StLuminosityMaker,0)
00074 };
00075
00076 #endif