19 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_GlobalRecHitsAnalyzer";
30 m_Prov.getUntrackedParameter<
bool>(
"GetAllProvenances");
32 m_Prov.getUntrackedParameter<
bool>(
"PrintProvenanceInfo");
62 <<
"\n===============================\n"
63 <<
"Initialized as EDProducer with parameter values:\n"
64 <<
" Name = " <<
fName <<
"\n"
65 <<
" Verbosity = " << verbosity <<
"\n"
66 <<
" Frequency = " << frequency <<
"\n"
67 <<
" OutputFile = " << outputfile <<
"\n"
68 <<
" DoOutput = " << doOutput <<
"\n"
69 <<
" GetProv = " << getAllProvenances <<
"\n"
70 <<
" PrintProv = " << printProvenanceInfo <<
"\n"
71 <<
" Global Src = " << GlobalRecHitSrc_ <<
"\n"
72 <<
"===============================\n";
98 string SiStripString[19] = {
"TECW1",
"TECW2",
"TECW3",
"TECW4",
"TECW5",
"TECW6",
"TECW7",
"TECW8",
"TIBL1",
"TIBL2",
"TIBL3",
"TIBL4",
"TIDW1",
"TIDW2",
"TIDW3",
"TOBL1",
"TOBL2",
"TOBL3",
"TOBL4"};
99 for(
int i = 0;
i<19; ++
i)
105 string hcharname, hchartitle;
107 for(
int amend = 0; amend < 19; ++amend)
109 hcharname =
"hSiStripn_"+SiStripString[amend];
110 hchartitle= SiStripString[amend]+
" rechits";
111 sprintf(hname, hcharname.c_str());
112 sprintf(htitle, hchartitle.c_str());
114 mehSiStripn[amend]->
setAxisTitle(
"Number of hits in "+SiStripString[amend],1);
115 mehSiStripn[amend]->setAxisTitle(
"Count",2);
116 hcharname =
"hSiStripResX_"+SiStripString[amend];
117 hchartitle= SiStripString[amend]+
" rechit x resolution";
118 sprintf(hname, hcharname.c_str());
119 sprintf(htitle, hchartitle.c_str());
121 mehSiStripResX[amend]->
setAxisTitle(
"X-resolution in "+SiStripString[amend],1);
122 mehSiStripResX[amend]->setAxisTitle(
"Count",2);
123 hcharname =
"hSiStripResY_"+SiStripString[amend];
124 hchartitle= SiStripString[amend]+
" rechit y resolution";
125 sprintf(hname, hcharname.c_str());
126 sprintf(htitle, hchartitle.c_str());
128 mehSiStripResY[amend]->
setAxisTitle(
"Y-resolution in "+SiStripString[amend],1);
129 mehSiStripResY[amend]->setAxisTitle(
"Count",2);
135 string HCalString[4]={
"HB",
"HE",
"HF",
"HO"};
136 float HCalnUpper[4]={3000.,3000.,3000.,2000.};
float HCalnLower[4]={2000.,2000.,2000.,1000.};
137 for(
int j =0;
j <4; ++
j)
144 for(
int amend = 0; amend < 4; ++amend)
146 hcharname =
"hHcaln_"+HCalString[amend];
147 hchartitle= HCalString[amend]+
" rechits";
148 sprintf(hname, hcharname.c_str());
149 sprintf(htitle, hchartitle.c_str());
150 mehHcaln[amend] =
dbe->
book1D(hname,htitle, 500, HCalnLower[amend], HCalnUpper[amend]);
152 mehHcaln[amend]->setAxisTitle(
"Count",2);
153 hcharname =
"hHcalRes_"+HCalString[amend];
154 hchartitle= HCalString[amend]+
" rechit resolution";
155 sprintf(hname, hcharname.c_str());
156 sprintf(htitle, hchartitle.c_str());
158 mehHcalRes[amend]->
setAxisTitle(
"RecHit E - SimHit E",1);
159 mehHcalRes[amend]->setAxisTitle(
"Count",2);
164 string ECalString[3] = {
"EB",
"EE",
"ES"};
165 int ECalnBins[3] = {700,100,50};
166 float ECalnUpper[3] = {20000., 62000., 300.};
167 float ECalnLower[3] = {6000., 60000., 100.};
168 int ECalResBins[3] = {200,200,200};
169 float ECalResUpper[3] = {1., 0.3, .0002};
170 float ECalResLower[3] = {-1., -0.3, -.0002};
171 for(
int i =0;
i<3; ++
i)
178 for(
int amend = 0; amend < 3; ++amend)
180 hcharname =
"hEcaln_"+ECalString[amend];
181 hchartitle= ECalString[amend]+
" rechits";
182 sprintf(hname, hcharname.c_str());
183 sprintf(htitle, hchartitle.c_str());
184 mehEcaln[amend] =
dbe->
book1D(hname,htitle, ECalnBins[amend], ECalnLower[amend], ECalnUpper[amend]);
186 mehEcaln[amend]->setAxisTitle(
"Count",2);
187 hcharname =
"hEcalRes_"+ECalString[amend];
188 hchartitle= ECalString[amend]+
" rechit resolution";
189 sprintf(hname, hcharname.c_str());
190 sprintf(htitle, hchartitle.c_str());
191 mehEcalRes[amend] =
dbe->
book1D(hname,htitle,ECalResBins[amend], ECalResLower[amend], ECalResUpper[amend]);
192 mehEcalRes[amend]->
setAxisTitle(
"RecHit E - SimHit E",1);
193 mehEcalRes[amend]->setAxisTitle(
"Count",2);
198 string SiPixelString[7] = {
"BRL1",
"BRL2",
"BRL3",
"FWD1n",
"FWD1p",
"FWD2n",
"FWD2p"};
199 for(
int j =0;
j<7; ++
j)
207 for(
int amend = 0; amend < 7; ++amend)
209 hcharname =
"hSiPixeln_"+SiPixelString[amend];
210 hchartitle= SiPixelString[amend]+
" rechits";
211 sprintf(hname, hcharname.c_str());
212 sprintf(htitle, hchartitle.c_str());
214 mehSiPixeln[amend]->
setAxisTitle(
"Number of hits in "+SiPixelString[amend],1);
215 mehSiPixeln[amend]->setAxisTitle(
"Count",2);
216 hcharname =
"hSiPixelResX_"+SiPixelString[amend];
217 hchartitle= SiPixelString[amend]+
" rechit x resolution";
218 sprintf(hname, hcharname.c_str());
219 sprintf(htitle, hchartitle.c_str());
221 mehSiPixelResX[amend]->
setAxisTitle(
"X-resolution in "+SiPixelString[amend],1);
222 mehSiPixelResX[amend]->setAxisTitle(
"Count",2);
223 hcharname =
"hSiPixelResY_"+SiPixelString[amend];
224 hchartitle= SiPixelString[amend]+
" rechit y resolution";
226 sprintf(hname, hcharname.c_str());
227 sprintf(htitle, hchartitle.c_str());
229 mehSiPixelResY[amend]->
setAxisTitle(
"Y-resolution in "+SiPixelString[amend],1);
230 mehSiPixelResY[amend]->setAxisTitle(
"Count",2);
240 string n_List[3] = {
"hDtMuonn",
"hCSCn",
"hRPCn"};
242 string hist_string[3] = {
"Dt",
"CSC",
"RPC"};
244 for(
int amend=0; amend<3; ++amend)
246 hchartitle = hist_string[amend]+
" rechits";
247 sprintf(hname, n_List[amend].c_str());
248 sprintf(htitle, hchartitle.c_str());
273 sprintf(hname,
"hDtMuonRes");
274 sprintf(htitle,
"DT wire distance resolution");
276 sprintf(hname,
"CSCResRDPhi");
277 sprintf(htitle,
"CSC perp*dphi resolution");
279 sprintf(hname,
"hRPCResX");
280 sprintf(htitle,
"RPC rechits x resolution");
300 std::string MsgLoggerCat =
"GlobalRecHitsAnalyzer_endJob";
303 <<
"Terminating having processed " <<
count <<
" events.";
310 std::string MsgLoggerCat =
"GlobalRecHitsHistogrammer_analyze";
316 int nrun = iEvent.
id().
run();
317 int nevt = iEvent.
id().
event();
321 <<
"Processing run " << nrun <<
", event " << nevt
322 <<
" (" <<
count <<
" events total)";
326 <<
"Processing run " << nrun <<
", event " << nevt
327 <<
" (" <<
count <<
" events total)";
337 std::vector<const edm::Provenance*> AllProv;
342 <<
"Number of Provenances = " << AllProv.size();
345 TString eventout(
"\nProvenance info:\n");
347 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
348 eventout +=
"\n ******************************";
349 eventout +=
"\n Module : ";
351 eventout += AllProv[
i]->moduleLabel();
352 eventout +=
"\n ProductID : ";
354 eventout += AllProv[
i]->productID().id();
355 eventout +=
"\n ClassName : ";
357 eventout += AllProv[
i]->className();
358 eventout +=
"\n InstanceName : ";
360 eventout += AllProv[
i]->productInstanceName();
361 eventout +=
"\n BranchName : ";
363 eventout += AllProv[
i]->branchName();
365 eventout +=
"\n ******************************\n";
374 if (!srcGlobalRecHits.
isValid()) {
376 <<
"Unable to find PGlobalRecHit in event!";
380 int nEBCalRecHits = srcGlobalRecHits->getnEBCalRecHits();
381 int nEECalRecHits = srcGlobalRecHits->getnEECalRecHits();
382 int nESCalRecHits = srcGlobalRecHits->getnESCalRecHits();
384 int nHBCalRecHits = srcGlobalRecHits->getnHBCalRecHits();
385 int nHECalRecHits = srcGlobalRecHits->getnHECalRecHits();
386 int nHOCalRecHits = srcGlobalRecHits->getnHOCalRecHits();
387 int nHFCalRecHits = srcGlobalRecHits->getnHFCalRecHits();
389 int nTIBL1RecHits = srcGlobalRecHits->getnTIBL1RecHits();
390 int nTIBL2RecHits = srcGlobalRecHits->getnTIBL2RecHits();
391 int nTIBL3RecHits = srcGlobalRecHits->getnTIBL3RecHits();
392 int nTIBL4RecHits = srcGlobalRecHits->getnTIBL4RecHits();
393 int nTOBL1RecHits = srcGlobalRecHits->getnTOBL1RecHits();
394 int nTOBL2RecHits = srcGlobalRecHits->getnTOBL2RecHits();
395 int nTOBL3RecHits = srcGlobalRecHits->getnTOBL3RecHits();
396 int nTOBL4RecHits = srcGlobalRecHits->getnTOBL4RecHits();
397 int nTIDW1RecHits = srcGlobalRecHits->getnTIDW1RecHits();
398 int nTIDW2RecHits = srcGlobalRecHits->getnTIDW2RecHits();
399 int nTIDW3RecHits = srcGlobalRecHits->getnTIDW3RecHits();
400 int nTECW1RecHits = srcGlobalRecHits->getnTECW1RecHits();
401 int nTECW2RecHits = srcGlobalRecHits->getnTECW2RecHits();
402 int nTECW3RecHits = srcGlobalRecHits->getnTECW3RecHits();
403 int nTECW4RecHits = srcGlobalRecHits->getnTECW4RecHits();
404 int nTECW5RecHits = srcGlobalRecHits->getnTECW5RecHits();
405 int nTECW6RecHits = srcGlobalRecHits->getnTECW6RecHits();
406 int nTECW7RecHits = srcGlobalRecHits->getnTECW7RecHits();
407 int nTECW8RecHits = srcGlobalRecHits->getnTECW8RecHits();
409 int nBRL1RecHits = srcGlobalRecHits->getnBRL1RecHits();
410 int nBRL2RecHits = srcGlobalRecHits->getnBRL2RecHits();
411 int nBRL3RecHits = srcGlobalRecHits->getnBRL3RecHits();
412 int nFWD1nRecHits = srcGlobalRecHits->getnFWD1nRecHits();
413 int nFWD1pRecHits = srcGlobalRecHits->getnFWD1pRecHits();
414 int nFWD2nRecHits = srcGlobalRecHits->getnFWD2nRecHits();
415 int nFWD2pRecHits = srcGlobalRecHits->getnFWD2pRecHits();
417 int nDTRecHits = srcGlobalRecHits->getnDTRecHits();
419 int nCSCRecHits = srcGlobalRecHits->getnCSCRecHits();
421 int nRPCRecHits = srcGlobalRecHits->getnRPCRecHits();
424 std::vector<PGlobalRecHit::ECalRecHit> EECalRecHits =
425 srcGlobalRecHits->getEECalRecHits();
427 for (
unsigned int i = 0;
i < EECalRecHits.size(); ++
i) {
431 std::vector<PGlobalRecHit::ECalRecHit> EBCalRecHits =
432 srcGlobalRecHits->getEBCalRecHits();
434 for (
unsigned int i = 0;
i < EBCalRecHits.size(); ++
i) {
438 std::vector<PGlobalRecHit::ECalRecHit> ESCalRecHits =
439 srcGlobalRecHits->getESCalRecHits();
441 for (
unsigned int i = 0;
i < ESCalRecHits.size(); ++
i) {
446 std::vector<PGlobalRecHit::HCalRecHit> HBCalRecHits =
447 srcGlobalRecHits->getHBCalRecHits();
449 for (
unsigned int i = 0;
i < HBCalRecHits.size(); ++
i) {
453 std::vector<PGlobalRecHit::HCalRecHit> HECalRecHits =
454 srcGlobalRecHits->getHECalRecHits();
456 for (
unsigned int i = 0;
i < HECalRecHits.size(); ++
i) {
460 std::vector<PGlobalRecHit::HCalRecHit> HOCalRecHits =
461 srcGlobalRecHits->getHOCalRecHits();
463 for (
unsigned int i = 0;
i < HOCalRecHits.size(); ++
i) {
467 std::vector<PGlobalRecHit::HCalRecHit> HFCalRecHits =
468 srcGlobalRecHits->getHFCalRecHits();
470 for (
unsigned int i = 0;
i < HFCalRecHits.size(); ++
i) {
475 std::vector<PGlobalRecHit::SiStripRecHit> TIBL1RecHits =
476 srcGlobalRecHits->getTIBL1RecHits();
478 for (
unsigned int i = 0;
i < TIBL1RecHits.size(); ++
i) {
483 std::vector<PGlobalRecHit::SiStripRecHit> TIBL2RecHits =
484 srcGlobalRecHits->getTIBL2RecHits();
486 for (
unsigned int i = 0;
i < TIBL2RecHits.size(); ++
i) {
491 std::vector<PGlobalRecHit::SiStripRecHit> TIBL3RecHits =
492 srcGlobalRecHits->getTIBL3RecHits();
494 for (
unsigned int i = 0;
i < TIBL3RecHits.size(); ++
i) {
499 std::vector<PGlobalRecHit::SiStripRecHit> TIBL4RecHits =
500 srcGlobalRecHits->getTIBL4RecHits();
502 for (
unsigned int i = 0;
i < TIBL4RecHits.size(); ++
i) {
507 std::vector<PGlobalRecHit::SiStripRecHit> TOBL1RecHits =
508 srcGlobalRecHits->getTOBL1RecHits();
510 for (
unsigned int i = 0;
i < TOBL1RecHits.size(); ++
i) {
515 std::vector<PGlobalRecHit::SiStripRecHit> TOBL2RecHits =
516 srcGlobalRecHits->getTOBL2RecHits();
518 for (
unsigned int i = 0;
i < TOBL2RecHits.size(); ++
i) {
523 std::vector<PGlobalRecHit::SiStripRecHit> TOBL3RecHits =
524 srcGlobalRecHits->getTOBL3RecHits();
526 for (
unsigned int i = 0;
i < TOBL3RecHits.size(); ++
i) {
531 std::vector<PGlobalRecHit::SiStripRecHit> TOBL4RecHits =
532 srcGlobalRecHits->getTOBL4RecHits();
534 for (
unsigned int i = 0;
i < TOBL4RecHits.size(); ++
i) {
539 std::vector<PGlobalRecHit::SiStripRecHit> TIDW1RecHits =
540 srcGlobalRecHits->getTIDW1RecHits();
542 for (
unsigned int i = 0;
i < TIDW1RecHits.size(); ++
i) {
547 std::vector<PGlobalRecHit::SiStripRecHit> TIDW2RecHits =
548 srcGlobalRecHits->getTIDW2RecHits();
550 for (
unsigned int i = 0;
i < TIDW2RecHits.size(); ++
i) {
555 std::vector<PGlobalRecHit::SiStripRecHit> TIDW3RecHits =
556 srcGlobalRecHits->getTIDW3RecHits();
558 for (
unsigned int i = 0;
i < TIDW3RecHits.size(); ++
i) {
563 std::vector<PGlobalRecHit::SiStripRecHit> TECW1RecHits =
564 srcGlobalRecHits->getTECW1RecHits();
566 for (
unsigned int i = 0;
i < TECW1RecHits.size(); ++
i) {
571 std::vector<PGlobalRecHit::SiStripRecHit> TECW2RecHits =
572 srcGlobalRecHits->getTECW2RecHits();
574 for (
unsigned int i = 0;
i < TECW2RecHits.size(); ++
i) {
579 std::vector<PGlobalRecHit::SiStripRecHit> TECW3RecHits =
580 srcGlobalRecHits->getTECW3RecHits();
582 for (
unsigned int i = 0;
i < TECW3RecHits.size(); ++
i) {
587 std::vector<PGlobalRecHit::SiStripRecHit> TECW4RecHits =
588 srcGlobalRecHits->getTECW4RecHits();
590 for (
unsigned int i = 0;
i < TECW4RecHits.size(); ++
i) {
595 std::vector<PGlobalRecHit::SiStripRecHit> TECW5RecHits =
596 srcGlobalRecHits->getTECW5RecHits();
598 for (
unsigned int i = 0;
i < TECW5RecHits.size(); ++
i) {
603 std::vector<PGlobalRecHit::SiStripRecHit> TECW6RecHits =
604 srcGlobalRecHits->getTECW6RecHits();
606 for (
unsigned int i = 0;
i < TECW6RecHits.size(); ++
i) {
611 std::vector<PGlobalRecHit::SiStripRecHit> TECW7RecHits =
612 srcGlobalRecHits->getTECW7RecHits();
614 for (
unsigned int i = 0;
i < TECW7RecHits.size(); ++
i) {
619 std::vector<PGlobalRecHit::SiStripRecHit> TECW8RecHits =
620 srcGlobalRecHits->getTECW8RecHits();
622 for (
unsigned int i = 0;
i < TECW8RecHits.size(); ++
i) {
628 std::vector<PGlobalRecHit::SiPixelRecHit> BRL1RecHits =
629 srcGlobalRecHits->getBRL1RecHits();
631 for (
unsigned int i = 0;
i < BRL1RecHits.size(); ++
i) {
636 std::vector<PGlobalRecHit::SiPixelRecHit> BRL2RecHits =
637 srcGlobalRecHits->getBRL2RecHits();
639 for (
unsigned int i = 0;
i < BRL2RecHits.size(); ++
i) {
644 std::vector<PGlobalRecHit::SiPixelRecHit> BRL3RecHits =
645 srcGlobalRecHits->getBRL3RecHits();
647 for (
unsigned int i = 0;
i < BRL3RecHits.size(); ++
i) {
652 std::vector<PGlobalRecHit::SiPixelRecHit> FWD1pRecHits =
653 srcGlobalRecHits->getFWD1pRecHits();
655 for (
unsigned int i = 0;
i < FWD1pRecHits.size(); ++
i) {
660 std::vector<PGlobalRecHit::SiPixelRecHit> FWD1nRecHits =
661 srcGlobalRecHits->getFWD1nRecHits();
663 for (
unsigned int i = 0;
i < FWD1nRecHits.size(); ++
i) {
668 std::vector<PGlobalRecHit::SiPixelRecHit> FWD2pRecHits =
669 srcGlobalRecHits->getFWD2pRecHits();
671 for (
unsigned int i = 0;
i < FWD2pRecHits.size(); ++
i) {
676 std::vector<PGlobalRecHit::SiPixelRecHit> FWD2nRecHits =
677 srcGlobalRecHits->getFWD2nRecHits();
679 for (
unsigned int i = 0;
i < FWD2nRecHits.size(); ++
i) {
685 std::vector<PGlobalRecHit::DTRecHit> DTRecHits =
686 srcGlobalRecHits->getDTRecHits();
688 for (
unsigned int i = 0;
i < DTRecHits.size(); ++
i) {
693 std::vector<PGlobalRecHit::CSCRecHit> CSCRecHits =
694 srcGlobalRecHits->getCSCRecHits();
696 for (
unsigned int i = 0;
i < CSCRecHits.size(); ++
i) {
698 (CSCRecHits[
i].RHPHI - CSCRecHits[
i].SHPHI));
702 std::vector<PGlobalRecHit::RPCRecHit> RPCRecHits =
703 srcGlobalRecHits->getRPCRecHits();
705 for (
unsigned int i = 0;
i < RPCRecHits.size(); ++
i) {
711 <<
"Done gathering data from event.";
T getParameter(std::string const &) const
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
void getAllProvenance(std::vector< Provenance const * > &provenances) const
MonitorElement * mehSiPixeln[7]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
virtual ~GlobalRecHitsHistogrammer()
MonitorElement * mehEcaln[3]
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
MonitorElement * mehSiPixelResX[7]
MonitorElement * mehSiStripResX[19]
MonitorElement * mehDtMuonRes
MonitorElement * mehSiStripn[19]
MonitorElement * mehCSCResRDPhi
GlobalRecHitsHistogrammer(const edm::ParameterSet &)
void setVerbose(unsigned level)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * mehEcalRes[3]
MonitorElement * mehSiPixelResY[7]
MonitorElement * mehDtMuonn
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * mehSiStripResY[19]
MonitorElement * mehHcalRes[4]
edm::InputTag GlobalRecHitSrc_
void showDirStructure(void) const
MonitorElement * mehRPCResX
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * mehHcaln[4]