CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1TBPTX.h
Go to the documentation of this file.
1 #ifndef L1TBPTX_H
2 #define L1TBPTX_H
3 
4 /*
5  * \file L1TBPTX.h
6  *
7  * $Date: 2012/08/20 12:10:13 $
8  * $Revision: 1.1 $
9  * \author J. Pela
10  *
11 */
12 
13 // system include files
14 #include <memory>
15 #include <unistd.h>
16 
17 // user include files
24 
26 
31 
33 
34 #include <TString.h>
35 
36 #include <iostream>
37 #include <fstream>
38 #include <string>
39 #include <vector>
40 
41 class RateBuffer{
42 
43  public:
44 
45  void fill (int ls,bool isAlgo,int bit,double rate){
46  if(isAlgo){m_lsAlgoRate[std::pair<int,int>(ls,bit)]=rate;}
47  else {m_lsTechRate[std::pair<int,int>(ls,bit)]=rate;}
48  }
49  double getLSRate (int ls,bool isAlgo,int bit,double rate){
50  if(isAlgo){return m_lsAlgoRate[std::pair<int,int>(ls,bit)];}
51  else {return m_lsTechRate[std::pair<int,int>(ls,bit)];}
52  }
53  double getLSAlgoRate(int ls,int bit,double rate){
54  return m_lsAlgoRate[std::pair<int,int>(ls,bit)];
55  }
56  double getLSTechRate(int ls,int bit,double rate){
57  return m_lsTechRate[std::pair<int,int>(ls,bit)];
58  }
59 
60  private:
61 
62  std::map<std::pair<int,int>,double> m_lsAlgoRate;
63  std::map<std::pair<int,int>,double> m_lsTechRate;
64 
65 };
66 
67 class L1TBPTX : public edm::EDAnalyzer {
68 
69  public:
70 
71  enum BeamMode{
72  NOMODE=1,
73  SETUP=2,
78  RAMP=7,
81  ADJUST=10,
82  STABLE=11,
87  INJDUMP=16,
89  ABORT=18,
90  CYCLING=19,
91  WBDUMP=20,
92  NOBEAM=21
93  };
94 
95  enum Errors{
96  UNKNOWN = 1,
103  };
104 
105  public:
106 
107  L1TBPTX(const edm::ParameterSet& ps); // Constructor
108  virtual ~L1TBPTX(); // Destructor
109 
110  protected:
111 
112  void analyze (const edm::Event& e, const edm::EventSetup& c); // Analyze
113  void beginJob(); // BeginJob
114  void endJob (void); // EndJob
115  void beginRun(const edm::Run& run, const edm::EventSetup& iSetup);
116  void endRun (const edm::Run& run, const edm::EventSetup& iSetup);
117 
118  virtual void beginLuminosityBlock(edm::LuminosityBlock const& lumiBlock, edm::EventSetup const& c);
119  virtual void endLuminosityBlock (edm::LuminosityBlock const& lumiBlock, edm::EventSetup const& c);
120 
121 
122  // Private Methods
123  private:
124 
125  void getBeamConfOMDS();
126  void doFractionInSync(bool iForce=false, bool iBad=false);
127  void certifyLSBlock (std::string iTrigger, int iInitLs, int iEndLs ,float iValue);
128 
129  // Variables
130  private:
131 
132  DQMStore * dbe; // The DQM Service Handle
133 
135  std::vector<edm::ParameterSet> m_monitorBits;
136  std::vector<edm::ParameterSet> m_monitorRates;
137  std::string m_outputFile; // file name for ROOT ouput
138 
139  // bool
140  bool m_verbose;
143 
144  // Int
145  std::map<TString,int> m_effNumerator;
146  std::map<TString,int> m_effDenominator;
147  std::map<TString,int> m_missFireNumerator;
148  std::map<TString,int> m_missFireDenominator;
149 
152  unsigned int m_currentLS; // Current LS
153  unsigned int m_currentGTLS;
154  //unsigned int m_eventLS;
155  unsigned int m_lhcFill; //
156 
157  // Vectors
158  BeamConfiguration m_beamConfig; // Current Bunch Structure
159  std::vector< std::pair<int,int> > m_selAlgoBit;
160  std::vector< std::pair<int,int> > m_selTechBit;
161 
162  // Const Vectors
163  const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
164  const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
165 
166  // Maps
167  std::map<int,TString> m_algoBit_Alias;
168  std::map<int,TString> m_techBit_Alias;
169 
170 
171  std::map<TString,MonitorElement*> m_meAlgoEfficiency;
172  std::map<TString,MonitorElement*> m_meAlgoMissFire;
173  std::map<TString,MonitorElement*> m_meTechEfficiency;
174  std::map<TString,MonitorElement*> m_meTechMissFire;
175 
176 
177  std::map<std::pair<bool,int>,MonitorElement*> m_meRate;
178  std::map<std::pair<bool,int>,double> m_l1Rate;
179 
180  // MonitorElement
182 
183  // Input tags
184  edm::InputTag m_scalersSource; // Where to get L1 Scalers
187 
188 };
189 
190 #endif
std::map< TString, MonitorElement * > m_meTechEfficiency
Definition: L1TBPTX.h:173
void analyze(const edm::Event &e, const edm::EventSetup &c)
Definition: L1TBPTX.cc:352
unsigned int m_lhcFill
Definition: L1TBPTX.h:155
void doFractionInSync(bool iForce=false, bool iBad=false)
Definition: L1TBPTX.cc:569
virtual void endLuminosityBlock(edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c)
Definition: L1TBPTX.cc:268
double getLSTechRate(int ls, int bit, double rate)
Definition: L1TBPTX.h:56
std::map< TString, MonitorElement * > m_meAlgoEfficiency
Definition: L1TBPTX.h:171
std::string m_outputFile
Definition: L1TBPTX.h:137
edm::InputTag m_scalersSource
Definition: L1TBPTX.h:184
std::map< std::pair< int, int >, double > m_lsAlgoRate
Definition: L1TBPTX.h:62
virtual void beginLuminosityBlock(edm::LuminosityBlock const &lumiBlock, edm::EventSetup const &c)
Definition: L1TBPTX.cc:236
unsigned int m_currentLS
Definition: L1TBPTX.h:152
std::vector< std::pair< int, int > > m_selAlgoBit
Definition: L1TBPTX.h:159
L1TBPTX(const edm::ParameterSet &ps)
Definition: L1TBPTX.cc:36
edm::InputTag m_l1GtDataDaqInputTag
Definition: L1TBPTX.h:186
BeamConfiguration m_beamConfig
Definition: L1TBPTX.h:158
std::map< std::pair< bool, int >, MonitorElement * > m_meRate
Definition: L1TBPTX.h:177
std::vector< std::pair< int, int > > m_selTechBit
Definition: L1TBPTX.h:160
BeamMode
Definition: L1TBPTX.h:71
bool * m_processedLS
Definition: L1TBPTX.h:142
void beginJob()
Definition: L1TBPTX.cc:81
virtual ~L1TBPTX()
Definition: L1TBPTX.cc:77
double getLSAlgoRate(int ls, int bit, double rate)
Definition: L1TBPTX.h:53
DQMStore * dbe
Definition: L1TBPTX.h:132
std::map< TString, MonitorElement * > m_meAlgoMissFire
Definition: L1TBPTX.h:172
bool m_verbose
Definition: L1TBPTX.h:140
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
Definition: L1TBPTX.h:164
int m_refPrescaleSet
Definition: L1TBPTX.h:150
std::map< TString, int > m_effDenominator
Definition: L1TBPTX.h:146
edm::ParameterSet m_parameters
Definition: L1TBPTX.h:134
int m_currentPrescalesIndex
Definition: L1TBPTX.h:151
double getLSRate(int ls, bool isAlgo, int bit, double rate)
Definition: L1TBPTX.h:49
void certifyLSBlock(std::string iTrigger, int iInitLs, int iEndLs, float iValue)
Definition: L1TBPTX.cc:582
std::vector< edm::ParameterSet > m_monitorRates
Definition: L1TBPTX.h:136
bool m_currentLSValid
Definition: L1TBPTX.h:141
void endRun(const edm::Run &run, const edm::EventSetup &iSetup)
Definition: L1TBPTX.cc:344
std::map< TString, int > m_missFireDenominator
Definition: L1TBPTX.h:148
std::map< int, TString > m_techBit_Alias
Definition: L1TBPTX.h:168
double rate(double x)
Definition: Constants.cc:3
std::vector< edm::ParameterSet > m_monitorBits
Definition: L1TBPTX.h:135
edm::InputTag m_l1GtEvmSource
Definition: L1TBPTX.h:185
unsigned int m_currentGTLS
Definition: L1TBPTX.h:153
std::map< TString, int > m_effNumerator
Definition: L1TBPTX.h:145
std::map< TString, MonitorElement * > m_meTechMissFire
Definition: L1TBPTX.h:174
std::map< std::pair< bool, int >, double > m_l1Rate
Definition: L1TBPTX.h:178
Errors
Definition: L1TBPTX.h:95
void getBeamConfOMDS()
Definition: L1TBPTX.cc:498
std::map< int, TString > m_algoBit_Alias
Definition: L1TBPTX.h:167
void fill(int ls, bool isAlgo, int bit, double rate)
Definition: L1TBPTX.h:45
void beginRun(const edm::Run &run, const edm::EventSetup &iSetup)
BeginRun.
Definition: L1TBPTX.cc:112
MonitorElement * m_ErrorMonitor
Definition: L1TBPTX.h:181
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
Definition: L1TBPTX.h:163
void endJob(void)
Definition: L1TBPTX.cc:98
std::map< std::pair< int, int >, double > m_lsTechRate
Definition: L1TBPTX.h:63
Definition: Run.h:36
std::map< TString, int > m_missFireNumerator
Definition: L1TBPTX.h:147