00001 #ifndef LIGainCurve_h
00002 #define LIGainCurve_h
00003
00004 #include <TTree.h>
00005 #include <TCanvas.h>
00006 #include <TFile.h>
00007 #include <TH2.h>
00008 #include <TProfile.h>
00009 #include <TROOT.h>
00010 #include <TError.h>
00011 #include <TStyle.h>
00012
00013 #include <stdio.h>
00014 #include <iostream>
00015 #include <math.h>
00016 #include <map>
00017 #include <string>
00018
00019 #include <LILinResp.h>
00020
00021 #include <MessageService/MsgService.h>
00022
00023 class LIGainCurve {
00024
00025 public :
00026
00027 LIGainCurve();
00028 ~LIGainCurve();
00029
00030 void ExecuteMe(Int_t nentries = -1);
00031 Bool_t LoadTreeLI();
00032 Bool_t GetData(Int_t nentries = -1);
00033 Bool_t ProcessData();
00034 void PlotData();
00035
00036 Int_t EncryptMeKey(const Int_t crate,
00037 const Int_t varc,
00038 const Int_t vmm,
00039 const Int_t vfb,
00040 const Int_t va,
00041 const Int_t channel);
00042
00043 Int_t EncryptMeKey(const Int_t crate,
00044 const Int_t master,
00045 const Int_t minder,
00046 const Int_t menu);
00047
00048
00049 static void CheckDBGain(const Bool_t answer) {fCheckDB = answer;}
00050 static Bool_t fCheckDB;
00051
00052
00053
00054
00055
00056 TTree* fInTree;
00057 TFile* fInFile;
00058 std::string fFileNameIn;
00059 std::string fFileNameOut;
00060
00061 TCanvas* fplotFile_c;
00062
00063
00064 std::map<Int_t,LILinResp*> mapLinResp;
00065
00066 TProfile* fResponseND_HG_p;
00067 TProfile* fResponseFD_HG_p;
00068 TProfile* fResponseND_LG_p;
00069 TProfile* fResponseFD_LG_p;
00070
00071 TProfile* fResidualFDPMT_p;
00072 TProfile* fResidualFD_p;
00073 TProfile* fResidualND_p;
00074 TProfile* fResidualFD300PMT_p;
00075 TProfile* fResidualFD300_p;
00076 TProfile* fResidualND300_p;
00077
00078 TProfile* fResidualFDADCPMT_p;
00079 TProfile* fResidualFDADC_p;
00080 TProfile* fResidualNDADC_p;
00081
00082 TProfile* fResponseND_LG1_p;
00083 TProfile* fResponseFD_LG1_p;
00084 TProfile* fResponseND_LG2_p;
00085 TProfile* fResponseFD_LG2_p;
00086 TProfile* fResponseND_LG3_p;
00087 TProfile* fResponseFD_LG3_p;
00088 TProfile* fResponseND_LG4_p;
00089 TProfile* fResponseFD_LG4_p;
00090 TProfile* fResponseND_LG5_p;
00091 TProfile* fResponseFD_LG5_p;
00092 TProfile* fResponseND_LG6_p;
00093 TProfile* fResponseFD_LG6_p;
00094
00095 TProfile* fResponseND_HG1_p;
00096 TProfile* fResponseFD_HG1_p;
00097 TProfile* fResponseND_HG2_p;
00098 TProfile* fResponseFD_HG2_p;
00099 TProfile* fResponseND_HG3_p;
00100 TProfile* fResponseFD_HG3_p;
00101 TProfile* fResponseND_HG4_p;
00102 TProfile* fResponseFD_HG4_p;
00103 TProfile* fResponseND_HG5_p;
00104 TProfile* fResponseFD_HG5_p;
00105 TProfile* fResponseND_HG6_p;
00106 TProfile* fResponseFD_HG6_p;
00107
00108
00109 TProfile* fResVsGainND_p;
00110 TProfile* fResVsGainFD_p;
00111
00112 TH2* fResponseND_HG_h;
00113 TH2* fResponseFD_HG_h;
00114 TH2* fResponseND_LG_h;
00115 TH2* fResponseFD_LG_h;
00116 TH2* fResidualND_h;
00117 TH2* fResidualFD_h;
00118 TH2* fResidualFDPMT_h;
00119
00120
00121 TProfile* fResidualN_F_p;
00122 TH2F* fResidualN_F_h;
00123
00124 TH1F* fSlopeFD_HG_h;
00125 TH1F* fSlopeND_HG_h;
00126 TH1F* fInterceptFD_HG_h;
00127 TH1F* fInterceptND_HG_h;
00128
00129 TH1F* fSlopeFD_LG_h;
00130 TH1F* fSlopeND_LG_h;
00131 TH1F* fInterceptFD_LG_h;
00132 TH1F* fInterceptND_LG_h;
00133
00134
00135
00136
00137
00138
00139
00140 Int_t channel;
00141 Int_t va;
00142 Int_t correlatedHit;
00143 Int_t crate;
00144
00145 Int_t eastWest;
00146 Int_t elecType;
00147
00148
00149 Int_t menu;
00150
00151 Int_t led;
00152 Int_t master;
00153 Float_t mean;
00154 Int_t minder;
00155 Int_t nearLed;
00156 Int_t nearPulserBox;
00157 Int_t numEntries;
00158
00159
00160
00161 Int_t pinGain;
00162
00163
00164 Int_t plane;
00165 Int_t pulseHeight;
00166 Int_t pulserBox;
00167
00168 Int_t pulseWidth;
00169
00170
00171 Int_t readoutType;
00172 Float_t rms;
00173
00174
00175
00176 Int_t strip;
00177 Int_t stripEnd;
00178
00179 Int_t timestamp;
00180 Int_t varc;
00181 Int_t vfb;
00182 Int_t vmm;
00183
00184 };
00185
00186 #endif