00001
00014 #ifndef STAR_StPmdCalibConstMaker
00015 #define STAR_StPmdCalibConstMaker
00016 #ifndef StMaker_H
00017 #include "StMaker.h"
00018 #endif
00019
00020 #include "tables/St_pmdBrdMipCalib_Table.h"
00021 #include "tables/St_pmdCalSummary_Table.h"
00022 #include "TString.h"
00023 #include "StPmdUtil/StPmdGeom.h"
00024 #include "StPmdUtil/StPmdDBUtil.h"
00025 #define PMD_CELL_NEIGHBOUR 6
00026 #define MIP_MIN_ENTRY 1000 // new entry
00027 #define MIP_CH_MAX 100// check it
00028
00029 class StTrack;
00030 class StEvent;
00031
00032 class StPmdCollection;
00033 class StPmdDetector;
00034 class StPmdCalibConstMaker: public StMaker{
00035
00036 private:
00037 static Int_t neibx[PMD_CELL_NEIGHBOUR];
00038 static Int_t neiby[PMD_CELL_NEIGHBOUR];
00039 static Int_t imax[2*PMD_CRAMS_MAX];
00040 static Int_t jmax[2*PMD_CRAMS_MAX];
00041 int mDate;
00042 int mTime;
00043 Bool_t mSaveCalibToDB;
00044 Bool_t mOptHist;
00045 Float_t mMipPeak[PMD_BOARD_MAX][PMD_BOARD_CH_MAX];
00046 Float_t mMipWidth[PMD_BOARD_MAX][PMD_BOARD_CH_MAX];
00047
00048 StPmdGeom * mPmdGeom;
00049 StPmdDBUtil * mPmdDbUtil;
00050 void InitMipParams();
00051 void ClearHists();
00052 void ClearMipArray();
00053 void BookHistograms();
00054 void GetIsoHit(StPmdDetector*, StPmdDetector*);
00055 protected:
00056
00058 TH1F *mMipEnergy[2*PMD_CRAMS_MAX][PMD_ROW_MAX][PMD_COL_MAX];
00059 Float_t normFactor[2*PMD_CRAMS_MAX][PMD_ROW_MAX][PMD_COL_MAX];
00060 Float_t MPV_Entry[2*PMD_CRAMS_MAX][PMD_ROW_MAX][PMD_COL_MAX];
00061 public:
00062 StPmdCalibConstMaker(const char *name="PmdCalib");
00063 virtual ~StPmdCalibConstMaker();
00064
00065 virtual Int_t Init();
00066 virtual Int_t Make();
00067 virtual Int_t FindMipParameters();
00068 virtual Int_t Finish();
00069
00070 void SaveCalibration();
00071 void SetSaveCalibToDB(Bool_t a) { mSaveCalibToDB = a; }
00072 void SetOptHist(Bool_t a) { mOptHist = a; }
00073
00074 ClassDef(StPmdCalibConstMaker, 1)
00075 };
00076
00077 #endif
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095