CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
L1Scalers Class Reference

#include <L1Scalers.h>

Inheritance diagram for L1Scalers:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 
void beginJob (void)
 BeginJob. More...
 
void beginRun (const edm::Run &run, const edm::EventSetup &c)
 BeginRun. More...
 
void endJob (void)
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 
void endRun (const edm::Run &run, const edm::EventSetup &c)
 EndRun. More...
 
 L1Scalers (const edm::ParameterSet &ps)
 Constructors. More...
 
virtual ~L1Scalers ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

std::vector< MonitorElement * > algoBxDiff_
 
std::vector< MonitorElement * > algoBxDiffLumi_
 
std::vector< unsigned int > algoSelected_
 
MonitorElementbxNum_
 
MonitorElementcscBxDiff_
 
MonitorElementcscBxDiffLumi_
 
DQMStoredbe_
 
unsigned int denomBit_
 
bool denomIsTech_
 
MonitorElementdtBxDiff_
 
MonitorElementdtBxDiffLumi_
 
std::vector< int > earliestAlgo_
 
int earliestDenom_
 
std::vector< int > earliestTech_
 
edm::InputTag fedRawCollection_
 
unsigned int fedStart_
 
unsigned int fedStop_
 
std::string folderName_
 
edm::InputTag HcalRecHitCollection_
 
MonitorElementl1AlgoCounter_
 
MonitorElementl1Correlations_
 
edm::InputTag l1GtDataSource_
 
MonitorElementl1scalers_
 
MonitorElementl1scalersBx_
 
MonitorElementl1techScalers_
 
MonitorElementl1techScalersBx_
 
MonitorElementl1TtCounter_
 
std::vector< int > maskedList_
 
int nev_
 
MonitorElementnLumiBlock_
 
unsigned int rateAlgoCounter_
 
unsigned int rateTtCounter_
 
MonitorElementrpcbBxDiff_
 
MonitorElementrpcbBxDiffLumi_
 
MonitorElementrpcfBxDiff_
 
MonitorElementrpcfBxDiffLumi_
 
std::vector< MonitorElement * > techBxDiff_
 
std::vector< MonitorElement * > techBxDiffLumi_
 
std::vector< unsigned int > techSelected_
 
unsigned int tfBit_
 
bool tfIsTech_
 
unsigned int threshold_
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 16 of file L1Scalers.h.

Constructor & Destructor Documentation

L1Scalers::L1Scalers ( const edm::ParameterSet ps)

Constructors.

Definition at line 42 of file L1Scalers.cc.

References LogDebug.

