ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/SFrameTools/include/LuminosityHandler.h
Revision: 1.3
Committed: Wed Jun 6 08:35:10 2012 UTC (12 years, 11 months ago) by rkogler
Content type: text/plain
Branch: MAIN
CVS Tags: Makefile, v1-00, Feb-15-2013-v1, Feb-14-2013, Feb-07-2013-v1, Jan-17-2013-v2, Jan-17-2013-v1, Jan-16-2012-v1, Jan-09-2012-v2, Jan-09-2012-v1, Dec-26-2012-v1, Dec-20-2012-v1, Dec-17-2012-v1, Nov-30-2012-v2, Nov-30-2012-v1, HEAD
Changes since 1.2: +1 -2 lines
Log Message:
small update

File Contents

# User Rev Content
1 peiffer 1.1 /**********************************************************************************
2     * @Project: SFrame - ROOT-based analysis framework
3     * @Package: SFrame
4     * @Class : LuminosityHandler
5     *
6     * @brief : This class contains all luminosity information and
7     * good-runs-list evaluations. The luminosity from data are
8     * computed via an input luminosity file and xml good-runs-list.
9     *
10     * @author : Martin Goebel (martin.goebel@desy.de)
11     *
12     **********************************************************************************/
13    
14     #ifndef SFRAME_LuminosityHandler_H
15     #define SFRAME_LuminosityHandler_H
16    
17     // STL include(s):
18     #include <iostream>
19     #include <iomanip>
20     #include <fstream>
21     #include <string>
22     #include <map>
23    
24     // ROOT include(s):
25     #include "TNamed.h"
26     #include "TFile.h"
27     #include "TTree.h"
28     #include "TH1F.h"
29     #include "TRandom2.h"
30    
31     // Local include(s)
32 rkogler 1.3 #include "include/SLogger.h"
33 peiffer 1.1 #include "LuminosityUtils.h"
34    
35     using namespace LuminosityUtils;
36    
37     using std::string;
38     using std::map;
39     using std::make_pair;
40     using std::cout;
41     using std::endl;
42     using std::setw;
43    
44     class LuminosityHandler : public TNamed {
45    
46     public:
47    
48     LuminosityHandler( string name = "LuminosityHandler" );
49     ~LuminosityHandler();
50    
51     // Initialise
52     bool Initialise();
53    
54     // Setter
55     //void SetGoodRunsList ( string grlName ) { m_grlName = grlName; }
56     void SetGRLPath ( string grlPath ) { m_grlPath = grlPath; }
57     void SetLumiFileName ( string lumiFileName ) { m_lumiFileName = lumiFileName; }
58     void SetTrigger ( string trigger ) { m_triggerName = trigger; }
59     void SetIntLumiPerBin ( float intLumiPerBin ) { m_intLumiPerBin = intLumiPerBin; } // in (pb)^-1
60    
61     // Getter
62     //string GetGoodRunsLists ( ) { return m_grlName; }
63     //Root::TGoodRunsList* GetTGoodRunsLists ( ) { return &m_grl; }
64     string GetLumiFile ( ) { return m_lumiFileName; }
65     double GetTargetLumi ( ) { return m_targetLumi; } // in (pb)^-1
66     int GetNLumiBins ( ) { return m_NBins; }
67     int GetLumiBin ( UInt_t runNr, UInt_t lbNr );
68     double GetIntLumiInBin ( int bin );
69     RunNr_LbNr GetStartRunNrLbNr( int bin );
70     RunNr_LbNr GetEndRunNrLbNr ( int bin );
71     double GetIntLumiInLb ( UInt_t runNr, UInt_t lbNr );
72     double GetInstLumiPerLb ( UInt_t runNr, UInt_t lbNr ); // in 1e31 cm-2 s-1 = ub-1 s-1
73     double GetIntLumiInRange( UInt_t runNr1, UInt_t runNr2 );
74     double GetL1Prescale( UInt_t runNr, UInt_t lbNr );
75     double GetHLTPrescale( UInt_t runNr, UInt_t lbNr );
76    
77     TH1F* GetLumiPerLumiBinHist();
78     void DumpLumiInfoIntoTxtFile();
79     TTree* GetTreeLuminosityPerRun();
80     UInt_t GetRandomRunNr();
81    
82     // does lumiblock pass good runs list?
83     bool PassGoodRunsList( UInt_t runNr, UInt_t lbNr );
84    
85     bool IsLumiCalc() { return m_isLumiCalc; }
86    
87     void PrintUsedSetup();
88    
89     private:
90    
91     // logger
92     mutable SLogger m_logger;
93    
94     // is lumi information available
95     bool m_isLumiCalc;
96    
97     // general Luminosity plot
98     TH1F *m_lumiHist;
99    
100     // dump to txt file only once
101     bool m_lumiTxtFirst;
102    
103     // member variables
104     map< RunNr_LbNr, double > m_mapLbNr2IntLumi;
105     map< RunNr_LbNr, double > m_mapLbNr2InstLumi;
106     map< RunNr_LbNr, int > m_mapLbNr2LumiBin;
107     map< int, LumiBinInfo* > m_mapLumiBin2Info;
108     map< double, UInt_t > m_mapIntLumiRunNr;
109     map< RunNr_LbNr, double > m_mapLbNr2L1PS;
110     map< RunNr_LbNr, double > m_mapLbNr2HLTPS;
111    
112     //string m_grlName;
113     string m_grlPath;
114     string m_lumiFileName;
115     string m_triggerName;
116    
117     double m_intLumiPerBin;
118     double m_targetLumi;
119    
120     int m_NBins;
121    
122     // pointer to GoodRunsList
123     //Root::TGoodRunsList m_grl;
124    
125     ClassDef(LuminosityHandler,1)
126     };
127    
128    
129     #endif // SFRAME_LuminosityHandler_H
130