00001 #ifndef STAR_StEmcPedestalMaker
00002 #define STAR_StEmcPedestalMaker
00003
00004 #include <TString.h>
00005 #include <TF1.h>
00006 #include <TH2.h>
00007 #include <TH1.h>
00008
00009 #include "StEmcCalibMaker.h"
00010 #include "StEmcCalibrationMaker.h"
00011
00012 #define MAXTRACK 10000
00013 #define MAXBEMC 4
00014 #define MAXCHANNEL 18000
00015 #define MAXTOWERCHANNEL 18000
00016
00017 class StEmcPedestalMaker : public StEmcCalibMaker {
00018 protected:
00019 TH1F* mPedestal;
00020 TH1F* mRms;
00021 TH1F* mChi;
00022 TH1F* mStatus;
00023
00024 Int_t mNPedEvents;
00025 Float_t mPedInterval;
00026 Int_t mLastPedTime;
00027 Int_t mLastPedDate;
00028 Bool_t mStarted;
00029 TString mSavePath;
00030 TString mTablesPath;
00031 TString mLastTablePath;
00032 Bool_t mSaveTables;
00033 Float_t mPedDiffSaveDB;
00034 Int_t mPedDiffSaveNum;
00035 Float_t mPedDiffSaveMinTime;
00036 Bool_t mCompareLastTableDB;
00037 TString mPedCrateFilenameFormat;
00038 TString mBemcStatusFilename;
00039 Bool_t mUseBemcStatus;
00040
00041 public:
00042
00043 StEmcPedestalMaker(const Char_t *name="EmcPedestal");
00044 virtual ~StEmcPedestalMaker();
00045 virtual Int_t Init();
00046 virtual Int_t Make();
00047 virtual Int_t Finish();
00048 virtual void Clear(Option_t *option="");
00049
00050 Float_t getPedestal(Int_t id) const {return mPedestal->GetBinContent(id);}
00051 Float_t getRms(Int_t id) const {return mRms->GetBinContent(id);}
00052 Float_t getChi(Int_t id) const {return mChi->GetBinContent(id);}
00053 Float_t getStatus(Int_t id) const {return mStatus->GetBinContent(id);}
00054
00055 Int_t getNPedEvents() const {return mNPedEvents;}
00056 void setNPedEvents(Int_t a) {mNPedEvents = a;}
00057
00058 Float_t getPedInterval() const {return mPedInterval;}
00059 void setPedInterval(Float_t time) {mPedInterval = time;}
00060
00061 const Char_t *getSavePath() const {return mSavePath;}
00062 void setSavePath(const Char_t *path) {mSavePath = path ? path : "";}
00063
00064 const Char_t *getTablesPath() const {return mTablesPath;}
00065 void setTablesPath(const Char_t *path) {mTablesPath = path ? path : "";}
00066
00067 const Char_t *getLastTablePath() const {return mLastTablePath;}
00068 void setLastTablePath(const Char_t *path) {mLastTablePath = path ? path : "";}
00069
00070 Bool_t getSaveTables() const {return mSaveTables;}
00071 void setSaveTables(Bool_t save) {mSaveTables = save;}
00072
00073 Float_t getPedDiffSaveDB() const {return mPedDiffSaveDB;}
00074 void setPedDiffSaveDB(Float_t diff) {mPedDiffSaveDB = diff;}
00075
00076 Int_t getPedDiffSaveNum() const {return mPedDiffSaveNum;}
00077 void setPedDiffSaveNum(Int_t num) {mPedDiffSaveNum = num;}
00078
00079 Float_t getPedDiffSaveMinTime() const {return mPedDiffSaveMinTime;}
00080 void setPedDiffSaveMinTime(Float_t diff) {mPedDiffSaveMinTime = diff;}
00081
00082 Bool_t getCompareLastTableDB() const {return mCompareLastTableDB;}
00083 void setCompareLastTableDB(Bool_t cmp) {mCompareLastTableDB = cmp;}
00084
00085 const Char_t *getPedCrateFilenameFormat() const {return mPedCrateFilenameFormat;}
00086 void setPedCrateFilenameFormat(const Char_t *fmt) {mPedCrateFilenameFormat = fmt ? fmt : "";}
00087
00088 const Char_t *getBemcStatusFilename() const {return mBemcStatusFilename;}
00089 void setBemcStatusFilename(const Char_t *name) {mBemcStatusFilename = name ? name : "";}
00090
00091 Bool_t getUseBemcStatus() const {return mUseBemcStatus;}
00092 void setUseBemcStatus(Bool_t use) {mUseBemcStatus = use;}
00093
00094 void calcPedestals();
00095 void saveToDb(const Char_t *timestamp, const Char_t *tableFilename = 0) const;
00096 void saveToDb(Int_t date, Int_t time) const;
00097 void savePedestals(Int_t date, Int_t time, Bool_t DB = false) const;
00098 void loadPedestals(const Char_t *filename);
00099
00100 ClassDef(StEmcPedestalMaker, 2)
00101 };
00102
00103 #endif