42  :
43  dbe_(0), nev_(0),
44  verbose_(ps.getUntrackedParameter < bool > ("verbose", false)),
45  l1GtDataSource_( ps.getParameter< edm::InputTag >("l1GtData")),
46  denomIsTech_(ps.getUntrackedParameter <bool> ("denomIsTech", true)),
47  denomBit_(ps.getUntrackedParameter <unsigned int> ("denomBit", 40)),
48  tfIsTech_(ps.getUntrackedParameter <bool> ("tfIsTech", true)),
49  tfBit_(ps.getUntrackedParameter <unsigned int> ("tfBit", 41)),
50  algoSelected_(ps.getUntrackedParameter<std::vector<unsigned int> >("algoMonitorBits", std::vector<unsigned int>())),
51  techSelected_(ps.getUntrackedParameter<std::vector<unsigned int> >("techMonitorBits", std::vector<unsigned int>())),
53  std::string("L1T/L1Scalers_EvF"))),
54  l1scalers_(0),
55  l1techScalers_(0),
56  l1Correlations_(0),
57  bxNum_(0),
58  l1scalersBx_(0),
60 // pixFedSizeBx_(0),
61 // hfEnergyMaxTowerBx_(0),
62  nLumiBlock_(0),
63  l1AlgoCounter_(0),
64  l1TtCounter_(0),
65 // pixFedSize_(0),
66 // hfEnergy_(0),
67  fedStart_(ps.getUntrackedParameter<unsigned int>("firstFED", 0)),
68  fedStop_(ps.getUntrackedParameter<unsigned int>("lastFED", 931)),
69  rateAlgoCounter_(0),
70  rateTtCounter_(0),
71  fedRawCollection_(ps.getParameter<edm::InputTag>("fedRawData")),
72  maskedList_(ps.getUntrackedParameter<std::vector<int> >("maskedChannels", std::vector<int>())), //this is using the ashed index
73  HcalRecHitCollection_(ps.getParameter<edm::InputTag>("HFRecHitCollection"))
74 {
75  LogDebug("Status") << "constructor" ;
76 }
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool tfIsTech_
Definition: L1Scalers.h:56
MonitorElement * l1scalers_
Definition: L1Scalers.h:62
bool verbose_
Definition: L1Scalers.h:51
edm::InputTag l1GtDataSource_
Definition: L1Scalers.h:52
std::string folderName_
Definition: L1Scalers.h:61
unsigned int fedStop_
Definition: L1Scalers.h:98
edm::InputTag HcalRecHitCollection_
Definition: L1Scalers.h:107
edm::InputTag fedRawCollection_
Definition: L1Scalers.h:104
bool denomIsTech_
Definition: L1Scalers.h:54
MonitorElement * l1techScalers_
Definition: L1Scalers.h:63
MonitorElement * l1scalersBx_
Definition: L1Scalers.h:69
int nev_
Definition: L1Scalers.h:49
unsigned int fedStart_
Definition: L1Scalers.h:98
MonitorElement * l1TtCounter_
Definition: L1Scalers.h:77
DQMStore * dbe_
Definition: L1Scalers.h:48
std::vector< unsigned int > algoSelected_
Definition: L1Scalers.h:58
std::vector< int > maskedList_
Definition: L1Scalers.h:106
MonitorElement * l1Correlations_
Definition: L1Scalers.h:64
std::vector< unsigned int > techSelected_
Definition: L1Scalers.h:59
unsigned int rateAlgoCounter_
Definition: L1Scalers.h:100
MonitorElement * nLumiBlock_
Definition: L1Scalers.h:75
unsigned int tfBit_
Definition: L1Scalers.h:57
MonitorElement * bxNum_
Definition: L1Scalers.h:65
MonitorElement * l1techScalersBx_
Definition: L1Scalers.h:70
MonitorElement * l1AlgoCounter_
Definition: L1Scalers.h:76
unsigned int denomBit_
Definition: L1Scalers.h:55
unsigned int rateTtCounter_
Definition: L1Scalers.h:101
virtual L1Scalers::~L1Scalers ( )
inlinevirtual

Destructor.

Definition at line 23 of file L1Scalers.h.

23 {};

Member Function Documentation

void L1Scalers::analyze ( const edm::Event e,
const edm::EventSetup c 
)
virtual

empty DecisionWord

Implements edm::EDAnalyzer.

Definition at line 183 of file L1Scalers.cc.

References algoBxDiff_, algoBxDiffLumi_, algoSelected_, begin, L1GtfeWord::bxNr(), bxNum_, cscBxDiff_, cscBxDiffLumi_, denomBit_, denomIsTech_, diffTreeTool::diff, dtBxDiff_, dtBxDiffLumi_, earliestAlgo_, earliestDenom_, earliestTech_, MonitorElement::Fill(), edm::Event::getByLabel(), L1MuGMTReadoutCollection::getRecords(), i, edm::HandleBase::isValid(), j, l1AlgoCounter_, l1Correlations_, l1GtDataSource_, l1scalers_, l1scalersBx_, l1techScalers_, l1techScalersBx_, l1TtCounter_, edm::InputTag::label(), LogDebug, edm::EventBase::luminosityBlock(), nev_, edm::Handle< T >::product(), rateAlgoCounter_, rateTtCounter_, rpcbBxDiff_, rpcbBxDiffLumi_, rpcfBxDiff_, rpcfBxDiffLumi_, edmStreamStallGrapher::t, techBxDiff_, techBxDiffLumi_, techSelected_, tfBit_, and tfIsTech_.

