CMS 3D CMS Logo

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

#include <L1TdeGCT.h>

Inheritance diagram for L1TdeGCT:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 L1TdeGCT (const edm::ParameterSet &)
 
 ~L1TdeGCT ()
 
- 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
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob (void)
 
virtual void beginRun (edm::Run const &iRun, edm::EventSetup const &iSetup)
 
virtual void endJob ()
 
- 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)
 

Private Member Functions

int verbose ()
 

Private Attributes

std::string cLabel [nGctColl_]
 
int colCount [nGctColl_]
 
DQMStoredbe
 
edm::EDGetTokenT
< L1DataEmulRecord
DEsource_
 
MonitorElementdeword [nGctColl_]
 
MonitorElementdword [nGctColl_]
 
std::string errLabel [nerr]
 
MonitorElementerrortype [nGctColl_]
 
MonitorElementeta [nGctColl_]
 
MonitorElementetaData [nGctColl_]
 
const double etaMaxim = 21.5
 
const double etaMinim = -0.5
 
const int etaNBins = 22
 
MonitorElementetaphi [nGctColl_]
 
MonitorElementeword [nGctColl_]
 
bool hasRecord_
 
std::string histFile_
 
std::string histFolder_
 
MonitorElementmasked [nGctColl_]
 
bool monitorDaemon_
 
const int nbit = 32
 
int nWithCol [nGctColl_]
 
MonitorElementphi [nGctColl_]
 
MonitorElementphiData [nGctColl_]
 
const double phiMaxim = 17.5
 
const double phiMinim = -0.5
 
const int phiNBins = 18
 
MonitorElementrnk [nGctColl_]
 
MonitorElementrnkData [nGctColl_]
 
const double rnkMaxim = 63.5
 
const double rnkMinim = 0.5
 
const int rnkNBins = 63
 
MonitorElementsysncand [2]
 
MonitorElementsysrates
 
int verbose_
 

Static Private Attributes

static const int nerr = 5
 
static const int nGctColl_ = dedefs::GCThfbit-dedefs::GCTisolaem+1
 

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 &)
 

Detailed Description

Definition at line 27 of file L1TdeGCT.h.

Constructor & Destructor Documentation

L1TdeGCT::L1TdeGCT ( const edm::ParameterSet iConfig)
explicit

Definition at line 6 of file L1TdeGCT.cc.

References gather_cfg::cout, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), NULL, cppFunctionSkipper::operator, AlCaHLTBitMon_QueryRunRegistry::string, and validate_alignment_devdb10_cfg::verbose.

