00001 #ifndef LILinResp_h
00002 #define LILinResp_h
00003
00004 #include <TGraphErrors.h>
00005
00006 #include "Conventions/ElecType.h"
00007
00008 #include <iostream>
00009 #include <stdio.h>
00010 #include <math.h>
00011 #include <map>
00012 #include <vector>
00013 #include "Calibrator/CalVaLinearity.h"
00014 #include <MessageService/MsgService.h>
00015
00016
00017 class CalVaLinearity;
00018 class LILinResp {
00019
00020 public:
00021
00022 LILinResp();
00023 ~LILinResp();
00024
00025 Bool_t GetLinearity();
00026 void PrintMe();
00027 Bool_t FillGraphHG( const Float_t x,
00028 const Float_t xe,
00029 const Float_t y,
00030 const Float_t ye );
00031
00032 Bool_t FillGraphLG( const Float_t x,
00033 const Float_t xe,
00034 const Float_t y,
00035 const Float_t ye );
00036
00037 std::vector<Float_t>* GetX() { return &fX; }
00038 std::vector<Float_t>* GetX_e() { return &fX_error; }
00039 std::vector<Float_t>* GetResiduals() { return &fResidual; }
00040 std::vector<Float_t>* GetPMTResiduals() { return &fResidualPMT; }
00041
00042 TGraphErrors* resPlotHG_g;
00043 TGraphErrors* resPlotLG_g;
00044
00045
00046 Float_t slopeHG;
00047 Float_t interceptHG;
00048 Float_t slopeHG_e;
00049 Float_t interceptHG_e;
00050
00051 Float_t slopeLG;
00052 Float_t interceptLG;
00053 Float_t slopeLG_e;
00054 Float_t interceptLG_e;
00055
00056 Float_t gain;
00057 Float_t drift;
00058 Int_t led;
00059
00060 Int_t addressKey;
00061 Int_t entryHG;
00062 Int_t entryLG;
00063
00064 ElecType::Elec_t typeFEE;
00065
00066
00067 static CalVaLinearity* myCV;
00068
00069
00070
00071
00072 std::vector<Float_t> fX;
00073 std::vector<Float_t> fX_error;
00074 std::vector<Float_t> fResidual;
00075 std::vector<Float_t> fResidualPMT;
00076
00077
00078 static std::vector<Float_t> fXrefPINLG1;
00079 static std::vector<Float_t> fXrefPINLG2;
00080 static std::vector<Float_t> fXrefPINLG3;
00081 static std::vector<Float_t> fXrefPINLG4;
00082 static std::vector<Float_t> fXrefPINLG5;
00083 static std::vector<Float_t> fXrefPINLG6;
00084
00085 static std::vector<Float_t> fXrefPINHG1;
00086 static std::vector<Float_t> fXrefPINHG2;
00087 static std::vector<Float_t> fXrefPINHG3;
00088 static std::vector<Float_t> fXrefPINHG4;
00089 static std::vector<Float_t> fXrefPINHG5;
00090 static std::vector<Float_t> fXrefPINHG6;
00091 };
00092
00093 #endif