184 {
185  nev_++;
186 
187  LogDebug("Status") << "L1Scalers::analyze event " << nev_ ;
188 
189  // int myGTFEbx = -1;
190  // get Global Trigger decision and the decision word
191  // these are locally derived
193  bool t = e.getByLabel(l1GtDataSource_,gtRecord);
194 
195  if ( ! t ) {
196  LogDebug("Product") << "can't find L1GlobalTriggerReadoutRecord "
197  << "with label " << l1GtDataSource_.label() ;
198  }
199  else {
200 
201  // DEBUG
202  //gtRecord->print(std::cout);
203  // DEBUG
204 
205  L1GtfeWord gtfeWord = gtRecord->gtfeWord();
206  int gtfeBx = gtfeWord.bxNr();
207  bxNum_->Fill(gtfeBx);
208  // myGTFEbx = gtfeBx;
209 
210  bool tfBitGood = false;
211 
212  // First, the default
213  // vector of bool
214  for(int iebx=0; iebx<=4; iebx++) {
215 
216  //Algorithm Bits
217  DecisionWord gtDecisionWord = gtRecord->decisionWord(iebx-2);
218  // DecisionWord gtDecisionWord = gtRecord->decisionWord();
219  if ( ! gtDecisionWord.empty() ) { // if board not there this is zero
220  // loop over dec. bit to get total rate (no overlap)
221  for ( uint i = 0; i < gtDecisionWord.size(); ++i ) {
222  if ( gtDecisionWord[i] ) {
225  break;
226  }
227  }
228  // loop over decision bits
229  for ( uint i = 0; i < gtDecisionWord.size(); ++i ) {
230  if ( gtDecisionWord[i] ) {
231  l1scalers_->Fill(i);
232  l1scalersBx_->Fill(gtfeBx-2+iebx,i);
233  for ( uint j = i + 1; j < gtDecisionWord.size(); ++j ) {
234  if ( gtDecisionWord[j] ) {
235  l1Correlations_->Fill(i,j);
236  l1Correlations_->Fill(j,i);
237  }
238  }
239  }
240  }
241  }
242 
243 
244  // loop over technical triggers
245  // vector of bool again.
246  TechnicalTriggerWord tw = gtRecord->technicalTriggerWord(iebx-2);
247  // TechnicalTriggerWord tw = gtRecord->technicalTriggerWord();
248  if ( ! tw.empty() ) {
249  // loop over dec. bit to get total rate (no overlap)
250  for ( uint i = 0; i < tw.size(); ++i ) {
251  if ( tw[i] ) {
252  rateTtCounter_++;
254  break;
255  }
256  }
257  for ( uint i = 0; i < tw.size(); ++i ) {
258  if ( tw[i] ) {
259  l1techScalers_->Fill(i);
260  l1techScalersBx_->Fill(gtfeBx-2+iebx, i);
261  }
262  }
263 
264  // check if bit used to filter timing plots fired in this event
265  // (anywhere in the bx window)
266  if(tfIsTech_){
267  if(tfBit_ < tw.size()){
268  if( tw[tfBit_] ) tfBitGood = true;
269  }
270  }
271  } // ! tw.empty
272 
273  }//bx
274 
275 
276  //timing plots
277  earliestDenom_ = 9;
278  earliestAlgo_.clear();
279  earliestTech_.clear();
280  for(uint i=0; i < techSelected_.size(); i++) earliestTech_.push_back(9);
281  for(uint i=0; i < algoSelected_.size(); i++) earliestAlgo_.push_back(9);
282 
283  //GMT information
285  e.getByLabel(l1GtDataSource_,gmtCollection);
286 
287 
288  if (!gmtCollection.isValid()) {
289  edm::LogInfo("DataNotFound") << "can't find L1MuGMTReadoutCollection with label "
290  << l1GtDataSource_.label() ;
291  }
292 
293  // remember the bx of 1st candidate of each system (9=none)
294  int bx1st[4] = {9, 9, 9, 9};
295 
296  if(tfBitGood){//to avoid single BSC hits
297 
298  for(int iebx=0; iebx<=4; iebx++) {
299  TechnicalTriggerWord tw = gtRecord->technicalTriggerWord(iebx-2);
300  DecisionWord gtDecisionWord = gtRecord->decisionWord(iebx-2);
301 
302  bool denomBitGood = false;
303 
304  //check if reference bit is valid
305  if(denomIsTech_){
306  if ( ! tw.empty() ) {
307  if( denomBit_ < tw.size() ){
308  denomBitGood = true;
309  if( tw[denomBit_] && earliestDenom_==9 ) earliestDenom_ = iebx;
310  }
311  }
312  }
313  else{
314  if ( ! gtDecisionWord.empty() ) {
315  if( denomBit_ < gtDecisionWord.size() ){
316  denomBitGood = true;
317  if( gtDecisionWord[denomBit_] && earliestDenom_==9 ) earliestDenom_ = iebx;
318  }
319  }
320  }
321 
322  if(denomBitGood){
323 
324  //get earliest tech bx's
325  if ( ! tw.empty() ) {
326  for(uint ibit = 0; ibit < techSelected_.size(); ibit++){
327  if(techSelected_[ibit] < tw.size()){
328  if(tw[techSelected_[ibit]] && earliestTech_[ibit] == 9) earliestTech_[ibit] = iebx;
329  }
330  }
331  }
332 
333  //get earliest algo bx's
334  if(!gtDecisionWord.empty()){
335  for(uint ibit = 0; ibit < algoSelected_.size(); ibit++){
336  if(algoSelected_[ibit] < gtDecisionWord.size()){
337  if(gtDecisionWord[algoSelected_[ibit]] && earliestAlgo_[ibit] == 9) earliestAlgo_[ibit] = iebx;
338  }
339  }
340  }
341 
342  }//denomBitGood
343 
344  }//bx
345 
346 
347  //get earliest single muon trigger system bx's
348  if (gmtCollection.isValid()) {
349 
350  // get GMT readout collection
351  L1MuGMTReadoutCollection const* gmtrc = gmtCollection.product();
352  // get record vector
353  std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
354  // loop over records of individual bx's
355  std::vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
356 
357  for( RRItr = gmt_records.begin(); RRItr != gmt_records.end(); RRItr++ ) {//loop from BX=-2 to BX=2
358  std::vector<L1MuRegionalCand> INPCands[4] = {
359  RRItr->getDTBXCands(),
360  RRItr->getBrlRPCCands(),
361  RRItr->getCSCCands(),
362  RRItr->getFwdRPCCands()
363  };
364  std::vector<L1MuRegionalCand>::const_iterator INPItr;
365  int BxInEvent = RRItr->getBxInEvent();
366 
367  // find the first non-empty candidate in this bx
368  for(int i=0; i<4; i++) {//for each single muon trigger system
369  for( INPItr = INPCands[i].begin(); INPItr != INPCands[i].end(); ++INPItr ) {
370  if(!INPItr->empty()) {
371  if(bx1st[i]==9) bx1st[i]=BxInEvent+2;//must go from 0 to 4 (consistent with above)
372  }
373  }
374  }
375  //for(int i=0; i<4; i++)
376  // std::cout << "bx1st[" << i << "] = " << bx1st[i];
377  //std::cout << std::endl;
378  }
379 
380  }//gmtCollection.isValid
381 
382 
383  //calculated bx difference
384  if(earliestDenom_ != 9){
385  for(uint ibit = 0; ibit < techSelected_.size(); ibit++){
386  if(earliestTech_[ibit] != 9){
387  int diff = earliestTech_[ibit] - earliestDenom_ ;
388  techBxDiff_[ibit]->Fill(diff);
389  techBxDiffLumi_[ibit]->Fill(e.luminosityBlock(), diff);
390  }
391  }
392  for(uint ibit = 0; ibit < algoSelected_.size(); ibit++){
393  if(earliestAlgo_[ibit] != 9){
394  int diff = earliestAlgo_[ibit] - earliestDenom_ ;
395  algoBxDiff_[ibit]->Fill(diff);
396  algoBxDiffLumi_[ibit]->Fill(e.luminosityBlock(), diff);
397  }
398  }
399 
400  if(bx1st[0] != 9){
401  int diff = bx1st[0] - earliestDenom_;
402  dtBxDiff_->Fill(diff);
404  }
405  if(bx1st[1] != 9){
406  int diff = bx1st[1] - earliestDenom_;
407  rpcbBxDiff_->Fill(diff);
409  }
410  if(bx1st[2] != 9){
411  int diff = bx1st[2] - earliestDenom_;
412  cscBxDiff_->Fill(diff);
414  }
415  if(bx1st[3] != 9){
416  int diff = bx1st[3] - earliestDenom_;
417  rpcfBxDiff_->Fill(diff);
419  }
420 
421  }
422 
423  }//tt41Good
424 
425  }
426 
427  return;
428 
429 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
bool tfIsTech_
Definition: L1Scalers.h:56
MonitorElement * l1scalers_
Definition: L1Scalers.h:62
edm::InputTag l1GtDataSource_
Definition: L1Scalers.h:52
MonitorElement * rpcfBxDiffLumi_
Definition: L1Scalers.h:91
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
MonitorElement * rpcbBxDiffLumi_
Definition: L1Scalers.h:89
MonitorElement * dtBxDiffLumi_
Definition: L1Scalers.h:85
std::vector< int > earliestTech_
Definition: L1Scalers.h:111
void Fill(long long x)
bool denomIsTech_
Definition: L1Scalers.h:54
std::vector< MonitorElement * > algoBxDiff_
Definition: L1Scalers.h:80
MonitorElement * cscBxDiff_
Definition: L1Scalers.h:86
MonitorElement * l1techScalers_
Definition: L1Scalers.h:63
std::vector< bool > DecisionWord
typedefs
MonitorElement * l1scalersBx_
Definition: L1Scalers.h:69
int nev_
Definition: L1Scalers.h:49
int j
Definition: DBlmapReader.cc:9
MonitorElement * l1TtCounter_
Definition: L1Scalers.h:77
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
std::vector< MonitorElement * > techBxDiff_
Definition: L1Scalers.h:81
bool isValid() const
Definition: HandleBase.h:76
std::vector< MonitorElement * > techBxDiffLumi_
Definition: L1Scalers.h:83
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
std::vector< unsigned int > algoSelected_
Definition: L1Scalers.h:58
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the GTFE board
Definition: L1GtfeWord.h:122
MonitorElement * l1Correlations_
Definition: L1Scalers.h:64
std::vector< unsigned int > techSelected_
Definition: L1Scalers.h:59
MonitorElement * rpcbBxDiff_
Definition: L1Scalers.h:88
MonitorElement * dtBxDiff_
Definition: L1Scalers.h:84
unsigned int rateAlgoCounter_
Definition: L1Scalers.h:100
std::vector< int > earliestAlgo_
Definition: L1Scalers.h:112
int earliestDenom_
Definition: L1Scalers.h:110
unsigned int tfBit_
Definition: L1Scalers.h:57
MonitorElement * bxNum_
Definition: L1Scalers.h:65
T const * product() const
Definition: Handle.h:81
MonitorElement * l1techScalersBx_
Definition: L1Scalers.h:70
std::string const & label() const
Definition: InputTag.h:42
std::vector< MonitorElement * > algoBxDiffLumi_
Definition: L1Scalers.h:82
#define begin
Definition: vmac.h:30
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
MonitorElement * l1AlgoCounter_
Definition: L1Scalers.h:76
unsigned int denomBit_
Definition: L1Scalers.h:55
MonitorElement * rpcfBxDiff_
Definition: L1Scalers.h:90
unsigned int rateTtCounter_
Definition: L1Scalers.h:101
MonitorElement * cscBxDiffLumi_
Definition: L1Scalers.h:87
void L1Scalers::beginJob ( void  )
virtual

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 81 of file L1Scalers.cc.

References algoBxDiff_, algoBxDiffLumi_, algoSelected_, DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookInt(), bxNum_, cscBxDiff_, cscBxDiffLumi_, dbe_, denomBit_, denomIsTech_, dtBxDiff_, dtBxDiffLumi_, folderName_, l1AlgoCounter_, l1Correlations_, l1scalers_, l1scalersBx_, l1techScalers_, l1techScalersBx_, l1TtCounter_, LogDebug, MAX_LUMI_BIN, MAX_LUMI_SEG, nLumiBlock_, cppFunctionSkipper::operator, rpcbBxDiff_, rpcbBxDiffLumi_, rpcfBxDiff_, rpcfBxDiffLumi_, DQMStore::setCurrentFolder(), DQMStore::setVerbose(), contentValuesCheck::ss, techBxDiff_, techBxDiffLumi_, and techSelected_.

82 {
83  LogDebug("Status") << "L1Scalers::beginJob()...";
84 
86  if (dbe_ ) {
87  dbe_->setVerbose(0);
89 
90 
91  l1scalers_ = dbe_->book1D("l1AlgoBits", "L1 Algorithm Bits",
92  128, -0.5, 127.5);
93  l1scalersBx_ = dbe_->book2D("l1AlgoBits_Vs_Bx", "L1 Algorithm Bits vs "
94  "Bunch Number",
95  3600, -0.5, 3599.5,
96  128, -0.5, 127.5);
97  l1Correlations_ = dbe_->book2D("l1Correlations", "L1 Algorithm Bits "
98  "Correlations",
99  128, -0.5, 127.5,
100  128, -0.5, 127.5);
101  l1techScalers_ = dbe_->book1D("l1TechBits", "L1 Tech. Trigger Bits",
102  64, -0.5, 63.5);
103  l1techScalersBx_ = dbe_->book2D("l1TechBits_Vs_Bx", "L1 Technical "
104  "Trigger "
105  "Bits vs Bunch Number",
106  3600, -0.5, 3599.5, 64, -0.5, 63.5);
107 // pixFedSizeBx_ = dbe_->book2D("pixFedSize_Vs_Bx", "Size of Pixel FED data vs "
108 // "Bunch Number",
109 // 3600, -0.5, 3599.5,
110 // 200, 0., 20000.);
111 // hfEnergyMaxTowerBx_ = dbe_->book2D("hfEnergyMaxTower_Vs_Bx", "HF Energy Max Tower vs "
112 // "Bunch Number",
113 // 3600, -0.5, 3599.5,
114 // 100, 0., 500.);
115  bxNum_ = dbe_->book1D("bxNum", "Bunch number from GTFE",
116  3600, -0.5, 3599.5);
117 
118  nLumiBlock_ = dbe_->bookInt("nLumiBlock");
119 
120 // l1 total rate
121 
122  l1AlgoCounter_ = dbe_->bookInt("l1AlgoCounter");
123  l1TtCounter_ = dbe_->bookInt("l1TtCounter");
124 
125 
126  //int maxNbins = 200;
127  //int maxLumi = 2000;
128 
129  //timing plots
130  std::stringstream sdenom;
131  if(denomIsTech_) sdenom << "tech" ;
132  else sdenom << "algo" ;
133 
134  dbe_->setCurrentFolder(folderName_ + "/Synch");
135  algoBxDiff_.clear();
136  algoBxDiff_.clear();
137  algoBxDiffLumi_.clear();
138  techBxDiffLumi_.clear();
139  for(uint ibit = 0; ibit < algoSelected_.size(); ibit++){
140  std::stringstream ss;
141  ss << algoSelected_[ibit] << "_" << sdenom.str() << denomBit_;
142  algoBxDiff_.push_back(dbe_->book1D("BX_diff_algo"+ ss.str(),"BX_diff_algo"+ ss.str(),9,-4,5));
143  algoBxDiffLumi_.push_back(dbe_->book2D("BX_diffvslumi_algo"+ ss.str(),"BX_diff_algo"+ss.str(),MAX_LUMI_BIN,-0.5,double(MAX_LUMI_SEG)-0.5,9,-4,5));
144  //algoBxDiffLumi_[ibit]->setAxisTitle("Lumi Section", 1);
145  }
146  for(uint ibit = 0; ibit < techSelected_.size(); ibit++){
147  std::stringstream ss;
148  ss << techSelected_[ibit] << "_" << sdenom.str() << denomBit_;
149  techBxDiff_.push_back(dbe_->book1D("BX_diff_tech"+ ss.str(),"BX_diff_tech"+ ss.str(),9,-4,5));
150  techBxDiffLumi_.push_back(dbe_->book2D("BX_diffvslumi_tech"+ ss.str(),"BX_diff_tech"+ss.str(),MAX_LUMI_BIN,-0.5,double(MAX_LUMI_SEG)-0.5,9,-4,5));
151  //techBxDiffLumi_[ibit]->setAxisTitle("Lumi Section", 1);
152  }
153 
154  //GMT timing plots
155  std::stringstream ss1;
156  ss1 << "_" << sdenom.str() << denomBit_;
157  dtBxDiff_ = dbe_->book1D("BX_diff_DT" + ss1.str(),"BX_diff_DT" + ss1.str(),9,-4,5);
158  dtBxDiffLumi_ = dbe_->book2D("BX_diffvslumi_DT" + ss1.str(),"BX_diffvslumi_DT" + ss1.str(),MAX_LUMI_BIN,-0.5,double(MAX_LUMI_SEG)-0.5,9,-4,5);
159  cscBxDiff_ = dbe_->book1D("BX_diff_CSC" + ss1.str(),"BX_diff_CSC" + ss1.str(),9,-4,5);
160  cscBxDiffLumi_ = dbe_->book2D("BX_diffvslumi_CSC" + ss1.str(),"BX_diffvslumi_CSC" + ss1.str(),MAX_LUMI_BIN,-0.5,double(MAX_LUMI_SEG)-0.5,9,-4,5);
161  rpcbBxDiff_ = dbe_->book1D("BX_diff_RPCb" + ss1.str(),"BX_diff_RPCb" + ss1.str(),9,-4,5);
162  rpcbBxDiffLumi_ = dbe_->book2D("BX_diffvslumi_RPCb" + ss1.str(),"BX_diffvslumi_RPCb" + ss1.str(),MAX_LUMI_BIN,-0.5,double(MAX_LUMI_SEG)-0.5,9,-4,5);
163  rpcfBxDiff_ = dbe_->book1D("BX_diff_RPCf" + ss1.str(),"BX_diff_RPCf" + ss1.str(),9,-4,5);
164  rpcfBxDiffLumi_ = dbe_->book2D("BX_diffvslumi_RPCf" + ss1.str(),"BX_diffvslumi_RPCf" + ss1.str(),MAX_LUMI_BIN,-0.5,double(MAX_LUMI_SEG)-0.5,9,-4,5);
165 
166 
167  // early triggers
168 // pixFedSize_ = dbe_->book1D("pixFedSize", "Size of Pixel FED data",
169 // 200, 0., 20000.);
170 // hfEnergy_ = dbe_->book1D("hfEnergy", "HF energy",
171 // 100, 0., 500.);
172 
173  }
174 
175 
176  return;
177 }
#define LogDebug(id)
MonitorElement * l1scalers_
Definition: L1Scalers.h:62
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:954
std::string folderName_
Definition: L1Scalers.h:61
MonitorElement * rpcfBxDiffLumi_
Definition: L1Scalers.h:91
MonitorElement * rpcbBxDiffLumi_
Definition: L1Scalers.h:89
MonitorElement * dtBxDiffLumi_
Definition: L1Scalers.h:85
bool denomIsTech_
Definition: L1Scalers.h:54
#define MAX_LUMI_SEG
Definition: L1Scalers.h:13
std::vector< MonitorElement * > algoBxDiff_
Definition: L1Scalers.h:80
MonitorElement * cscBxDiff_
Definition: L1Scalers.h:86
MonitorElement * l1techScalers_
Definition: L1Scalers.h:63
MonitorElement * l1scalersBx_
Definition: L1Scalers.h:69
#define MAX_LUMI_BIN
Definition: L1Scalers.h:14
MonitorElement * l1TtCounter_
Definition: L1Scalers.h:77
void setVerbose(unsigned level)
Definition: DQMStore.cc:631
std::vector< MonitorElement * > techBxDiff_
Definition: L1Scalers.h:81
std::vector< MonitorElement * > techBxDiffLumi_
Definition: L1Scalers.h:83
DQMStore * dbe_
Definition: L1Scalers.h:48
std::vector< unsigned int > algoSelected_
Definition: L1Scalers.h:58
MonitorElement * l1Correlations_
Definition: L1Scalers.h:64
std::vector< unsigned int > techSelected_
Definition: L1Scalers.h:59
MonitorElement * rpcbBxDiff_
Definition: L1Scalers.h:88
MonitorElement * dtBxDiff_
Definition: L1Scalers.h:84
MonitorElement * nLumiBlock_
Definition: L1Scalers.h:75
MonitorElement * bxNum_
Definition: L1Scalers.h:65
MonitorElement * l1techScalersBx_
Definition: L1Scalers.h:70
std::vector< MonitorElement * > algoBxDiffLumi_
Definition: L1Scalers.h:82
MonitorElement * l1AlgoCounter_
Definition: L1Scalers.h:76
unsigned int denomBit_
Definition: L1Scalers.h:55
MonitorElement * bookInt(const char *name)
Book int.
Definition: DQMStore.cc:861
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1082
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:667
MonitorElement * rpcfBxDiff_
Definition: L1Scalers.h:90
MonitorElement * cscBxDiffLumi_
Definition: L1Scalers.h:87
void L1Scalers::beginRun ( const edm::Run run,
const edm::EventSetup c 
)
virtual

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 440 of file L1Scalers.cc.

441 {
442 }
void L1Scalers::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 179 of file L1Scalers.cc.

180 {
181 }
void L1Scalers::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
virtual

End LumiBlock DQM Client Diagnostic should be performed here

Reimplemented from edm::EDAnalyzer.

Definition at line 431 of file L1Scalers.cc.

References MonitorElement::Fill(), edm::LuminosityBlockBase::id(), edm::LuminosityBlockID::luminosityBlock(), and nLumiBlock_.

433 {
434  nLumiBlock_->Fill(lumiSeg.id().luminosityBlock());
435 
436 }
LuminosityBlockID id() const
void Fill(long long x)
MonitorElement * nLumiBlock_
Definition: L1Scalers.h:75
LuminosityBlockNumber_t luminosityBlock() const
void L1Scalers::endRun ( const edm::Run run,
const edm::EventSetup c 
)
virtual

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 445 of file L1Scalers.cc.

446 {
447 }

Member Data Documentation

std::vector<MonitorElement* > L1Scalers::algoBxDiff_
private

Definition at line 80 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<MonitorElement* > L1Scalers::algoBxDiffLumi_
private

Definition at line 82 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<unsigned int> L1Scalers::algoSelected_
private

Definition at line 58 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::bxNum_
private

Definition at line 65 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::cscBxDiff_
private

Definition at line 86 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::cscBxDiffLumi_
private

Definition at line 87 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

DQMStore* L1Scalers::dbe_
private

Definition at line 48 of file L1Scalers.h.

Referenced by beginJob().

unsigned int L1Scalers::denomBit_
private

Definition at line 55 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

bool L1Scalers::denomIsTech_
private

Definition at line 54 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::dtBxDiff_
private

Definition at line 84 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::dtBxDiffLumi_
private

Definition at line 85 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<int> L1Scalers::earliestAlgo_
private

Definition at line 112 of file L1Scalers.h.

Referenced by analyze().

int L1Scalers::earliestDenom_
private

Definition at line 110 of file L1Scalers.h.

Referenced by analyze().

std::vector<int> L1Scalers::earliestTech_
private

Definition at line 111 of file L1Scalers.h.

Referenced by analyze().

edm::InputTag L1Scalers::fedRawCollection_
private

Definition at line 104 of file L1Scalers.h.

unsigned int L1Scalers::fedStart_
private

Definition at line 98 of file L1Scalers.h.

unsigned int L1Scalers::fedStop_
private

Definition at line 98 of file L1Scalers.h.

std::string L1Scalers::folderName_
private

Definition at line 61 of file L1Scalers.h.

Referenced by beginJob().

edm::InputTag L1Scalers::HcalRecHitCollection_
private

Definition at line 107 of file L1Scalers.h.

MonitorElement* L1Scalers::l1AlgoCounter_
private

Definition at line 76 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::l1Correlations_
private

Definition at line 64 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

edm::InputTag L1Scalers::l1GtDataSource_
private

Definition at line 52 of file L1Scalers.h.

Referenced by analyze().

MonitorElement* L1Scalers::l1scalers_
private

Definition at line 62 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::l1scalersBx_
private

Definition at line 69 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::l1techScalers_
private

Definition at line 63 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::l1techScalersBx_
private

Definition at line 70 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::l1TtCounter_
private

Definition at line 77 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<int> L1Scalers::maskedList_
private

Definition at line 106 of file L1Scalers.h.

int L1Scalers::nev_
private

Definition at line 49 of file L1Scalers.h.

Referenced by analyze().

MonitorElement* L1Scalers::nLumiBlock_
private

Definition at line 75 of file L1Scalers.h.

Referenced by beginJob(), and endLuminosityBlock().

unsigned int L1Scalers::rateAlgoCounter_
private

Definition at line 100 of file L1Scalers.h.

Referenced by analyze().

unsigned int L1Scalers::rateTtCounter_
private

Definition at line 101 of file L1Scalers.h.

Referenced by analyze().

MonitorElement* L1Scalers::rpcbBxDiff_
private

Definition at line 88 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::rpcbBxDiffLumi_
private

Definition at line 89 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::rpcfBxDiff_
private

Definition at line 90 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

MonitorElement* L1Scalers::rpcfBxDiffLumi_
private

Definition at line 91 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<MonitorElement* > L1Scalers::techBxDiff_
private

Definition at line 81 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<MonitorElement* > L1Scalers::techBxDiffLumi_
private

Definition at line 83 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

std::vector<unsigned int> L1Scalers::techSelected_
private

Definition at line 59 of file L1Scalers.h.

Referenced by analyze(), and beginJob().

unsigned int L1Scalers::tfBit_
private

Definition at line 57 of file L1Scalers.h.

Referenced by analyze().

bool L1Scalers::tfIsTech_
private

Definition at line 56 of file L1Scalers.h.

Referenced by analyze().

unsigned int L1Scalers::threshold_
private

Definition at line 97 of file L1Scalers.h.

bool L1Scalers::verbose_
private

Definition at line 51 of file L1Scalers.h.