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:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 DQM Client Diagnostic should be performed here: More...
 
 L1Scalers (const edm::ParameterSet &ps)
 
virtual ~L1Scalers ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 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
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) 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_
 
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::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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 14 of file L1Scalers.h.

Constructor & Destructor Documentation

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

Definition at line 37 of file L1Scalers.cc.

References LogDebug.

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

Definition at line 17 of file L1Scalers.h.

17 {};

Member Function Documentation

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

empty DecisionWord

Implements edm::stream::EDAnalyzerBase.

Definition at line 159 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_.

159  {
160  nev_++;
161 
162  LogDebug("Status") << "L1Scalers::analyze event " << nev_;
163 
164  // int myGTFEbx = -1;
165  // get Global Trigger decision and the decision word
166  // these are locally derived
168  bool t = e.getByLabel(l1GtDataSource_, gtRecord);
169 
170  if (!t) {
171  LogDebug("Product") << "can't find L1GlobalTriggerReadoutRecord "
172  << "with label " << l1GtDataSource_.label();
173  } else {
174  L1GtfeWord gtfeWord = gtRecord->gtfeWord();
175  int gtfeBx = gtfeWord.bxNr();
176  bxNum_->Fill(gtfeBx);
177 
178  bool tfBitGood = false;
179 
180  // First, the default
181  // vector of bool
182  for (int iebx = 0; iebx <= 4; iebx++) {
183  // Algorithm Bits
184  DecisionWord gtDecisionWord = gtRecord->decisionWord(iebx - 2);
185  // DecisionWord gtDecisionWord = gtRecord->decisionWord();
186  if (!gtDecisionWord.empty()) { // if board not there this is zero
187  // loop over dec. bit to get total rate (no overlap)
188  for (uint i = 0; i < gtDecisionWord.size(); ++i) {
189  if (gtDecisionWord[i]) {
192  break;
193  }
194  }
195  // loop over decision bits
196  for (uint i = 0; i < gtDecisionWord.size(); ++i) {
197  if (gtDecisionWord[i]) {
198  l1scalers_->Fill(i);
199  l1scalersBx_->Fill(gtfeBx - 2 + iebx, i);
200  for (uint j = i + 1; j < gtDecisionWord.size(); ++j) {
201  if (gtDecisionWord[j]) {
202  l1Correlations_->Fill(i, j);
203  l1Correlations_->Fill(j, i);
204  }
205  }
206  }
207  }
208  }
209 
210  // loop over technical triggers
211  // vector of bool again.
212  TechnicalTriggerWord tw = gtRecord->technicalTriggerWord(iebx - 2);
213  // TechnicalTriggerWord tw = gtRecord->technicalTriggerWord();
214  if (!tw.empty()) {
215  // loop over dec. bit to get total rate (no overlap)
216  for (uint i = 0; i < tw.size(); ++i) {
217  if (tw[i]) {
218  rateTtCounter_++;
220  break;
221  }
222  }
223  for (uint i = 0; i < tw.size(); ++i) {
224  if (tw[i]) {
225  l1techScalers_->Fill(i);
226  l1techScalersBx_->Fill(gtfeBx - 2 + iebx, i);
227  }
228  }
229 
230  // check if bit used to filter timing plots fired in this event
231  // (anywhere in the bx window)
232  if (tfIsTech_) {
233  if (tfBit_ < tw.size()) {
234  if (tw[tfBit_]) tfBitGood = true;
235  }
236  }
237  } // ! tw.empty
238 
239  } // bx
240 
241  // timing plots
242  earliestDenom_ = 9;
243  earliestAlgo_.clear();
244  earliestTech_.clear();
245  for (uint i = 0; i < techSelected_.size(); i++) earliestTech_.push_back(9);
246  for (uint i = 0; i < algoSelected_.size(); i++) earliestAlgo_.push_back(9);
247 
248  // GMT information
250  e.getByLabel(l1GtDataSource_, gmtCollection);
251 
252  if (!gmtCollection.isValid()) {
253  edm::LogInfo("DataNotFound")
254  << "can't find L1MuGMTReadoutCollection with label "
255  << l1GtDataSource_.label();
256  }
257 
258  // remember the bx of 1st candidate of each system (9=none)
259  int bx1st[4] = {9, 9, 9, 9};
260 
261  if (tfBitGood) { // to avoid single BSC hits
262 
263  for (int iebx = 0; iebx <= 4; iebx++) {
264  TechnicalTriggerWord tw = gtRecord->technicalTriggerWord(iebx - 2);
265  DecisionWord gtDecisionWord = gtRecord->decisionWord(iebx - 2);
266 
267  bool denomBitGood = false;
268 
269  // check if reference bit is valid
270  if (denomIsTech_) {
271  if (!tw.empty()) {
272  if (denomBit_ < tw.size()) {
273  denomBitGood = true;
274  if (tw[denomBit_] && earliestDenom_ == 9) earliestDenom_ = iebx;
275  }
276  }
277  } else {
278  if (!gtDecisionWord.empty()) {
279  if (denomBit_ < gtDecisionWord.size()) {
280  denomBitGood = true;
281  if (gtDecisionWord[denomBit_] && earliestDenom_ == 9)
282  earliestDenom_ = iebx;
283  }
284  }
285  }
286 
287  if (denomBitGood) {
288  // get earliest tech bx's
289  if (!tw.empty()) {
290  for (uint ibit = 0; ibit < techSelected_.size(); ibit++) {
291  if (techSelected_[ibit] < tw.size()) {
292  if (tw[techSelected_[ibit]] && earliestTech_[ibit] == 9)
293  earliestTech_[ibit] = iebx;
294  }
295  }
296  }
297 
298  // get earliest algo bx's
299  if (!gtDecisionWord.empty()) {
300  for (uint ibit = 0; ibit < algoSelected_.size(); ibit++) {
301  if (algoSelected_[ibit] < gtDecisionWord.size()) {
302  if (gtDecisionWord[algoSelected_[ibit]] &&
303  earliestAlgo_[ibit] == 9)
304  earliestAlgo_[ibit] = iebx;
305  }
306  }
307  }
308  } // denomBitGood
309  } // bx
310 
311  // get earliest single muon trigger system bx's
312  if (gmtCollection.isValid()) {
313  // get GMT readout collection
314  L1MuGMTReadoutCollection const* gmtrc = gmtCollection.product();
315  // get record vector
316  std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
317  // loop over records of individual bx's
318  std::vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
319 
320  for (RRItr = gmt_records.begin(); RRItr != gmt_records.end();
321  RRItr++) { // loop from BX=-2 to BX=2
322  std::vector<L1MuRegionalCand> INPCands[4] = {
323  RRItr->getDTBXCands(), RRItr->getBrlRPCCands(),
324  RRItr->getCSCCands(), RRItr->getFwdRPCCands()};
325  std::vector<L1MuRegionalCand>::const_iterator INPItr;
326  int BxInEvent = RRItr->getBxInEvent();
327 
328  // find the first non-empty candidate in this bx
329  for (int i = 0; i < 4; i++) { // for each single muon trigger system
330  for (INPItr = INPCands[i].begin(); INPItr != INPCands[i].end();
331  ++INPItr) {
332  if (!INPItr->empty()) {
333  if (bx1st[i] == 9)
334  bx1st[i] = BxInEvent +
335  2; // must go from 0 to 4 (consistent with above)
336  }
337  }
338  }
339  }
340  } // gmtCollection.isValid
341  // calculated bx difference
342  if (earliestDenom_ != 9) {
343  for (uint ibit = 0; ibit < techSelected_.size(); ibit++) {
344  if (earliestTech_[ibit] != 9) {
345  int diff = earliestTech_[ibit] - earliestDenom_;
346  techBxDiff_[ibit]->Fill(diff);
347  techBxDiffLumi_[ibit]->Fill(e.luminosityBlock(), diff);
348  }
349  }
350  for (uint ibit = 0; ibit < algoSelected_.size(); ibit++) {
351  if (earliestAlgo_[ibit] != 9) {
352  int diff = earliestAlgo_[ibit] - earliestDenom_;
353  algoBxDiff_[ibit]->Fill(diff);
354  algoBxDiffLumi_[ibit]->Fill(e.luminosityBlock(), diff);
355  }
356  }
357 
358  if (bx1st[0] != 9) {
359  int diff = bx1st[0] - earliestDenom_;
360  dtBxDiff_->Fill(diff);
362  }
363  if (bx1st[1] != 9) {
364  int diff = bx1st[1] - earliestDenom_;
365  rpcbBxDiff_->Fill(diff);
367  }
368  if (bx1st[2] != 9) {
369  int diff = bx1st[2] - earliestDenom_;
370  cscBxDiff_->Fill(diff);
372  }
373  if (bx1st[3] != 9) {
374  int diff = bx1st[3] - earliestDenom_;
375  rpcfBxDiff_->Fill(diff);
377  }
378  }
379  } // tt41Good
380  }
381  return;
382 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
bool tfIsTech_
Definition: L1Scalers.h:33
MonitorElement * l1scalers_
Definition: L1Scalers.h:39
std::vector< MonitorElement * > techBxDiff_
Definition: L1Scalers.h:55
std::vector< MonitorElement * > algoBxDiffLumi_
Definition: L1Scalers.h:56
edm::InputTag l1GtDataSource_
Definition: L1Scalers.h:29
std::vector< MonitorElement * > algoBxDiff_
Definition: L1Scalers.h:54
MonitorElement * rpcfBxDiffLumi_
Definition: L1Scalers.h:65
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:63
MonitorElement * rpcbBxDiffLumi_
Definition: L1Scalers.h:63
MonitorElement * dtBxDiffLumi_
Definition: L1Scalers.h:59
std::vector< int > earliestTech_
Definition: L1Scalers.h:80
void Fill(long long x)
bool denomIsTech_
Definition: L1Scalers.h:31
MonitorElement * cscBxDiff_
Definition: L1Scalers.h:60
MonitorElement * l1techScalers_
Definition: L1Scalers.h:40
std::vector< bool > DecisionWord
typedefs
MonitorElement * l1scalersBx_
Definition: L1Scalers.h:45
int nev_
Definition: L1Scalers.h:26
int j
Definition: DBlmapReader.cc:9
MonitorElement * l1TtCounter_
Definition: L1Scalers.h:51
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
std::vector< MonitorElement * > techBxDiffLumi_
Definition: L1Scalers.h:57
bool isValid() const
Definition: HandleBase.h:75
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:405
std::vector< unsigned int > algoSelected_
Definition: L1Scalers.h:35
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:41
std::vector< unsigned int > techSelected_
Definition: L1Scalers.h:36
MonitorElement * rpcbBxDiff_
Definition: L1Scalers.h:62
MonitorElement * dtBxDiff_
Definition: L1Scalers.h:58
T const * product() const
Definition: Handle.h:81
unsigned int rateAlgoCounter_
Definition: L1Scalers.h:71
std::vector< int > earliestAlgo_
Definition: L1Scalers.h:81
int earliestDenom_
Definition: L1Scalers.h:79
unsigned int tfBit_
Definition: L1Scalers.h:34
MonitorElement * bxNum_
Definition: L1Scalers.h:42
MonitorElement * l1techScalersBx_
Definition: L1Scalers.h:46
std::string const & label() const
Definition: InputTag.h:42
#define begin
Definition: vmac.h:30
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
MonitorElement * l1AlgoCounter_
Definition: L1Scalers.h:50
unsigned int denomBit_
Definition: L1Scalers.h:32
MonitorElement * rpcfBxDiff_
Definition: L1Scalers.h:64
unsigned int rateTtCounter_
Definition: L1Scalers.h:72
MonitorElement * cscBxDiffLumi_
Definition: L1Scalers.h:61
void L1Scalers::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 73 of file L1Scalers.cc.

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

74  {
76  l1scalers_ =
77  iBooker.book1D("l1AlgoBits", "L1 Algorithm Bits", 128, -0.5, 127.5);
78  l1scalersBx_ = iBooker.book2D("l1AlgoBits_Vs_Bx",
79  "L1 Algorithm Bits vs "
80  "Bunch Number",
81  3600, -0.5, 3599.5, 128, -0.5, 127.5);
82  l1Correlations_ = iBooker.book2D("l1Correlations",
83  "L1 Algorithm Bits "
84  "Correlations",
85  128, -0.5, 127.5, 128, -0.5, 127.5);
87  iBooker.book1D("l1TechBits", "L1 Tech. Trigger Bits", 64, -0.5, 63.5);
88  l1techScalersBx_ = iBooker.book2D("l1TechBits_Vs_Bx",
89  "L1 Technical "
90  "Trigger "
91  "Bits vs Bunch Number",
92  3600, -0.5, 3599.5, 64, -0.5, 63.5);
93  bxNum_ = iBooker.book1D("bxNum", "Bunch number from GTFE", 3600, -0.5, 3599.5);
94 
95  nLumiBlock_ = iBooker.bookInt("nLumiBlock");
96 
97  // l1 total rate
98  l1AlgoCounter_ = iBooker.bookInt("l1AlgoCounter");
99  l1TtCounter_ = iBooker.bookInt("l1TtCounter");
100 
101  // timing plots
102  std::stringstream sdenom;
103  if (denomIsTech_)
104  sdenom << "tech";
105  else
106  sdenom << "algo";
107 
108  iBooker.setCurrentFolder(folderName_ + "/Synch");
109  algoBxDiff_.clear();
110  algoBxDiff_.clear();
111  algoBxDiffLumi_.clear();
112  techBxDiffLumi_.clear();
113  for (uint ibit = 0; ibit < algoSelected_.size(); ibit++) {
114  std::stringstream ss;
115  ss << algoSelected_[ibit] << "_" << sdenom.str() << denomBit_;
116  algoBxDiff_.push_back(iBooker.book1D("BX_diff_algo" + ss.str(),
117  "BX_diff_algo" + ss.str(), 9, -4, 5));
118  algoBxDiffLumi_.push_back(
119  iBooker.book2D("BX_diffvslumi_algo" + ss.str(), "BX_diff_algo" + ss.str(),
120  MAX_LUMI_BIN, -0.5, double(MAX_LUMI_SEG) - 0.5, 9, -4, 5));
121  // algoBxDiffLumi_[ibit]->setAxisTitle("Lumi Section", 1);
122  }
123  for (uint ibit = 0; ibit < techSelected_.size(); ibit++) {
124  std::stringstream ss;
125  ss << techSelected_[ibit] << "_" << sdenom.str() << denomBit_;
126  techBxDiff_.push_back(iBooker.book1D("BX_diff_tech" + ss.str(),
127  "BX_diff_tech" + ss.str(), 9, -4, 5));
128  techBxDiffLumi_.push_back(
129  iBooker.book2D("BX_diffvslumi_tech" + ss.str(), "BX_diff_tech" + ss.str(),
130  MAX_LUMI_BIN, -0.5, double(MAX_LUMI_SEG) - 0.5, 9, -4, 5));
131  // techBxDiffLumi_[ibit]->setAxisTitle("Lumi Section", 1);
132  }
133 
134  // GMT timing plots
135  std::stringstream ss1;
136  ss1 << "_" << sdenom.str() << denomBit_;
137  dtBxDiff_ = iBooker.book1D("BX_diff_DT" + ss1.str(), "BX_diff_DT" + ss1.str(),
138  9, -4, 5);
139  dtBxDiffLumi_ = iBooker.book2D("BX_diffvslumi_DT" + ss1.str(),
140  "BX_diffvslumi_DT" + ss1.str(), MAX_LUMI_BIN,
141  -0.5, double(MAX_LUMI_SEG) - 0.5, 9, -4, 5);
142  cscBxDiff_ = iBooker.book1D("BX_diff_CSC" + ss1.str(),
143  "BX_diff_CSC" + ss1.str(), 9, -4, 5);
144  cscBxDiffLumi_ = iBooker.book2D("BX_diffvslumi_CSC" + ss1.str(),
145  "BX_diffvslumi_CSC" + ss1.str(), MAX_LUMI_BIN,
146  -0.5, double(MAX_LUMI_SEG) - 0.5, 9, -4, 5);
147  rpcbBxDiff_ = iBooker.book1D("BX_diff_RPCb" + ss1.str(),
148  "BX_diff_RPCb" + ss1.str(), 9, -4, 5);
149  rpcbBxDiffLumi_ = iBooker.book2D("BX_diffvslumi_RPCb" + ss1.str(),
150  "BX_diffvslumi_RPCb" + ss1.str(), MAX_LUMI_BIN,
151  -0.5, double(MAX_LUMI_SEG) - 0.5, 9, -4, 5);
152  rpcfBxDiff_ = iBooker.book1D("BX_diff_RPCf" + ss1.str(),
153  "BX_diff_RPCf" + ss1.str(), 9, -4, 5);
154  rpcfBxDiffLumi_ = iBooker.book2D("BX_diffvslumi_RPCf" + ss1.str(),
155  "BX_diffvslumi_RPCf" + ss1.str(), MAX_LUMI_BIN,
156  -0.5, double(MAX_LUMI_SEG) - 0.5, 9, -4, 5);
157 }
MonitorElement * l1scalers_
Definition: L1Scalers.h:39
std::vector< MonitorElement * > techBxDiff_
Definition: L1Scalers.h:55
std::vector< MonitorElement * > algoBxDiffLumi_
Definition: L1Scalers.h:56
std::vector< MonitorElement * > algoBxDiff_
Definition: L1Scalers.h:54
std::string folderName_
Definition: L1Scalers.h:38
MonitorElement * rpcfBxDiffLumi_
Definition: L1Scalers.h:65
MonitorElement * bookInt(Args &&...args)
Definition: DQMStore.h:103
MonitorElement * rpcbBxDiffLumi_
Definition: L1Scalers.h:63
MonitorElement * dtBxDiffLumi_
Definition: L1Scalers.h:59
bool denomIsTech_
Definition: L1Scalers.h:31
#define MAX_LUMI_SEG
Definition: L1Scalers.h:11
MonitorElement * cscBxDiff_
Definition: L1Scalers.h:60
MonitorElement * l1techScalers_
Definition: L1Scalers.h:40
MonitorElement * l1scalersBx_
Definition: L1Scalers.h:45
#define MAX_LUMI_BIN
Definition: L1Scalers.h:12
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * l1TtCounter_
Definition: L1Scalers.h:51
std::vector< MonitorElement * > techBxDiffLumi_
Definition: L1Scalers.h:57
std::vector< unsigned int > algoSelected_
Definition: L1Scalers.h:35
MonitorElement * l1Correlations_
Definition: L1Scalers.h:41
std::vector< unsigned int > techSelected_
Definition: L1Scalers.h:36
MonitorElement * rpcbBxDiff_
Definition: L1Scalers.h:62
MonitorElement * dtBxDiff_
Definition: L1Scalers.h:58
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * nLumiBlock_
Definition: L1Scalers.h:49
MonitorElement * bxNum_
Definition: L1Scalers.h:42
MonitorElement * l1techScalersBx_
Definition: L1Scalers.h:46
MonitorElement * l1AlgoCounter_
Definition: L1Scalers.h:50
unsigned int denomBit_
Definition: L1Scalers.h:32
MonitorElement * rpcfBxDiff_
Definition: L1Scalers.h:64
MonitorElement * cscBxDiffLumi_
Definition: L1Scalers.h:61
void L1Scalers::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
virtual

DQM Client Diagnostic should be performed here:

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 384 of file L1Scalers.cc.

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

385  {
386  nLumiBlock_->Fill(lumiSeg.id().luminosityBlock());
387 }
LuminosityBlockID id() const
void Fill(long long x)
MonitorElement * nLumiBlock_
Definition: L1Scalers.h:49
LuminosityBlockNumber_t luminosityBlock() const

Member Data Documentation

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

Definition at line 54 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 56 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 35 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::bxNum_
private

Definition at line 42 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::cscBxDiff_
private

Definition at line 60 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::cscBxDiffLumi_
private

Definition at line 61 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

unsigned int L1Scalers::denomBit_
private

Definition at line 32 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

bool L1Scalers::denomIsTech_
private

Definition at line 31 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::dtBxDiff_
private

Definition at line 58 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::dtBxDiffLumi_
private

Definition at line 59 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 81 of file L1Scalers.h.

Referenced by analyze().

int L1Scalers::earliestDenom_
private

Definition at line 79 of file L1Scalers.h.

Referenced by analyze().

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

Definition at line 80 of file L1Scalers.h.

Referenced by analyze().

edm::InputTag L1Scalers::fedRawCollection_
private

Definition at line 74 of file L1Scalers.h.

unsigned int L1Scalers::fedStart_
private

Definition at line 69 of file L1Scalers.h.

unsigned int L1Scalers::fedStop_
private

Definition at line 69 of file L1Scalers.h.

std::string L1Scalers::folderName_
private

Definition at line 38 of file L1Scalers.h.

Referenced by bookHistograms().

edm::InputTag L1Scalers::HcalRecHitCollection_
private

Definition at line 77 of file L1Scalers.h.

MonitorElement* L1Scalers::l1AlgoCounter_
private

Definition at line 50 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::l1Correlations_
private

Definition at line 41 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag L1Scalers::l1GtDataSource_
private

Definition at line 29 of file L1Scalers.h.

Referenced by analyze().

MonitorElement* L1Scalers::l1scalers_
private

Definition at line 39 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::l1scalersBx_
private

Definition at line 45 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::l1techScalers_
private

Definition at line 40 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::l1techScalersBx_
private

Definition at line 46 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::l1TtCounter_
private

Definition at line 51 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 76 of file L1Scalers.h.

int L1Scalers::nev_
private

Definition at line 26 of file L1Scalers.h.

Referenced by analyze().

MonitorElement* L1Scalers::nLumiBlock_
private

Definition at line 49 of file L1Scalers.h.

Referenced by bookHistograms(), and endLuminosityBlock().

unsigned int L1Scalers::rateAlgoCounter_
private

Definition at line 71 of file L1Scalers.h.

Referenced by analyze().

unsigned int L1Scalers::rateTtCounter_
private

Definition at line 72 of file L1Scalers.h.

Referenced by analyze().

MonitorElement* L1Scalers::rpcbBxDiff_
private

Definition at line 62 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::rpcbBxDiffLumi_
private

Definition at line 63 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::rpcfBxDiff_
private

Definition at line 64 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1Scalers::rpcfBxDiffLumi_
private

Definition at line 65 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 55 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 57 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 36 of file L1Scalers.h.

Referenced by analyze(), and bookHistograms().

unsigned int L1Scalers::tfBit_
private

Definition at line 34 of file L1Scalers.h.

Referenced by analyze().

bool L1Scalers::tfIsTech_
private

Definition at line 33 of file L1Scalers.h.

Referenced by analyze().

unsigned int L1Scalers::threshold_
private

Definition at line 68 of file L1Scalers.h.

bool L1Scalers::verbose_
private

Definition at line 28 of file L1Scalers.h.