00001 #ifndef STAR_StEmcEqualMaker
00002 #define STAR_StEmcEqualMaker
00003 #include "StMaker.h"
00004 #include "TH2.h"
00005 #include "TH1.h"
00006 #include "StEmcCalibrationMaker.h"
00007 #include "TString.h"
00008 #include "TF1.h"
00009 #include "StEmcCalibMaker.h"
00010
00011 #define MAXTRACK 10000
00012 #define MAXBEMC 4
00013 #define MAXCHANNEL 18000
00014 #define MAXTOWERCHANNEL 18000
00015
00016 class StEmcEqualMaker : public StEmcCalibMaker
00017 {
00018 protected:
00019 TH1F *mA;
00020 TH1F *mB;
00021 TH1F *mStatus;
00022 TH1F *mRefSlopes;
00023 TH1F *mRefAmps;
00024 TH1F *mSlopes;
00025 TH1F *mAmps;
00026 TH1F *mADistr;
00027 TH1F *mBDistr;
00028 TH2F *mSlopesTheta;
00029
00030 public:
00031
00032 StEmcEqualMaker(const char *name="EmcEqual");
00033 virtual ~StEmcEqualMaker();
00034 virtual Int_t Init();
00035 virtual Int_t Make();
00036 virtual Int_t Finish();
00037 virtual void Clear(Option_t *option="");
00038
00039 void equalize(int=4,int = 2,bool = false);
00040 void equalizeRelative(int,int,int=4,bool=false);
00041 void equalizeToFunction(int,TF1*);
00042
00043 void calcSlopes();
00044
00045 void saveEqual(int=0,int=0);
00046 void loadEqual(char*);
00047
00048 TH1F* getA() { return mA;}
00049 TH1F* getB() { return mB;}
00050 TH1F* getStatus() { return mStatus;}
00051 TH1F* getRefSlopes() { return mRefSlopes;}
00052 TH1F* getRefAmps() { return mRefAmps;}
00053 TH1F* getSlopes() { return mSlopes;}
00054 TH1F* getAmps() { return mAmps;}
00055 TH2F* getSlopesTheta() { return mSlopesTheta;}
00056
00057 TH1F* getEtaBinSpec(int,int,TH2F* SPEC=0);
00058 TH1F* rebin(int,char*name = "tmp",TH2F* SPEC = NULL);
00059
00060 void drawEtaBin(int, int,TH2F* SPEC=0);
00061
00062 ClassDef(StEmcEqualMaker, 1)
00063 };
00064
00065 #endif