Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

LIRun.h

Go to the documentation of this file.
00001 
00002 
00003 // Program name: LIRun.h                        
00004 //                                                                     
00005 // Package: LISummary                                         
00006 //                                                                    
00007 // Coded by Jeff Hartnell Feb/2003          
00008 //                                                                    
00009 // Purpose: An object to store all the relevant parameters for a 
00010 //          light injection run. You can use it at the level you
00011 //          please, you could have an LIRun for each stripend, each
00012 //          led or even the whole detector. It's up to you what values
00013 //          you give it. 
00014 //                                                                    
00015 // Contact: jeffrey.hartnell@physics.ox.ac.uk                         
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   //LI run type codes.
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   //methods that do modify the object's state  
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   //methods that don't modify the object's state
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();//returns largest
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   //methods that do modify the object's state  
00084   void InitialiseVariables();
00085 
00086   //methods that don't modify the object's state  
00087   //none 
00088 
00089   //data members
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;//ph at highest required adc
00103   Double_t fHighestPin;//pin adc at highest required adc
00104   LIRunType_t fLIRunType;
00105   Double_t fLowestPh;//ph at lowest required adc
00106   Double_t fLowestPin;//pin adc at lowest required adc
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

Generated on Mon Feb 15 11:06:52 2010 for loon by  doxygen 1.3.9.1