00001 #ifndef STAR_StEmcMipMaker
00002 #define STAR_StEmcMipMaker
00003
00004 #include <TString.h>
00005 #include <TF1.h>
00006 #include <TH2.h>
00007 #include <TH1.h>
00008
00009 #include <StMaker.h>
00010
00011 #include "StEmcCalibrationMaker.h"
00012 #include "StEmcCalibMaker.h"
00013
00014 #define MAXTRACK 10000
00015 #define MAXBEMC 4
00016 #define MAXCHANNEL 18000
00017
00018 class StEmcEqualMaker;
00019
00020 class StEmcMipMaker : public StEmcCalibMaker
00021 {
00022 protected:
00023 TH1F *mMipPos;
00024 TH1F *mMipPosErr;
00025 TH1F *mMipWid;
00026 TH1F *mMipWidErr;
00027 TH1F *mGain;
00028 TH1F *mGainDistr;
00029 TH1F *mChi2;
00030 TH1F *mIntegral;
00031
00032 float mPmin;
00033 int mNPoints;
00034
00035 int mNFailed[10];
00036
00037 public:
00038
00039 StEmcMipMaker(const char *name="EmcMip");
00040 virtual ~StEmcMipMaker();
00041 virtual Int_t Init();
00042 virtual Int_t Make();
00043 virtual Int_t Finish();
00044 virtual void Clear(Option_t *option="");
00045
00046 TH1F* compareToDb(char*,int=0);
00047 void saveToDb(char*);
00048
00049 void mipCalib();
00050 void mipCalib(int,int,int,StEmcEqualMaker*, bool = false);
00051
00052 TH1F* findMip(int,int=1,bool=true);
00053 TH1F* findMip(int,int,StEmcEqualMaker*);
00054 float findGain(int,bool=true);
00055
00056 float getMipPosition(int id) {return mMipPos->GetBinContent(id);}
00057 float getMipPositionError(int id) {return mMipPosErr->GetBinContent(id);}
00058 float getMipWidth(int id) {return mMipWid->GetBinContent(id);}
00059 float getMipWidthError(int id) {return mMipWidErr->GetBinContent(id);}
00060 float getGain(int id) {return mGain->GetBinContent(id);}
00061 float getChi2(int id) {return mChi2->GetBinContent(id);}
00062 float getIntegral(int id) {return mIntegral->GetBinContent(id);}
00063
00064 int getNFailed(int flag) { return mNFailed[flag];}
00065
00066 TH1F* getGainHist() { return mGain;}
00067 TH1F* getGainDistrHist() { return mGainDistr;}
00068 TH1F* getChi2Hist() { return mChi2;}
00069 TH1F* getIntegralHist() { return mIntegral;}
00070 TH1F* getMipPosHist() { return mMipPos;}
00071 TH1F* getMipWidHist() { return mMipWid;}
00072
00073 void fit(TH1F*);
00074
00075 TF1* funcFit;
00076 TF1* funcFitPeak;
00077 TF1* funcFitBack;
00078
00079 ClassDef(StEmcMipMaker, 1)
00080 };
00081
00082 #endif