6  {
7 
8  verbose_ = iConfig.getUntrackedParameter<int>("VerboseFlag",0);
9 
10  if(verbose())
11  std::cout << "L1TdeGCT::L1TdeGCT()...\n" << std::flush;
12 
13  DEsource_ = consumes<L1DataEmulRecord>(iConfig.getParameter<edm::InputTag>("DataEmulCompareSource"));
14  histFolder_ = iConfig.getUntrackedParameter<std::string>("HistFolder", "L1TEMU/GCTexpert");
15 
16  dbe = NULL;
17  if (iConfig.getUntrackedParameter<bool>("DQMStore", false)) {
18  dbe = edm::Service<DQMStore>().operator->();
19  dbe->setVerbose(0);
20  }
21 
22  histFile_ = iConfig.getUntrackedParameter<std::string>("HistFile", "");
23  if(iConfig.getUntrackedParameter<bool> ("disableROOToutput", true))
24  histFile_ = "";
25 
26  if (histFile_.size()!=0) {
27  edm::LogInfo("OutputRootFile")
28  << "L1TEmulator GCT specific histograms will be saved to "
29  << histFile_.c_str()
30  << std::endl;
31  }
32 
33  if(dbe!=NULL)
34  dbe->setCurrentFolder(histFolder_);
35 
36  hasRecord_=true;
37 
38  if(verbose())
39  std::cout << "L1TdeGCT::L1TdeGCT()...done.\n" << std::flush;
40 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
DQMStore * dbe
Definition: L1TdeGCT.h:59
int verbose_
Definition: L1TdeGCT.h:49
std::string histFile_
Definition: L1TdeGCT.h:53
#define NULL
Definition: scimark2.h:8
bool hasRecord_
Definition: L1TdeGCT.h:46
edm::EDGetTokenT< L1DataEmulRecord > DEsource_
Definition: L1TdeGCT.h:45
tuple cout
Definition: gather_cfg.py:121
std::string histFolder_
Definition: L1TdeGCT.h:56
int verbose()
Definition: L1TdeGCT.h:50
L1TdeGCT::~L1TdeGCT ( )

Definition at line 42 of file L1TdeGCT.cc.

42 {}

Member Function Documentation

void L1TdeGCT::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
protectedvirtual

get the comparison results

get the de candidates

— Fill histograms(me) —

(note see L1Trigger/HardwareValidation/interface/DEtrait.h)

bitset loop

event based rate

object based rate

Implements edm::EDAnalyzer.

Definition at line 198 of file L1TdeGCT.cc.

References edm::HandleBase::clear(), gather_cfg::cout, eta(), fastmath::etaphi(), HcalObjRepresent::Fill(), dedefs::GCT, dedefs::GCTisolaem, edm::Event::getByToken(), i, edm::HandleBase::isValid(), j, LogDebug, phi, RPCpg::rate(), L1DataEmulDigi::reset(), dedefs::SystLabel, and validate_alignment_devdb10_cfg::verbose.

198  {
199 
200  if(!hasRecord_)
201  return;
202 
203  if(verbose())
204  std::cout << "L1TdeGCT::analyze() start\n" << std::flush;
205 
208  iEvent.getByToken(DEsource_, deRecord);
209 
210  if (!deRecord.isValid()) {
211  edm::LogInfo("DataNotFound")
212  << "Cannot find L1DataEmulRecord"
213  << " Please verify that comparator was successfully executed."
214  << " Emulator DQM for GCT will be skipped!"
215  << std::endl;
216  hasRecord_=false;
217  return;
218  }
219 
220  bool isComp = deRecord->get_isComp(GCT);
221  if(!isComp) {
222  if(verbose())
223  std::cout << "[L1TdeGCT] Gct information not generated in de-record."
224  << " Skiping event!\n" << std::flush;
225  return;
226  }
227 
228  int DEncand[2]={0};
229  for(int j=0; j<2; j++)
230  DEncand[j] = deRecord->getNCand(GCT,j);
231 
232  if(verbose())
233  std::cout << "[L1TdeGCT] ncands"
234  << " data: " << DEncand[0]
235  << " emul: " << DEncand[1]
236  << std::endl;
237 
238 
240  L1DEDigiCollection deColl;
241  deColl = deRecord->getColl();
242 
243  // extract the GCT comparison digis
244  L1DEDigiCollection gctColl;
245 
246  gctColl.reserve(20);
247  gctColl.clear();
248 
249 
250  for(L1DEDigiCollection::const_iterator it=deColl.begin();
251  it!=deColl.end(); it++)
252  if(!it->empty())
253  if(it->sid()==GCT)
254  gctColl.push_back(*it);
255 
256  if(verbose()) {
257  std::cout << "[L1TdeGCT] record has " << gctColl.size()
258  << " gct de digis\n" << std::flush;
259  for(L1DEDigiCollection::const_iterator it=gctColl.begin();
260  it!=gctColl.end(); it++)
261  std::cout << "\t" << *it << std::endl;
262  }
263 
264  const int nullVal = L1DataEmulDigi().reset();
265 
267 
268  // d|e candidate loop
269  for(L1DEDigiCollection::const_iterator it=gctColl.begin();
270  it!=gctColl.end(); it++) {
271 
272  // sid should be GCT
273  int sid = it->sid();
274  // cid: GCTisolaem, GCTnoisoem, GCTcenjets, GCTforjets, GCTtaujets
275  int cid = it->cid();
277 
278  if(verbose())
279  std::cout << "[L1TdeGCT] processing digi "
280  << " sys:" << sid
281  << " type:" << cid
282  << " \n\t"
283  << *it << "\n"
284  << std::flush;
285 
286  //assert(cid==GCT);
287  if(sid!=GCT || it->empty()) {
288  LogDebug("L1TdeGCT") << "consistency check failure, non-gct digis!";
289  continue;
290  }
291 
292  int type = it->type();
293  double phiv = it->x1();
294  double etav = it->x2();
295  float rankarr[2];
296  it->rank(rankarr);
297  float rnkv = rankarr[0];
298 
299  double wei = 1.;
300 
301  unsigned int mask = (~0x0);
302 
303  // shift coll type for starting at zero
304  int ccid = cid - dedefs::GCTisolaem;
305  if(ccid<0 || ccid >= nGctColl_) {
306  LogDebug("L1TdeGCT") << "consistency check failure, col type outbounds:"
307  << ccid << "\n";
308  ccid=0;
309  }
310 
311  //type: 0:agree 1:loc.agree, 2:loc.disagree, 3:data.only, 4:emul.only
312  if(it->type()<4)
313  sysncand[0]->Fill(ccid);
314  if(it->type()<5&&it->type()!=3)
315  sysncand[1]->Fill(ccid);
316 
317  errortype[ccid]->Fill(type);
318 
319  wei=1.; if(!type) wei=0.;
320  if(etav!=nullVal && phiv!=nullVal)
321  etaphi[ccid]->Fill(etav,phiv,wei);
322  if(etav!=nullVal)
323  eta [ccid]->Fill(etav,wei);
324  if(phiv!=nullVal)
325  phi [ccid]->Fill(phiv,wei);
326  rnk[ccid]->Fill(rnkv,wei);
327 
328  //exclude e-only cands (only data)
329  wei=1.;if(type==4) wei=0.;
330  if(etav!=nullVal)
331  etaData[ccid]->Fill(etav,wei);
332  if(phiv!=nullVal)
333  phiData[ccid]->Fill(phiv,wei);
334  rnkData[ccid]->Fill(rnkv,wei);
335  wei=1;
336 
337  // GCT trigger bits
338  unsigned int word[2];
339  it->data(word);
340  std::bitset<32> dbits(word[0]);
341  std::bitset<32> ebits(word[1]);
342  unsigned int dexor = ( (word[0]) ^ (word[1]) );
343  //disagreeing bits
344  std::bitset<32> debits(dexor);
345  //disagreeing bits after masking
346  std::bitset<32> dembits( ( (dexor) & (mask) ) );
347 
348  if(verbose())
349  std::cout << "l1degct"
350  << " sid:" << sid << " cid:" << cid << "\n"
351  << " data:0x" << std::hex << word[0] << std::dec
352  << " bitset:" << dbits
353  << "\n"
354  << " emul:0x" << std::hex << word[1] << std::dec
355  << " bitset:" << ebits
356  << "\n"
357  << " xor:0x" << std::hex << dexor << std::dec
358  << " bitset:" << debits
359  << " bitset:" << ( (dbits) ^ (ebits) )
360  << "\n" << std::flush;
361 
363  for(int ibit=0; ibit<32; ibit++) {
364  wei=1.;
365  //comparison gives no info if there's only 1 candidate
366  if(type==3 || type==4) wei=0.;
367  if(dbits [ibit]) dword[sid]->Fill(ibit,wei);
368  if(ebits [ibit]) eword[sid]->Fill(ibit,wei);
369  if(debits [ibit])deword[sid]->Fill(ibit,wei);
370  //if(dembits[ibit])masked[sid]->Fill(ibit,wei);
371  }
372  wei=1;
373 
374  }
375 
376  //error rates per GCT trigger object type
377  int hasCol[nGctColl_]={0};
378  int nagree[nGctColl_]={0};
379  for(L1DEDigiCollection::const_iterator it=gctColl.begin();
380  it!=gctColl.end(); it++) {
381  int ccid = it->cid()-dedefs::GCTisolaem;
382  ccid = (ccid<0 || ccid >= nGctColl_) ? 0:ccid;
383  hasCol[ccid]++;
384  if(!it->type())
385  nagree[ccid]++;
386  }
387  for(int i=0; i<nGctColl_; i++) {
388  if(!hasCol[i]) continue;
390  //nWithCol[i]++;
391  //if(nagree[i]<hasCol[i]) colCount[i]++;
393  nWithCol[i]+=hasCol[i];//#of objects
394  colCount[i]+=nagree[i];//#of agreements
395  }
396  for(int i=0; i<nGctColl_; i++) {
397  int ibin = i+1;
398  double rate = nWithCol[i] ? 1.-1.*colCount[i]/nWithCol[i]: 0.;
399  sysrates->setBinContent(ibin,rate);
400  if(verbose()) {
401  std::cout << "[L1TDEMON] analyze rate computation\t\n"
402  << " colid:" << i
403  << "(so far)"
404  << " nWithCol: " << nWithCol[i]
405  << " colCount: " << colCount[i]
406  << "(this event)"
407  << "hasCol: " << hasCol[i]
408  << " nagree: " << nagree[i]
409  << " rate:" << sysrates->getBinContent(ibin)
410  << "\n" << std::flush;
411  if(rate>1. || rate<0.)
412  std::cout << "problem, error rate for " << SystLabel[i]
413  <<" is "<<sysrates->getBinContent(ibin)
414  << "\n" << std::flush;
415  }
416  }
417 
418 
419  if(verbose())
420  std::cout << "L1TdeGCT::analyze() end.\n" << std::flush;
421 
422 }
#define LogDebug(id)
int nWithCol[nGctColl_]
Definition: L1TdeGCT.h:67
int colCount[nGctColl_]
Definition: L1TdeGCT.h:66
type
Definition: HCALResponse.h:21
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
MonitorElement * phiData[nGctColl_]
Definition: L1TdeGCT.h:96
MonitorElement * phi[nGctColl_]
Definition: L1TdeGCT.h:93
MonitorElement * eta[nGctColl_]
Definition: L1TdeGCT.h:92
MonitorElement * sysrates
Definition: L1TdeGCT.h:87
std::vector< L1DataEmulDigi > L1DEDigiCollection
Definition: DEtrait.h:79
static const int nGctColl_
Definition: L1TdeGCT.h:63
void Fill(long long x)
MonitorElement * etaData[nGctColl_]
Definition: L1TdeGCT.h:95
MonitorElement * rnk[nGctColl_]
Definition: L1TdeGCT.h:94
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * errortype[nGctColl_]
Definition: L1TdeGCT.h:89
bool hasRecord_
Definition: L1TdeGCT.h:46
int j
Definition: DBlmapReader.cc:9
MonitorElement * rnkData[nGctColl_]
Definition: L1TdeGCT.h:97
MonitorElement * sysncand[2]
Definition: L1TdeGCT.h:88
bool isValid() const
Definition: HandleBase.h:76
MonitorElement * dword[nGctColl_]
Definition: L1TdeGCT.h:100
edm::EDGetTokenT< L1DataEmulRecord > DEsource_
Definition: L1TdeGCT.h:45
const std::string SystLabel[DEnsys]
Definition: DEtrait.h:45
double rate(double x)
Definition: Constants.cc:3
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * deword[nGctColl_]
Definition: L1TdeGCT.h:102
MonitorElement * eword[nGctColl_]
Definition: L1TdeGCT.h:101
tuple cout
Definition: gather_cfg.py:121
MonitorElement * etaphi[nGctColl_]
Definition: L1TdeGCT.h:91
int verbose()
Definition: L1TdeGCT.h:50
void L1TdeGCT::beginJob ( void  )
protectedvirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 180 of file L1TdeGCT.cc.

180  {
181 }
void L1TdeGCT::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
protectedvirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 44 of file L1TdeGCT.cc.

References gather_cfg::cout, eta(), fastmath::etaphi(), i, j, phi, AlCaHLTBitMon_QueryRunRegistry::string, indexGen::title, and validate_alignment_devdb10_cfg::verbose.

44  {
45 
46  if(verbose())
47  std::cout << "L1TdeGCT::beginRun() start\n" << std::flush;
48 
49  if(dbe) {
52  }
53 
54  if(dbe) {
56 
57  // book histograms here
58  sysrates = dbe->book1D("sysrates","RATE OF COMPARISON FAILURES",nGctColl_, 0, nGctColl_ );
59 
60  for(int j=0; j<2; j++) {
61  std::string lbl("sysncand");
62  lbl += (j==0?"Data":"Emul");
63  std::string title("GCT OBJECT MULTIPLICITY ");
64  title += (j==0?"(DATA)":"(EMULATOR)");
65  sysncand[j] = dbe->book1D(lbl.data(),title.data(),nGctColl_, 0, nGctColl_ );
66  }
67 
68  for(int j=0; j<nGctColl_; j++) {
69 
71 
72  std::string lbl("");
73  std::string title("");
74  lbl.clear();
75  title.clear();
76  lbl+=cLabel[j];lbl+="ErrorFlag";
77  title+=cLabel[j];title+=" ErrorFlag";
78  errortype[j] = dbe->book1D(lbl.data(),title.data(), nerr, 0, nerr);
79 
80  lbl.clear();
81  title.clear();
82  lbl+=cLabel[j];lbl+="Eta";
83  title+=cLabel[j];title+=" ETA OF COMPARISON FAILURES";
84  eta[j] = dbe->book1D(lbl.data(),title.data(),
86  lbl.clear();
87  title.clear();
88  lbl+=cLabel[j];lbl+="Phi";
89  title+=cLabel[j];title+=" PHI OF COMPARISON FAILURES";
90  phi[j] = dbe->book1D(lbl.data(),title.data(),
92 
93  lbl.clear();
94  title.clear();
95  lbl+=cLabel[j];lbl+="Etaphi";
96  title+=cLabel[j];title+=" ETA PHI OF COMPARISON FAILURES";
97  etaphi[j] = dbe->book2D(lbl.data(),title.data(),
100  );
101  lbl.clear();
102  title.clear();
103  lbl+=cLabel[j];lbl+="Rank";
104  title+=cLabel[j];title+=" RANK OF COMPARISON FAILURES";
105  rnk[j] = dbe->book1D(lbl.data(),title.data(),
107  //
108  lbl.clear();
109  title.clear();
110  lbl+=cLabel[j];lbl+="Eta"; lbl+="Data";
111  title+=cLabel[j];title+=" ETA (DATA)";
112  etaData[j] = dbe->book1D(lbl.data(),title.data(),
114  lbl.clear();
115  title.clear();
116  lbl+=cLabel[j];lbl+="Phi"; lbl+="Data";
117  title+=cLabel[j];title+=" PHI (DATA)";
118  phiData[j] = dbe->book1D(lbl.data(),title.data(),
120 
121  lbl.clear();
122  title.clear();
123  lbl+=cLabel[j];lbl+="Rank"; lbl+="Data";
124  title+=cLabel[j];title+=" RANK (DATA)";
125  rnkData[j] = dbe->book1D(lbl.data(),title.data(),
127  lbl.clear();
128  lbl+=cLabel[j];lbl+="Dword";
129  dword[j] = dbe->book1D(lbl.data(),lbl.data(),nbit,0,nbit);
130  lbl.clear();
131  lbl+=cLabel[j];lbl+="Eword";
132  eword[j] = dbe->book1D(lbl.data(),lbl.data(),nbit,0,nbit);
133  lbl.clear();
134  lbl+=cLabel[j];lbl+="DEword";
135  deword[j] = dbe->book1D(lbl.data(),lbl.data(),nbit,0,nbit);
136  //lbl.clear();
137  //lbl+=cLabel[j];lbl+="Masked";
138  //masked[j] = dbe->book1D(lbl.data(),lbl.data(),nbit,0,nbit);
139  }
140 
141  }
142 
143  for(int i=0; i<nGctColl_; i++) {
144  sysrates ->setBinLabel(i+1,cLabel[i]);
145  sysncand[0]->setBinLabel(i+1,cLabel[i]);
146  sysncand[1]->setBinLabel(i+1,cLabel[i]);
147  }
148 
149  for(int i=0; i<nGctColl_; i++) {
150  for(int j=0; j<nerr; j++) {
151  errortype[i]->setBinLabel(j+1,errLabel[j]);
152  }
153  }
154 
155  for(int i=0; i<nGctColl_; i++) {
156  etaphi [i]->setAxisTitle("GCT #eta",1);
157  etaphi [i]->setAxisTitle("GCT #phi",2);
158  eta [i]->setAxisTitle("GCT #eta");
159  phi [i]->setAxisTitle("GCT #phi");
160  rnk [i]->setAxisTitle("Rank");
161  etaData[i]->setAxisTitle("GCT #eta");
162  phiData[i]->setAxisTitle("GCT #phi");
163  rnkData[i]->setAxisTitle("Rank");
164  dword [i]->setAxisTitle("trigger data word bit");
165  eword [i]->setAxisTitle("trigger data word bit");
166  deword [i]->setAxisTitle("trigger data word bit");
167  //masked [i]->setAxisTitle("trigger data word bit");
168  }
169 
170  for(int i=0; i<nGctColl_; i++) {
171  colCount[i]=0;
172  nWithCol[i]=0;
173  }
174 
175  if(verbose())
176  std::cout << "L1TdeGCT::beginJob() end.\n" << std::flush;
177 }
int nWithCol[nGctColl_]
Definition: L1TdeGCT.h:67
int colCount[nGctColl_]
Definition: L1TdeGCT.h:66
int i
Definition: DBlmapReader.cc:9
const int rnkNBins
Definition: L1TdeGCT.h:76
const double etaMaxim
Definition: L1TdeGCT.h:75
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
DQMStore * dbe
Definition: L1TdeGCT.h:59
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
MonitorElement * phiData[nGctColl_]
Definition: L1TdeGCT.h:96
const double rnkMaxim
Definition: L1TdeGCT.h:78
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
const int nbit
Definition: L1TdeGCT.h:80
MonitorElement * phi[nGctColl_]
Definition: L1TdeGCT.h:93
MonitorElement * eta[nGctColl_]
Definition: L1TdeGCT.h:92
MonitorElement * sysrates
Definition: L1TdeGCT.h:87
const int etaNBins
Definition: L1TdeGCT.h:73
static const int nGctColl_
Definition: L1TdeGCT.h:63
MonitorElement * etaData[nGctColl_]
Definition: L1TdeGCT.h:95
const int phiNBins
Definition: L1TdeGCT.h:70
MonitorElement * rnk[nGctColl_]
Definition: L1TdeGCT.h:94
MonitorElement * errortype[nGctColl_]
Definition: L1TdeGCT.h:89
const double phiMaxim
Definition: L1TdeGCT.h:72
int j
Definition: DBlmapReader.cc:9
MonitorElement * rnkData[nGctColl_]
Definition: L1TdeGCT.h:97
MonitorElement * sysncand[2]
Definition: L1TdeGCT.h:88
MonitorElement * dword[nGctColl_]
Definition: L1TdeGCT.h:100
const double etaMinim
Definition: L1TdeGCT.h:74
static const int nerr
Definition: L1TdeGCT.h:79
std::string cLabel[nGctColl_]
Definition: L1TdeGCT.h:81
const double phiMinim
Definition: L1TdeGCT.h:71
MonitorElement * deword[nGctColl_]
Definition: L1TdeGCT.h:102
MonitorElement * eword[nGctColl_]
Definition: L1TdeGCT.h:101
tuple cout
Definition: gather_cfg.py:121
MonitorElement * etaphi[nGctColl_]
Definition: L1TdeGCT.h:91
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:1000
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::string histFolder_
Definition: L1TdeGCT.h:56
int verbose()
Definition: L1TdeGCT.h:50
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
const double rnkMinim
Definition: L1TdeGCT.h:77
std::string errLabel[nerr]
Definition: L1TdeGCT.h:83
void L1TdeGCT::endJob ( void  )
protectedvirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 184 of file L1TdeGCT.cc.

References gather_cfg::cout, and validate_alignment_devdb10_cfg::verbose.

184  {
185  if(verbose())
186  std::cout << "L1TdeGCT::endJob()...\n" << std::flush;
187 
188  if(histFile_.size()!=0 && dbe)
189  dbe->save(histFile_);
190 
191  if(verbose())
192  std::cout << "L1TdeGCT::endJob() end.\n" << std::flush;
193 }
DQMStore * dbe
Definition: L1TdeGCT.h:59
std::string histFile_
Definition: L1TdeGCT.h:53
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2296
tuple cout
Definition: gather_cfg.py:121
int verbose()
Definition: L1TdeGCT.h:50
int L1TdeGCT::verbose ( )
inlineprivate

Definition at line 50 of file L1TdeGCT.h.

References verbose_.

50 {return verbose_;}
int verbose_
Definition: L1TdeGCT.h:49

Member Data Documentation

std::string L1TdeGCT::cLabel[nGctColl_]
private
Initial value:
=
{"IsoEM", "NoisoEM", "CenJet", "ForJet", "TauJet", "HT", "MET", "ET", "MHT", "HFSums", "HFCnts"}

Definition at line 81 of file L1TdeGCT.h.

int L1TdeGCT::colCount[nGctColl_]
private

Definition at line 66 of file L1TdeGCT.h.

DQMStore* L1TdeGCT::dbe
private

Definition at line 59 of file L1TdeGCT.h.

edm::EDGetTokenT<L1DataEmulRecord> L1TdeGCT::DEsource_
private

Definition at line 45 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::deword[nGctColl_]
private

Definition at line 102 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::dword[nGctColl_]
private

Definition at line 100 of file L1TdeGCT.h.

std::string L1TdeGCT::errLabel[nerr]
private
Initial value:
=
{"Agree", "Loc. Agree", "L.Disagree", "Data only", "Emul only"}

Definition at line 83 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::errortype[nGctColl_]
private

Definition at line 89 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::eta[nGctColl_]
private

Definition at line 92 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::etaData[nGctColl_]
private

Definition at line 95 of file L1TdeGCT.h.

const double L1TdeGCT::etaMaxim = 21.5
private

Definition at line 75 of file L1TdeGCT.h.

const double L1TdeGCT::etaMinim = -0.5
private

Definition at line 74 of file L1TdeGCT.h.

const int L1TdeGCT::etaNBins = 22
private

Definition at line 73 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::etaphi[nGctColl_]
private

Definition at line 91 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::eword[nGctColl_]
private

Definition at line 101 of file L1TdeGCT.h.

bool L1TdeGCT::hasRecord_
private

Definition at line 46 of file L1TdeGCT.h.

std::string L1TdeGCT::histFile_
private

Definition at line 53 of file L1TdeGCT.h.

std::string L1TdeGCT::histFolder_
private

Definition at line 56 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::masked[nGctColl_]
private

Definition at line 103 of file L1TdeGCT.h.

bool L1TdeGCT::monitorDaemon_
private

Definition at line 60 of file L1TdeGCT.h.

const int L1TdeGCT::nbit = 32
private

Definition at line 80 of file L1TdeGCT.h.

const int L1TdeGCT::nerr = 5
staticprivate

Definition at line 79 of file L1TdeGCT.h.

const int L1TdeGCT::nGctColl_ = dedefs::GCThfbit-dedefs::GCTisolaem+1
staticprivate

Definition at line 63 of file L1TdeGCT.h.

int L1TdeGCT::nWithCol[nGctColl_]
private

Definition at line 67 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::phi[nGctColl_]
private

Definition at line 93 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::phiData[nGctColl_]
private

Definition at line 96 of file L1TdeGCT.h.

const double L1TdeGCT::phiMaxim = 17.5
private

Definition at line 72 of file L1TdeGCT.h.

const double L1TdeGCT::phiMinim = -0.5
private

Definition at line 71 of file L1TdeGCT.h.

const int L1TdeGCT::phiNBins = 18
private

Definition at line 70 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::rnk[nGctColl_]
private

Definition at line 94 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::rnkData[nGctColl_]
private

Definition at line 97 of file L1TdeGCT.h.

const double L1TdeGCT::rnkMaxim = 63.5
private

Definition at line 78 of file L1TdeGCT.h.

const double L1TdeGCT::rnkMinim = 0.5
private

Definition at line 77 of file L1TdeGCT.h.

const int L1TdeGCT::rnkNBins = 63
private

Definition at line 76 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::sysncand[2]
private

Definition at line 88 of file L1TdeGCT.h.

MonitorElement* L1TdeGCT::sysrates
private

Definition at line 87 of file L1TdeGCT.h.

int L1TdeGCT::verbose_
private

Definition at line 49 of file L1TdeGCT.h.

Referenced by verbose().