00001
00002
00003
00004
00005 #ifndef FROOT_TFndTofMon
00006 #define FROOT_TFndTofMon
00007
00009
00010
00011
00012
00013
00015
00016 #include "FROOT.h"
00017
00018 #include "TObject.h"
00019 #ifdef _FND_ONL_USE_MAP_FILES_
00020 #include "TMapFile.h"
00021 #endif
00022
00023 #include "TH1.h"
00024 #include "TH2.h"
00025 #include "TCanvas.h"
00026 #include "TLine.h"
00027
00028 #include "TFndHdt.h"
00029
00030 class TFndTofMon : public TObject {
00031
00032 protected:
00033
00034 Int_t shmflg;
00035 TFile *fout;
00036 TFile *ftof;
00037
00038
00039 #if defined _FND_ONL_USE_MAP_FILES_
00040 TMapFile *mtof;
00041 TMapFile *mtof_adc;
00042 TMapFile *mtof_tdc;
00043 #elif defined _FND_ONL_USE_SHARED_FILES_
00044 TFile *mtof;
00045 TFile *mtof_adc;
00046 TFile *mtof_tdc;
00047 #endif
00048
00049
00050 Bool_t fMustRecoverHistos;
00051
00052 TString fSharedMemName_Main;
00053 TString fSharedMemName_Adc;
00054 TString fSharedMemName_Tdc;
00055 TString fSharedFileName_Main;
00056 TString fSharedFileName_Adc;
00057 TString fSharedFileName_Tdc;
00058
00059
00060
00061 TCanvas *tof_mon_adc;
00062 TCanvas *tof_mon_tdc;
00063 TCanvas *tof_mon_adc_tdc;
00064
00065 TH1F *tofmult;
00066 TH2F *tof_i_o_mult;
00067 TH1F *tofmap;
00068 TH1F *tofmapadc0;
00069 TH1F *tofmapadc;
00070 TH1F *tofmapadce;
00071 TH1F *tofmapadcp;
00072
00073 TH1F *tofmaptdc0;
00074 TH1F *tofmaptdc;
00075 TH1F *tofmaptdce;
00076 TH1F *tofmaptdcp;
00077 TH2F *tofcorr[2];
00078
00079 TH1F *tofmapmt;
00080
00081 static const Int_t n_tof_hist = 84;
00082 TH2F *tof_mapadctdc[n_tof_hist];
00083 TH2F *tof_adc_tdc[n_tof_hist];
00084 TH1F *tofadce[n_tof_hist];
00085 TH1F *tofadcp[n_tof_hist];
00086 TH1F *tofcrg[n_tof_hist];
00087 TH2F *tofadc[n_tof_hist];
00088 TH1F *tofzet[n_tof_hist];
00089 TH1F *toftdce[n_tof_hist];
00090 TH1F *toftdcp[n_tof_hist];
00091 TH1F *toftdf[n_tof_hist];
00092 TH1F *toftmn[n_tof_hist];
00093 TH1F *toftmn_hw[n_tof_hist];
00094 TH2F *toftdc[n_tof_hist];
00095 TH1F *tof1d;
00096 TH2F *tof2d;
00097
00098 private:
00099 void Init();
00100 void InitHistos(const Int_t &tof_adc_bins,const Double_t &tof_adc_min,const Double_t &tof_adc_max,const Int_t &tof_tdc_bins,const Double_t &tof_tdc_min,const Double_t &tof_tdc_max);
00101 void OpenSharedFiles(const TString &fmode);
00102
00103
00104 public:
00105
00106 TFndTofMon();
00107 TFndTofMon(const TString &fmode,Int_t tof_adc_bins=52,Double_t tof_adc_min = 0.,Double_t tof_adc_max = 4160.,Int_t tof_tdc_bins=50,Double_t tof_tdc_min = 0.,Double_t tof_tdc_max = 4160.);
00108 TFndTofMon(TString *filename);
00109 ~TFndTofMon();
00110 void Fill();
00111 void Fill(const TClonesArray &TofHits);
00112 void Update(Bool_t purge=kTRUE);
00113 void ResetHistos();
00114
00115
00116
00117 void WriteToFile(TString file=0,Bool_t IsShared = kFALSE);
00118 TH1F *TofMult() { return tofmult; }
00119 TH2F *TofMultIO() { return tof_i_o_mult; }
00120 TH2F *TofCorr(Int_t i) { return tofcorr[i]; }
00121 TH1F *TofMap() { return tofmap; }
00122 TH1F *TofMapAdc0() { return tofmapadc0; }
00123 TH1F *TofMapAdc() { return tofmapadc; }
00124 TH1F *TofMapAdcP() { return tofmapadcp; }
00125 TH1F *TofMapAdcE() { return tofmapadce; }
00126
00127 TH1F *TofMapTdc0() { return tofmaptdc0; }
00128 TH1F *TofMapTdc() { return tofmaptdc; }
00129 TH1F *TofMapTdcP() { return tofmaptdcp; }
00130 TH1F *TofMapTdcE() { return tofmaptdce; }
00131 TH2F *TofMapAdcTdc(Int_t idx) { return tof_mapadctdc[idx]; }
00132 TH1F *TofMapMT() { return tofmapmt; }
00133 TH2F *TofAdcTdc(Int_t idx) { return tof_adc_tdc[idx]; }
00134 TH1F *TofAdcP(Int_t idx) { return tofadcp[idx]; }
00135 TH1F *TofAdcE(Int_t idx) { return tofadce[idx]; }
00136 TH1F *TofCrg(Int_t idx) { return tofcrg[idx]; }
00137 TH2F *TofAdc(Int_t idx) { return tofadc[idx]; }
00138 TH1F *TofZet(Int_t idx) { return tofzet[idx]; }
00139 TH1F *TofTdcP(Int_t idx) { return toftdcp[idx]; }
00140 TH1F *TofTdcE(Int_t idx) { return toftdce[idx]; }
00141 TH1F *TofTdf(Int_t idx) { return toftdf[idx]; }
00142 TH1F *TofTmn(Int_t idx) { return toftmn[idx]; }
00143 TH1F *TofTmnHW(Int_t idx) { return toftmn_hw[idx]; }
00144 TH2F *TofTdc(Int_t idx) { return toftdc[idx]; }
00145 void Add(TFndTofMon *tofmon);
00146
00147 ClassDef(TFndTofMon,1)
00148 };
00149
00150 #endif // FROOT_TFndTofMon
00151