00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00017
00018 #ifndef LIRUN_H
00019 #define LIRUN_H
00020
00021 #include <vector>
00022 #include <string>
00023
00024 #include "LISummary/LILookup.h"
00025
00026 class LIRun : public LILookup
00027 {
00028
00029 public:
00030
00031
00032 typedef enum ELIRunType {
00033 kUnknown = 0,
00034 kFullCalib = 1,
00035 kDriftCalib = 2,
00036 kGainCurve = kFullCalib,
00037 kDriftPoint = kDriftCalib
00038 } LIRunType_t;
00039
00040 LIRun();
00041 LIRun(Int_t pulserBox,Int_t led,LIRunType_t LIRunType,
00042 Detector::Detector_t detectorType=
00043 Detector::kUnknown);
00044 ~LIRun();
00045
00046
00047 void AddPoint(Double_t Ph,Double_t Adc,
00048 Double_t Pin=-1,Double_t Pin2=-1,
00049 Double_t AdcF=-1,
00050 Double_t AdcLow=-1,Double_t AdcHigh=-1,
00051 Double_t AdcLowF=-1,Double_t AdcHighF=-1);
00052 void SetLIInfo(Int_t pulserBox,Int_t led,LIRunType_t LIRunType);
00053 void SetHighLowPhPoints(Double_t highestPh,Double_t lowestPh);
00054 void SetHighLowPinPoints(Double_t highestPin,Double_t lowestPin);
00055
00056
00057 std::vector<Double_t> GetAdc();
00058 Double_t GetAdc(UInt_t i);
00059 std::vector<Double_t> GetAdcF();
00060 std::vector<Double_t> GetAdcHigh();
00061 std::vector<Double_t> GetAdcHighF();
00062 std::vector<Double_t> GetAdcLow();
00063 std::vector<Double_t> GetAdcLowF();
00064 Detector::Detector_t GetDetector();
00065 Int_t GetLed();
00066 Double_t GetMaxAdc();
00067 Double_t GetMaxAdcF();
00068 Double_t GetMaxPin();
00069 Double_t GetMaxPin(Int_t pin1or2);
00070 Double_t GetMinAdc();
00071 Double_t GetMinAdcF();
00072 Int_t GetPb();
00073 std::vector<Double_t> GetPin(Int_t pin1or2);
00074 Double_t GetPin(Int_t pin1or2,UInt_t i);
00075 std::vector<Double_t> GetPh();
00076 Double_t GetPh(UInt_t i);
00077 std::string GetRunTypeAsString();
00078 void PrintAll();
00079 void PrintConfig(LIRunType_t LIRunType);
00080
00081 private:
00082
00083
00084 void InitialiseVariables();
00085
00086
00087
00088
00089
00090 std::vector<Double_t> fAdc;
00091 std::vector<Double_t> fAdcF;
00092 std::vector<Double_t> fAdcHigh;
00093 std::vector<Double_t> fAdcHighF;
00094 std::vector<Double_t> fAdcLow;
00095 std::vector<Double_t> fAdcLowF;
00096 std::vector<Double_t> fPin;
00097 std::vector<Double_t> fPin2;
00098 std::vector<Double_t> fPh;
00099
00100 Detector::Detector_t fDetector;
00101 Int_t fLed;
00102 Double_t fHighestPh;
00103 Double_t fHighestPin;
00104 LIRunType_t fLIRunType;
00105 Double_t fLowestPh;
00106 Double_t fLowestPin;
00107 Double_t fMaxPin;
00108 Double_t fMaxPin2;
00109 Double_t fMinAdc;
00110 Double_t fMaxAdc;
00111 Double_t fMinAdcF;
00112 Double_t fMaxAdcF;
00113 Int_t fPulserBox;
00114 std::string fS;
00115
00116 ClassDef(LIRun,0)
00117 };
00118
00119 #endif // LIRUN_H