00001 00002 // Class TMarLumi 00003 // 00004 // Author : F. Cassol Brunner 00005 // Created : 02/2002 00006 // Last update: $Date: 2005/06/10 14:06:23 $ 00007 // by: $Author: cassol $ 00008 // Comment: Contains definition of event class 00010 00011 #ifndef __TMARLUMI 00012 #define __TMARLUMI 00013 00014 #include <iostream> 00015 #include <fstream> 00016 00017 #include <cstdio> 00018 00019 #include <string> 00020 #include <map> 00021 #include <set> 00022 #include <TTree.h> 00023 #include <TRandom.h> 00024 #include <TH1.h> 00025 #include "H1AnaTools/H1RunList.h" 00026 #include "H1Geom/H1DetectorStatus.h" 00027 00028 00029 #include <Marana/TTools.h> 00030 00031 using namespace std; 00032 00033 class TMarLumi : public TObject 00034 { 00036 // class for lumi/run number 00038 00039 public: 00040 Int_t RunNumber; 00041 Int_t RunNumberOld; 00042 Float_t LumiPerRun; //Lumi per run in nb-1 00043 Float_t TotalLumi; //Integrated Lumi from the begining of the jobs in nb-1 00044 Float_t LumiPerRunOld; //Lumi per run in nb-1 in previous run 00045 Float_t TotalLumiOld; //Integrated Lumi from the begining of the jobs in nb-1 00046 map<Int_t,Float_t, less<int> > mapLumiPerRun; 00047 map<Int_t,Float_t, less<int> > mapPolarPerRun; 00048 00049 set<Int_t> setBadRuns; 00050 00051 00052 H1RunList* runList; 00053 H1DetectorStatus *detStatus; 00054 00055 TRandom* rpolar; 00056 // The "//!" makes this pointer transient and so avoids rootcint 00057 // error messages 00058 // see http://root.cern.ch/root/roottalk/roottalk03/2014.html 00059 Double_t *polar_integral; 00060 00061 Bool_t IsDataL(Int_t& irun); 00062 Bool_t IsDataR(Int_t& irun); 00063 00064 00065 Float_t GetPolar(); 00066 TMarLumi(string,string ); 00067 ~TMarLumi(); 00068 00069 Bool_t Update(Int_t nrun); 00070 00071 ClassDef(TMarLumi,1) // Make class known to root 00072 00073 00074 }; 00075 00076 #endif 00077