00001
00010 #include "Validation/GlobalDigis/interface/GlobalDigisHistogrammer.h"
00011 #include "DQMServices/Core/interface/DQMStore.h"
00012
00013 GlobalDigisHistogrammer::GlobalDigisHistogrammer(const edm::ParameterSet& iPSet) :
00014 fName(""), verbosity(0), frequency(0), label(""), getAllProvenances(false),
00015 printProvenanceInfo(false), theCSCStripPedestalSum(0),
00016 theCSCStripPedestalCount(0), count(0)
00017 {
00018 std::string MsgLoggerCat = "GlobalDigisHistogrammer_GlobalDigisHistogrammer";
00019
00020
00021 fName = iPSet.getUntrackedParameter<std::string>("Name");
00022 verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
00023 frequency = iPSet.getUntrackedParameter<int>("Frequency");
00024 outputfile = iPSet.getParameter<std::string>("outputFile");
00025 doOutput = iPSet.getParameter<bool>("DoOutput");
00026 edm::ParameterSet m_Prov =
00027 iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
00028 getAllProvenances =
00029 m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
00030 printProvenanceInfo =
00031 m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
00032
00033
00034 GlobalDigisSrc_ = iPSet.getParameter<edm::InputTag>("GlobalDigisSrc");
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 verbosity %= 10;
00048
00049
00050
00051
00052
00053 if (verbosity >= 0) {
00054 edm::LogInfo(MsgLoggerCat)
00055 << "\n===============================\n"
00056 << "Initialized as EDHistogrammer with parameter values:\n"
00057 << " Name = " << fName << "\n"
00058 << " Verbosity = " << verbosity << "\n"
00059 << " Frequency = " << frequency << "\n"
00060 << " OutputFile = " << outputfile << "\n"
00061 << " DoOutput = " << doOutput << "\n"
00062 << " GetProv = " << getAllProvenances << "\n"
00063 << " PrintProv = " << printProvenanceInfo << "\n"
00064 << " Global Src = " << GlobalDigisSrc_ << "\n"
00065
00066 << "===============================\n";
00067 }
00068
00069
00070
00071 dbe = 0;
00072 dbe = edm::Service<DQMStore>().operator->();
00073 if (dbe) {
00074 if (verbosity > 0 ) {
00075 dbe->setVerbose(1);
00076 } else {
00077 dbe->setVerbose(0);
00078 }
00079 }
00080 if (dbe) {
00081 if (verbosity > 0 ) dbe->showDirStructure();
00082 }
00083
00084
00085
00086
00087 if(dbe)
00088 {
00089 std::string SiStripString[19] = {"TECW1", "TECW2", "TECW3", "TECW4", "TECW5", "TECW6", "TECW7", "TECW8", "TIBL1", "TIBL2", "TIBL3", "TIBL4", "TIDW1", "TIDW2", "TIDW3", "TOBL1", "TOBL2", "TOBL3", "TOBL4"};
00090 for(int i = 0; i<19; ++i)
00091 {
00092 mehSiStripn[i]=0;
00093 mehSiStripADC[i]=0;
00094 mehSiStripStrip[i]=0;
00095 }
00096 dbe->setCurrentFolder("GlobalDigisV/SiStrips");
00097 for(int amend = 0; amend < 19; ++amend)
00098 {
00099 mehSiStripn[amend] = dbe->book1D("hSiStripn_"+SiStripString[amend], SiStripString[amend]+" Digis",500,0.,1000.);
00100 mehSiStripn[amend]->setAxisTitle("Number of Digis",1);
00101 mehSiStripn[amend]->setAxisTitle("Count",2);
00102 mehSiStripADC[amend] = dbe->book1D("hSiStripADC_"+SiStripString[amend],SiStripString[amend]+" ADC",150,0.0,300.);
00103 mehSiStripADC[amend]->setAxisTitle("ADC",1);
00104 mehSiStripADC[amend]->setAxisTitle("Count",2);
00105 mehSiStripStrip[amend] = dbe->book1D("hSiStripStripADC_"+SiStripString[amend],SiStripString[amend]+" Strip",200,0.0,800.);
00106 mehSiStripStrip[amend]->setAxisTitle("Strip Number",1);
00107 mehSiStripStrip[amend]->setAxisTitle("Count",2);
00108 }
00109
00110
00111
00112 std::string HCalString[4] = {"HB", "HE", "HO","HF"};
00113 float calnUpper[4] = {3000.,3000.,3000.,2000.}; float calnLower[4]={2000.,2000.,2000.,1000.};
00114 float SHEUpper[4]={0.05,.05,0.05,20};
00115 float SHEvAEEUpper[4] = {5000, 5000, 5000, 20}; float SHEvAEELower[4] = {-5000, -5000, -5000, -20};
00116 int SHEvAEEnBins[4] = {200,200,200,40};
00117 double ProfileUpper[4] = {1.,1.,1.,20.};
00118
00119 for(int i =0; i<4; ++i)
00120 {
00121 mehHcaln[i]=0;
00122 mehHcalAEE[i]=0;
00123 mehHcalSHE[i]=0;
00124 mehHcalAEESHE[i]=0;
00125 mehHcalSHEvAEE[i]=0;
00126 }
00127 dbe->setCurrentFolder("GlobalDigisV/HCals");
00128
00129 for(int amend = 0; amend < 4; ++amend)
00130 {
00131 mehHcaln[amend] = dbe->book1D("hHcaln_"+HCalString[amend],HCalString[amend]+" digis", 1000, calnLower[amend], calnUpper[amend]);
00132 mehHcaln[amend]->setAxisTitle("Number of Digis",1);
00133 mehHcaln[amend]->setAxisTitle("Count",2);
00134 mehHcalAEE[amend] = dbe->book1D("hHcalAEE_"+HCalString[amend],HCalString[amend]+"Cal AEE", 60, -10., 50.);
00135 mehHcalAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
00136 mehHcalAEE[amend]->setAxisTitle("Count",2);
00137 mehHcalSHE[amend] = dbe->book1D("hHcalSHE_"+HCalString[amend],HCalString[amend]+"Cal SHE", 100, 0.0, SHEUpper[amend]);
00138 mehHcalSHE[amend]->setAxisTitle("Simulated Hit Energy",1);
00139 mehHcalSHE[amend]->setAxisTitle("Count",2);
00140 mehHcalAEESHE[amend] = dbe->book1D("hHcalAEESHE_"+HCalString[amend], HCalString[amend]+"Cal AEE/SHE", SHEvAEEnBins[amend], SHEvAEELower[amend], SHEvAEEUpper[amend]);
00141 mehHcalAEESHE[amend]->setAxisTitle("ADC / SHE",1);
00142 mehHcalAEESHE[amend]->setAxisTitle("Count",2);
00143
00144
00145 mehHcalSHEvAEE[amend] = dbe->bookProfile("hHcalSHEvAEE_"+HCalString[amend],HCalString[amend]+"Cal SHE vs. AEE", 60, (float)-10., (float)50., 100, (float)0., (float)ProfileUpper[amend],"");
00146 mehHcalSHEvAEE[amend]->setAxisTitle("AEE / SHE",1);
00147 mehHcalSHEvAEE[amend]->setAxisTitle("SHE",2);
00148
00149 }
00150
00151
00152
00153
00154
00155 std::string ECalString[2] = {"EB","EE"};
00156
00157 for(int i =0; i<2; ++i)
00158 {
00159 mehEcaln[i]=0;
00160 mehEcalAEE[i]=0;
00161 mehEcalSHE[i]=0;
00162 mehEcalMaxPos[i]=0;
00163 mehEcalMultvAEE[i]=0;
00164 mehEcalSHEvAEESHE[i]=0;
00165 }
00166 dbe->setCurrentFolder("GlobalDigisV/ECals");
00167
00168 for(int amend = 0; amend < 2; ++amend)
00169 {
00170 mehEcaln[amend] = dbe->book1D("hEcaln_"+ECalString[amend],ECalString[amend]+" digis", 300, 1000., 4000.);
00171 mehEcaln[amend]->setAxisTitle("Number of Digis",1);
00172 mehEcaln[amend]->setAxisTitle("Count",2);
00173 mehEcalAEE[amend] = dbe->book1D("hEcalAEE_"+ECalString[amend],ECalString[amend]+"Cal AEE", 100, 0., 1.);
00174 mehEcalAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
00175 mehEcalAEE[amend]->setAxisTitle("Count",2);
00176 mehEcalSHE[amend] = dbe->book1D("hEcalSHE_"+ECalString[amend],ECalString[amend]+"Cal SHE", 50, 0., 5.);
00177 mehEcalSHE[amend]->setAxisTitle("Simulated Hit Energy",1);
00178 mehEcalSHE[amend]->setAxisTitle("Count",2);
00179 mehEcalMaxPos[amend] = dbe->book1D("hEcalMaxPos_"+ECalString[amend],ECalString[amend]+"Cal MaxPos",10, 0., 10.);
00180 mehEcalMaxPos[amend]->setAxisTitle("Maximum Position",1);
00181 mehEcalMaxPos[amend]->setAxisTitle("Count",2);
00182
00183
00184 mehEcalSHEvAEESHE[amend] = dbe->bookProfile("hEcalSHEvAEESHE_"+ECalString[amend],ECalString[amend]+"Cal SHE vs. AEE/SHE",100, (float)0., (float)10., 50, (float)0., (float)5.,"");
00185 mehEcalSHEvAEESHE[amend]->setAxisTitle("AEE / SHE",1);
00186 mehEcalSHEvAEESHE[amend]->setAxisTitle("SHE",2);
00187 mehEcalMultvAEE[amend] = dbe->bookProfile("hEcalMultvAEE_"+ECalString[amend],ECalString[amend]+"Cal Multi vs. AEE", 100, (float)0., (float)10., 400, (float)0., (float)4000.,"");
00188 mehEcalMultvAEE[amend]->setAxisTitle("Analog Equivalent Energy",1);
00189 mehEcalMultvAEE[amend]->setAxisTitle("Number of Digis",2);
00190
00191
00192
00193 }
00194 mehEcaln[2] = 0;
00195 mehEcaln[2] = dbe->book1D("hEcaln_ES","ESCAL digis", 100, 0., 500.);
00196 mehEcaln[2]->setAxisTitle("Number of Digis",1);
00197 mehEcaln[2]->setAxisTitle("Count",2);
00198 std::string ADCNumber[3] = {"0", "1", "2"};
00199 for(int i =0; i<3; ++i)
00200 {
00201 mehEScalADC[i] = 0;
00202 mehEScalADC[i] = dbe->book1D("hEcalADC"+ADCNumber[i]+"_ES","ESCAL ADC"+ADCNumber[i], 150, 950., 1500.);
00203 mehEScalADC[i]->setAxisTitle("ADC"+ADCNumber[i],1);
00204 mehEScalADC[i]->setAxisTitle("Count",2);
00205
00206 }
00207
00208
00209 std::string SiPixelString[7] = {"BRL1", "BRL2", "BRL3", "FWD1n", "FWD1p", "FWD2n", "FWD2p"};
00210 for(int j =0; j<7; ++j)
00211 {
00212 mehSiPixeln[j]=0;
00213 mehSiPixelADC[j]=0;
00214 mehSiPixelRow[j]=0;
00215 mehSiPixelCol[j]=0;
00216 }
00217
00218 dbe->setCurrentFolder("GlobalDigisV/SiPixels");
00219 for(int amend = 0; amend < 7; ++amend)
00220 {
00221 if(amend<3) mehSiPixeln[amend] = dbe->book1D("hSiPixeln_"+SiPixelString[amend],SiPixelString[amend]+" Digis",50,0.,100.);
00222 else mehSiPixeln[amend] = dbe->book1D("hSiPixeln_"+SiPixelString[amend],SiPixelString[amend]+" Digis",25,0.,50.);
00223 mehSiPixeln[amend]->setAxisTitle("Number of Digis",1);
00224 mehSiPixeln[amend]->setAxisTitle("Count",2);
00225 mehSiPixelADC[amend] = dbe->book1D("hSiPixelADC_"+SiPixelString[amend],SiPixelString[amend]+" ADC",150,0.0,300.);
00226 mehSiPixelADC[amend]->setAxisTitle("ADC",1);
00227 mehSiPixelADC[amend]->setAxisTitle("Count",2);
00228 mehSiPixelRow[amend] = dbe->book1D("hSiPixelRow_"+SiPixelString[amend],SiPixelString[amend]+" Row",100,0.0,100.);
00229 mehSiPixelRow[amend]->setAxisTitle("Row Number",1);
00230 mehSiPixelRow[amend]->setAxisTitle("Count",2);
00231 mehSiPixelCol[amend] = dbe->book1D("hSiPixelColumn_"+SiPixelString[amend],SiPixelString[amend]+" Column",200,0.0,500.);
00232 mehSiPixelCol[amend]->setAxisTitle("Column Number",1);
00233 mehSiPixelCol[amend]->setAxisTitle("Count",2);
00234 }
00235
00236 dbe->setCurrentFolder("GlobalDigisV/Muons");
00237 std::string MuonString[4] = {"MB1", "MB2", "MB3", "MB4"};
00238
00239 for(int i =0; i < 4; ++i)
00240 {
00241 mehDtMuonn[i] = 0;
00242 mehDtMuonLayer[i] = 0;
00243 mehDtMuonTime[i] = 0;
00244 mehDtMuonTimevLayer[i] = 0;
00245 }
00246
00247 for(int j = 0; j < 4; ++j)
00248 {
00249 mehDtMuonn[j] = dbe->book1D("hDtMuonn_"+MuonString[j],MuonString[j]+" digis",25, 0., 50.);
00250 mehDtMuonn[j]->setAxisTitle("Number of Digis",1);
00251 mehDtMuonn[j]->setAxisTitle("Count",2);
00252 mehDtMuonLayer[j] = dbe->book1D("hDtLayer_"+MuonString[j],MuonString[j]+" Layer",12, 1., 13.);
00253 mehDtMuonLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer",1);
00254 mehDtMuonLayer[j]->setAxisTitle("Count",2);
00255 mehDtMuonTime[j] = dbe->book1D("hDtMuonTime_"+MuonString[j],MuonString[j]+" Time",300, 400., 1000.);
00256 mehDtMuonTime[j]->setAxisTitle("Time",1);
00257 mehDtMuonTime[j]->setAxisTitle("Count",2);
00258 mehDtMuonTimevLayer[j] = dbe->bookProfile("hDtMuonTimevLayer_"+MuonString[j],MuonString[j]+" Time vs. Layer",12, 1., 13., 300, 400., 1000.,"");
00259 mehDtMuonTimevLayer[j]->setAxisTitle("4 * (SuperLayer - 1) + Layer",1);
00260 mehDtMuonTimevLayer[j]->setAxisTitle("Time",2);
00261 }
00262
00263
00264
00265 mehCSCStripn = 0;
00266 mehCSCStripn = dbe->book1D("hCSCStripn","CSC Strip digis",25, 0., 50.);
00267 mehCSCStripn->setAxisTitle("Number of Digis",1);
00268 mehCSCStripn->setAxisTitle("Count",2);
00269
00270 mehCSCStripADC = 0;
00271 mehCSCStripADC = dbe->book1D("hCSCStripADC","CSC Strip ADC", 110, 0., 1100.);
00272 mehCSCStripADC->setAxisTitle("ADC",1);
00273 mehCSCStripADC->setAxisTitle("Count",2);
00274
00275 mehCSCWiren = 0;
00276 mehCSCWiren = dbe->book1D("hCSCWiren","CSC Wire digis",25, 0., 50.);
00277 mehCSCWiren->setAxisTitle("Number of Digis",1);
00278 mehCSCWiren->setAxisTitle("Count",2);
00279
00280
00281
00282 mehCSCWireTime = 0;
00283 mehCSCWiren = dbe->book1D("hCSCWireTime","CSC Wire Time",10, 0., 10.);
00284 mehCSCWiren->setAxisTitle("Time",1);
00285 mehCSCWiren->setAxisTitle("Count",2);
00286
00287
00288 }
00289
00290 }
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304 GlobalDigisHistogrammer::~GlobalDigisHistogrammer()
00305 {
00306 if (doOutput)
00307 if (outputfile.size() != 0 && dbe) dbe->save(outputfile);
00308 }
00309
00310 void GlobalDigisHistogrammer::beginJob( void )
00311 {
00312 std::string MsgLoggerCat = "GlobalDigisHistogrammer_beginJob";
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343 return;
00344 }
00345
00346 void GlobalDigisHistogrammer::endJob()
00347 {
00348 std::string MsgLoggerCat = "GlobalDigisHistogrammer_endJob";
00349 if (verbosity >= 0)
00350 edm::LogInfo(MsgLoggerCat)
00351 << "Terminating having processed " << count << " events.";
00352 return;
00353 }
00354
00355 void GlobalDigisHistogrammer::analyze(const edm::Event& iEvent,
00356 const edm::EventSetup& iSetup)
00357 {
00358 std::string MsgLoggerCat = "GlobalDigisHistogrammer_analyze";
00359
00360
00361 ++count;
00362
00363
00364 int nrun = iEvent.id().run();
00365 int nevt = iEvent.id().event();
00366
00367 if (verbosity > 0) {
00368 edm::LogInfo(MsgLoggerCat)
00369 << "Processing run " << nrun << ", event " << nevt
00370 << " (" << count << " events total)";
00371 } else if (verbosity == 0) {
00372 if (nevt%frequency == 0 || nevt == 1) {
00373 edm::LogInfo(MsgLoggerCat)
00374 << "Processing run " << nrun << ", event " << nevt
00375 << " (" << count << " events total)";
00376 }
00377 }
00378
00379
00380
00381
00382
00383 if (getAllProvenances) {
00384
00385 std::vector<const edm::Provenance*> AllProv;
00386 iEvent.getAllProvenance(AllProv);
00387
00388 if (verbosity >= 0)
00389 edm::LogInfo(MsgLoggerCat)
00390 << "Number of Provenances = " << AllProv.size();
00391
00392 if (printProvenanceInfo && (verbosity >= 0)) {
00393 TString eventout("\nProvenance info:\n");
00394
00395 for (unsigned int i = 0; i < AllProv.size(); ++i) {
00396 eventout += "\n ******************************";
00397 eventout += "\n Module : ";
00398
00399 eventout += AllProv[i]->moduleLabel();
00400 eventout += "\n ProductID : ";
00401
00402 eventout += AllProv[i]->productID().id();
00403 eventout += "\n ClassName : ";
00404
00405 eventout += AllProv[i]->className();
00406 eventout += "\n InstanceName : ";
00407
00408 eventout += AllProv[i]->productInstanceName();
00409 eventout += "\n BranchName : ";
00410
00411 eventout += AllProv[i]->branchName();
00412 }
00413 eventout += "\n ******************************\n";
00414 edm::LogInfo(MsgLoggerCat) << eventout << "\n";
00415 printProvenanceInfo = false;
00416 getAllProvenances = false;
00417 }
00418 edm::Handle<PGlobalDigi> srcGlobalDigis;
00419 iEvent.getByLabel(GlobalDigisSrc_,srcGlobalDigis);
00420 if (!srcGlobalDigis.isValid()) {
00421 edm::LogWarning(MsgLoggerCat)
00422 << "Unable to find PGlobalDigis in event!";
00423 return;
00424
00425 }
00426
00427
00428
00429 int nEBCalDigis = srcGlobalDigis->getnEBCalDigis();
00430 int nEECalDigis = srcGlobalDigis->getnEECalDigis();
00431 int nESCalDigis = srcGlobalDigis->getnESCalDigis();
00432
00433 int nHBCalDigis = srcGlobalDigis->getnHBCalDigis();
00434 int nHECalDigis = srcGlobalDigis->getnHECalDigis();
00435 int nHOCalDigis = srcGlobalDigis->getnHOCalDigis();
00436 int nHFCalDigis = srcGlobalDigis->getnHFCalDigis();
00437
00438 int nTIBL1Digis = srcGlobalDigis->getnTIBL1Digis();
00439 int nTIBL2Digis = srcGlobalDigis->getnTIBL2Digis();
00440 int nTIBL3Digis = srcGlobalDigis->getnTIBL3Digis();
00441 int nTIBL4Digis = srcGlobalDigis->getnTIBL4Digis();
00442 int nTOBL1Digis = srcGlobalDigis->getnTOBL1Digis();
00443 int nTOBL2Digis = srcGlobalDigis->getnTOBL2Digis();
00444 int nTOBL3Digis = srcGlobalDigis->getnTOBL3Digis();
00445 int nTOBL4Digis = srcGlobalDigis->getnTOBL4Digis();
00446 int nTIDW1Digis = srcGlobalDigis->getnTIDW1Digis();
00447 int nTIDW2Digis = srcGlobalDigis->getnTIDW2Digis();
00448 int nTIDW3Digis = srcGlobalDigis->getnTIDW3Digis();
00449 int nTECW1Digis = srcGlobalDigis->getnTECW1Digis();
00450 int nTECW2Digis = srcGlobalDigis->getnTECW2Digis();
00451 int nTECW3Digis = srcGlobalDigis->getnTECW3Digis();
00452 int nTECW4Digis = srcGlobalDigis->getnTECW4Digis();
00453 int nTECW5Digis = srcGlobalDigis->getnTECW5Digis();
00454 int nTECW6Digis = srcGlobalDigis->getnTECW6Digis();
00455 int nTECW7Digis = srcGlobalDigis->getnTECW7Digis();
00456 int nTECW8Digis = srcGlobalDigis->getnTECW8Digis();
00457
00458 int nBRL1Digis = srcGlobalDigis->getnBRL1Digis();
00459 int nBRL2Digis = srcGlobalDigis->getnBRL2Digis();
00460 int nBRL3Digis = srcGlobalDigis->getnBRL3Digis();
00461 int nFWD1nDigis = srcGlobalDigis->getnFWD1nDigis();
00462 int nFWD1pDigis = srcGlobalDigis->getnFWD1pDigis();
00463 int nFWD2nDigis = srcGlobalDigis->getnFWD2nDigis();
00464 int nFWD2pDigis = srcGlobalDigis->getnFWD2pDigis();
00465
00466 int nMB1Digis = srcGlobalDigis->getnMB1Digis();
00467 int nMB2Digis = srcGlobalDigis->getnMB2Digis();
00468 int nMB3Digis = srcGlobalDigis->getnMB3Digis();
00469 int nMB4Digis = srcGlobalDigis->getnMB4Digis();
00470
00471 int nCSCstripDigis = srcGlobalDigis->getnCSCstripDigis();
00472
00473 int nCSCwireDigis = srcGlobalDigis->getnCSCwireDigis();
00474
00475
00476 std::vector<PGlobalDigi::ECalDigi> EECalDigis =
00477 srcGlobalDigis->getEECalDigis();
00478 mehEcaln[0]->Fill((float)nEECalDigis);
00479 for (unsigned int i = 0; i < EECalDigis.size(); ++i) {
00480 mehEcalAEE[0]->Fill(EECalDigis[i].AEE);
00481 mehEcalMaxPos[0]->Fill(EECalDigis[i].maxPos);
00482 mehEcalMultvAEE[0]->Fill(EECalDigis[i].AEE,(float)nEECalDigis,1);
00483 if (EECalDigis[i].SHE != 0.) {
00484 mehEcalSHE[0]->Fill(EECalDigis[i].SHE);
00485 mehEcalSHEvAEESHE[0]->
00486 Fill(EECalDigis[i].AEE/EECalDigis[i].SHE,EECalDigis[i].SHE,1);
00487 }
00488 }
00489
00490 std::vector<PGlobalDigi::ECalDigi> EBCalDigis =
00491 srcGlobalDigis->getEBCalDigis();
00492 mehEcaln[1]->Fill((float)nEBCalDigis);
00493 for (unsigned int i = 0; i < EBCalDigis.size(); ++i) {
00494 mehEcalAEE[1]->Fill(EBCalDigis[i].AEE);
00495 mehEcalMaxPos[1]->Fill(EBCalDigis[i].maxPos);
00496 mehEcalMultvAEE[1]->Fill(EBCalDigis[i].AEE,(float)nEBCalDigis,1);
00497 if (EBCalDigis[i].SHE != 0.) {
00498 mehEcalSHE[1]->Fill(EBCalDigis[i].SHE);
00499 mehEcalSHEvAEESHE[1]->
00500 Fill(EBCalDigis[i].AEE/EBCalDigis[i].SHE,EBCalDigis[i].SHE,1);
00501 }
00502 }
00503
00504 std::vector<PGlobalDigi::ESCalDigi> ESCalDigis =
00505 srcGlobalDigis->getESCalDigis();
00506 mehEcaln[2]->Fill((float)nESCalDigis);
00507 for (unsigned int i = 0; i < ESCalDigis.size(); ++i) {
00508 mehEScalADC[0]->Fill(ESCalDigis[i].ADC0);
00509 mehEScalADC[1]->Fill(ESCalDigis[i].ADC1);
00510 mehEScalADC[2]->Fill(ESCalDigis[i].ADC2);
00511 }
00512
00513
00514 std::vector<PGlobalDigi::HCalDigi> HBCalDigis =
00515 srcGlobalDigis->getHBCalDigis();
00516 mehHcaln[0]->Fill((float)nHBCalDigis);
00517 for (unsigned int i = 0; i < HBCalDigis.size(); ++i) {
00518 mehHcalAEE[0]->Fill(HBCalDigis[i].AEE);
00519 if (HBCalDigis[i].SHE != 0.) {
00520 mehHcalSHE[0]->Fill(HBCalDigis[i].SHE);
00521 mehHcalAEESHE[0]->Fill(HBCalDigis[i].AEE/HBCalDigis[i].SHE);
00522 mehHcalSHEvAEE[0]->
00523 Fill(HBCalDigis[i].AEE,HBCalDigis[i].SHE,1);
00524 }
00525 }
00526 std::vector<PGlobalDigi::HCalDigi> HECalDigis =
00527 srcGlobalDigis->getHECalDigis();
00528 mehHcaln[1]->Fill((float)nHECalDigis);
00529 for (unsigned int i = 0; i < HECalDigis.size(); ++i) {
00530 mehHcalAEE[1]->Fill(HECalDigis[i].AEE);
00531 if (HECalDigis[i].SHE != 0.) {
00532 mehHcalSHE[1]->Fill(HECalDigis[i].SHE);
00533 mehHcalAEESHE[1]->Fill(HECalDigis[i].AEE/HECalDigis[i].SHE);
00534 mehHcalSHEvAEE[1]->
00535 Fill(HECalDigis[i].AEE,HECalDigis[i].SHE,1);
00536 }
00537 }
00538
00539 std::vector<PGlobalDigi::HCalDigi> HOCalDigis =
00540 srcGlobalDigis->getHOCalDigis();
00541 mehHcaln[2]->Fill((float)nHOCalDigis);
00542 for (unsigned int i = 0; i < HOCalDigis.size(); ++i) {
00543 mehHcalAEE[2]->Fill(HOCalDigis[i].AEE);
00544 if (HOCalDigis[i].SHE != 0.) {
00545 mehHcalSHE[2]->Fill(HOCalDigis[i].SHE);
00546 mehHcalAEESHE[2]->Fill(HOCalDigis[i].AEE/HOCalDigis[i].SHE);
00547 mehHcalSHEvAEE[2]->
00548 Fill(HOCalDigis[i].AEE,HOCalDigis[i].SHE,1);
00549 }
00550 }
00551
00552 std::vector<PGlobalDigi::HCalDigi> HFCalDigis =
00553 srcGlobalDigis->getHFCalDigis();
00554 mehHcaln[3]->Fill((float)nHFCalDigis);
00555 for (unsigned int i = 0; i < HFCalDigis.size(); ++i) {
00556 mehHcalAEE[3]->Fill(HFCalDigis[i].AEE);
00557 if (HFCalDigis[i].SHE != 0.) {
00558 mehHcalSHE[3]->Fill(HFCalDigis[i].SHE);
00559 mehHcalAEESHE[3]->Fill(HFCalDigis[i].AEE/HFCalDigis[i].SHE);
00560 mehHcalSHEvAEE[3]->
00561 Fill(HFCalDigis[i].AEE,HFCalDigis[i].SHE,1);
00562 }
00563 }
00564
00565
00566 std::vector<PGlobalDigi::SiStripDigi> TIBL1Digis =
00567 srcGlobalDigis->getTIBL1Digis();
00568 mehSiStripn[0]->Fill((float)nTIBL1Digis);
00569 for (unsigned int i = 0; i < TIBL1Digis.size(); ++i) {
00570 mehSiStripADC[0]->Fill(TIBL1Digis[i].ADC);
00571 mehSiStripStrip[0]->Fill(TIBL1Digis[i].STRIP);
00572 }
00573
00574 std::vector<PGlobalDigi::SiStripDigi> TIBL2Digis =
00575 srcGlobalDigis->getTIBL2Digis();
00576 mehSiStripn[1]->Fill((float)nTIBL2Digis);
00577 for (unsigned int i = 0; i < TIBL2Digis.size(); ++i) {
00578 mehSiStripADC[1]->Fill(TIBL2Digis[i].ADC);
00579 mehSiStripStrip[1]->Fill(TIBL2Digis[i].STRIP);
00580 }
00581
00582 std::vector<PGlobalDigi::SiStripDigi> TIBL3Digis =
00583 srcGlobalDigis->getTIBL3Digis();
00584 mehSiStripn[2]->Fill((float)nTIBL3Digis);
00585 for (unsigned int i = 0; i < TIBL3Digis.size(); ++i) {
00586 mehSiStripADC[2]->Fill(TIBL3Digis[i].ADC);
00587 mehSiStripStrip[2]->Fill(TIBL3Digis[i].STRIP);
00588 }
00589
00590 std::vector<PGlobalDigi::SiStripDigi> TIBL4Digis =
00591 srcGlobalDigis->getTIBL4Digis();
00592 mehSiStripn[3]->Fill((float)nTIBL4Digis);
00593 for (unsigned int i = 0; i < TIBL4Digis.size(); ++i) {
00594 mehSiStripADC[3]->Fill(TIBL4Digis[i].ADC);
00595 mehSiStripStrip[3]->Fill(TIBL4Digis[i].STRIP);
00596 }
00597
00598 std::vector<PGlobalDigi::SiStripDigi> TOBL1Digis =
00599 srcGlobalDigis->getTOBL1Digis();
00600 mehSiStripn[4]->Fill((float)nTOBL1Digis);
00601 for (unsigned int i = 0; i < TOBL1Digis.size(); ++i) {
00602 mehSiStripADC[4]->Fill(TOBL1Digis[i].ADC);
00603 mehSiStripStrip[4]->Fill(TOBL1Digis[i].STRIP);
00604 }
00605
00606 std::vector<PGlobalDigi::SiStripDigi> TOBL2Digis =
00607 srcGlobalDigis->getTOBL2Digis();
00608 mehSiStripn[5]->Fill((float)nTOBL2Digis);
00609 for (unsigned int i = 0; i < TOBL2Digis.size(); ++i) {
00610 mehSiStripADC[5]->Fill(TOBL2Digis[i].ADC);
00611 mehSiStripStrip[5]->Fill(TOBL2Digis[i].STRIP);
00612 }
00613
00614 std::vector<PGlobalDigi::SiStripDigi> TOBL3Digis =
00615 srcGlobalDigis->getTOBL3Digis();
00616 mehSiStripn[6]->Fill((float)nTOBL3Digis);
00617 for (unsigned int i = 0; i < TOBL3Digis.size(); ++i) {
00618 mehSiStripADC[6]->Fill(TOBL3Digis[i].ADC);
00619 mehSiStripStrip[6]->Fill(TOBL3Digis[i].STRIP);
00620 }
00621
00622 std::vector<PGlobalDigi::SiStripDigi> TOBL4Digis =
00623 srcGlobalDigis->getTOBL4Digis();
00624 mehSiStripn[7]->Fill((float)nTOBL4Digis);
00625 for (unsigned int i = 0; i < TOBL4Digis.size(); ++i) {
00626 mehSiStripADC[7]->Fill(TOBL4Digis[i].ADC);
00627 mehSiStripStrip[7]->Fill(TOBL4Digis[i].STRIP);
00628 }
00629
00630 std::vector<PGlobalDigi::SiStripDigi> TIDW1Digis =
00631 srcGlobalDigis->getTIDW1Digis();
00632 mehSiStripn[8]->Fill((float)nTIDW1Digis);
00633 for (unsigned int i = 0; i < TIDW1Digis.size(); ++i) {
00634 mehSiStripADC[8]->Fill(TIDW1Digis[i].ADC);
00635 mehSiStripStrip[8]->Fill(TIDW1Digis[i].STRIP);
00636 }
00637
00638 std::vector<PGlobalDigi::SiStripDigi> TIDW2Digis =
00639 srcGlobalDigis->getTIDW2Digis();
00640 mehSiStripn[9]->Fill((float)nTIDW2Digis);
00641 for (unsigned int i = 0; i < TIDW2Digis.size(); ++i) {
00642 mehSiStripADC[9]->Fill(TIDW2Digis[i].ADC);
00643 mehSiStripStrip[9]->Fill(TIDW2Digis[i].STRIP);
00644 }
00645
00646 std::vector<PGlobalDigi::SiStripDigi> TIDW3Digis =
00647 srcGlobalDigis->getTIDW3Digis();
00648 mehSiStripn[10]->Fill((float)nTIDW3Digis);
00649 for (unsigned int i = 0; i < TIDW3Digis.size(); ++i) {
00650 mehSiStripADC[10]->Fill(TIDW3Digis[i].ADC);
00651 mehSiStripStrip[10]->Fill(TIDW3Digis[i].STRIP);
00652 }
00653
00654 std::vector<PGlobalDigi::SiStripDigi> TECW1Digis =
00655 srcGlobalDigis->getTECW1Digis();
00656 mehSiStripn[11]->Fill((float)nTECW1Digis);
00657 for (unsigned int i = 0; i < TECW1Digis.size(); ++i) {
00658 mehSiStripADC[11]->Fill(TECW1Digis[i].ADC);
00659 mehSiStripStrip[11]->Fill(TECW1Digis[i].STRIP);
00660 }
00661
00662 std::vector<PGlobalDigi::SiStripDigi> TECW2Digis =
00663 srcGlobalDigis->getTECW2Digis();
00664 mehSiStripn[12]->Fill((float)nTECW2Digis);
00665 for (unsigned int i = 0; i < TECW2Digis.size(); ++i) {
00666 mehSiStripADC[12]->Fill(TECW2Digis[i].ADC);
00667 mehSiStripStrip[12]->Fill(TECW2Digis[i].STRIP);
00668 }
00669
00670 std::vector<PGlobalDigi::SiStripDigi> TECW3Digis =
00671 srcGlobalDigis->getTECW3Digis();
00672 mehSiStripn[13]->Fill((float)nTECW3Digis);
00673 for (unsigned int i = 0; i < TECW3Digis.size(); ++i) {
00674 mehSiStripADC[13]->Fill(TECW3Digis[i].ADC);
00675 mehSiStripStrip[13]->Fill(TECW3Digis[i].STRIP);
00676 }
00677
00678 std::vector<PGlobalDigi::SiStripDigi> TECW4Digis =
00679 srcGlobalDigis->getTECW4Digis();
00680 mehSiStripn[14]->Fill((float)nTECW4Digis);
00681 for (unsigned int i = 0; i < TECW4Digis.size(); ++i) {
00682 mehSiStripADC[14]->Fill(TECW4Digis[i].ADC);
00683 mehSiStripStrip[14]->Fill(TECW4Digis[i].STRIP);
00684 }
00685
00686 std::vector<PGlobalDigi::SiStripDigi> TECW5Digis =
00687 srcGlobalDigis->getTECW5Digis();
00688 mehSiStripn[15]->Fill((float)nTECW5Digis);
00689 for (unsigned int i = 0; i < TECW5Digis.size(); ++i) {
00690 mehSiStripADC[15]->Fill(TECW5Digis[i].ADC);
00691 mehSiStripStrip[15]->Fill(TECW5Digis[i].STRIP);
00692 }
00693
00694 std::vector<PGlobalDigi::SiStripDigi> TECW6Digis =
00695 srcGlobalDigis->getTECW6Digis();
00696 mehSiStripn[16]->Fill((float)nTECW6Digis);
00697 for (unsigned int i = 0; i < TECW6Digis.size(); ++i) {
00698 mehSiStripADC[16]->Fill(TECW6Digis[i].ADC);
00699 mehSiStripStrip[16]->Fill(TECW6Digis[i].STRIP);
00700 }
00701
00702 std::vector<PGlobalDigi::SiStripDigi> TECW7Digis =
00703 srcGlobalDigis->getTECW7Digis();
00704 mehSiStripn[17]->Fill((float)nTECW7Digis);
00705 for (unsigned int i = 0; i < TECW7Digis.size(); ++i) {
00706 mehSiStripADC[17]->Fill(TECW7Digis[i].ADC);
00707 mehSiStripStrip[17]->Fill(TECW7Digis[i].STRIP);
00708 }
00709
00710 std::vector<PGlobalDigi::SiStripDigi> TECW8Digis =
00711 srcGlobalDigis->getTECW8Digis();
00712 mehSiStripn[18]->Fill((float)nTECW8Digis);
00713 for (unsigned int i = 0; i < TECW8Digis.size(); ++i) {
00714 mehSiStripADC[18]->Fill(TECW8Digis[i].ADC);
00715 mehSiStripStrip[18]->Fill(TECW8Digis[i].STRIP);
00716 }
00717
00718
00719 std::vector<PGlobalDigi::SiPixelDigi> BRL1Digis =
00720 srcGlobalDigis->getBRL1Digis();
00721 mehSiPixeln[0]->Fill((float)nBRL1Digis);
00722 for (unsigned int i = 0; i < BRL1Digis.size(); ++i) {
00723 mehSiPixelADC[0]->Fill(BRL1Digis[i].ADC);
00724 mehSiPixelRow[0]->Fill(BRL1Digis[i].ROW);
00725 mehSiPixelCol[0]->Fill(BRL1Digis[i].COLUMN);
00726 }
00727
00728 std::vector<PGlobalDigi::SiPixelDigi> BRL2Digis =
00729 srcGlobalDigis->getBRL2Digis();
00730 mehSiPixeln[1]->Fill((float)nBRL2Digis);
00731 for (unsigned int i = 0; i < BRL2Digis.size(); ++i) {
00732 mehSiPixelADC[1]->Fill(BRL2Digis[i].ADC);
00733 mehSiPixelRow[1]->Fill(BRL2Digis[i].ROW);
00734 mehSiPixelCol[1]->Fill(BRL2Digis[i].COLUMN);
00735 }
00736
00737 std::vector<PGlobalDigi::SiPixelDigi> BRL3Digis =
00738 srcGlobalDigis->getBRL3Digis();
00739 mehSiPixeln[2]->Fill((float)nBRL3Digis);
00740 for (unsigned int i = 0; i < BRL3Digis.size(); ++i) {
00741 mehSiPixelADC[2]->Fill(BRL3Digis[i].ADC);
00742 mehSiPixelRow[2]->Fill(BRL3Digis[i].ROW);
00743 mehSiPixelCol[2]->Fill(BRL3Digis[i].COLUMN);
00744 }
00745
00746 std::vector<PGlobalDigi::SiPixelDigi> FWD1pDigis =
00747 srcGlobalDigis->getFWD1pDigis();
00748 mehSiPixeln[3]->Fill((float)nFWD1pDigis);
00749 for (unsigned int i = 0; i < FWD1pDigis.size(); ++i) {
00750 mehSiPixelADC[3]->Fill(FWD1pDigis[i].ADC);
00751 mehSiPixelRow[3]->Fill(FWD1pDigis[i].ROW);
00752 mehSiPixelCol[3]->Fill(FWD1pDigis[i].COLUMN);
00753 }
00754
00755 std::vector<PGlobalDigi::SiPixelDigi> FWD1nDigis =
00756 srcGlobalDigis->getFWD1nDigis();
00757 mehSiPixeln[4]->Fill((float)nFWD1nDigis);
00758 for (unsigned int i = 0; i < FWD1nDigis.size(); ++i) {
00759 mehSiPixelADC[4]->Fill(FWD1nDigis[i].ADC);
00760 mehSiPixelRow[4]->Fill(FWD1nDigis[i].ROW);
00761 mehSiPixelCol[4]->Fill(FWD1nDigis[i].COLUMN);
00762 }
00763
00764 std::vector<PGlobalDigi::SiPixelDigi> FWD2pDigis =
00765 srcGlobalDigis->getFWD2pDigis();
00766 mehSiPixeln[5]->Fill((float)nFWD2pDigis);
00767 for (unsigned int i = 0; i < FWD2pDigis.size(); ++i) {
00768 mehSiPixelADC[5]->Fill(FWD2pDigis[i].ADC);
00769 mehSiPixelRow[5]->Fill(FWD2pDigis[i].ROW);
00770 mehSiPixelCol[5]->Fill(FWD2pDigis[i].COLUMN);
00771 }
00772
00773 std::vector<PGlobalDigi::SiPixelDigi> FWD2nDigis =
00774 srcGlobalDigis->getFWD2nDigis();
00775 mehSiPixeln[6]->Fill((float)nFWD2nDigis);
00776 for (unsigned int i = 0; i < FWD2nDigis.size(); ++i) {
00777 mehSiPixelADC[6]->Fill(FWD2nDigis[i].ADC);
00778 mehSiPixelRow[6]->Fill(FWD2nDigis[i].ROW);
00779 mehSiPixelCol[6]->Fill(FWD2nDigis[i].COLUMN);
00780 }
00781
00782
00783 std::vector<PGlobalDigi::DTDigi> MB1Digis =
00784 srcGlobalDigis->getMB1Digis();
00785 mehDtMuonn[0]->Fill((float)nMB1Digis);
00786 for (unsigned int i = 0; i < MB1Digis.size(); ++i) {
00787 float layer = 4.0 * (MB1Digis[i].SLAYER - 1.0) + MB1Digis[i].LAYER;
00788 mehDtMuonLayer[0]->Fill(layer);
00789 mehDtMuonTime[0]->Fill(MB1Digis[i].TIME);
00790 mehDtMuonTimevLayer[0]->Fill(layer,MB1Digis[i].TIME,1);
00791 }
00792
00793 std::vector<PGlobalDigi::DTDigi> MB2Digis =
00794 srcGlobalDigis->getMB2Digis();
00795 mehDtMuonn[1]->Fill((float)nMB2Digis);
00796 for (unsigned int i = 0; i < MB2Digis.size(); ++i) {
00797 float layer = 4.0 * (MB2Digis[i].SLAYER - 1.0) + MB2Digis[i].LAYER;
00798 mehDtMuonLayer[1]->Fill(layer);
00799 mehDtMuonTime[1]->Fill(MB2Digis[i].TIME);
00800 mehDtMuonTimevLayer[1]->Fill(layer,MB2Digis[i].TIME,1);
00801 }
00802
00803 std::vector<PGlobalDigi::DTDigi> MB3Digis =
00804 srcGlobalDigis->getMB3Digis();
00805 mehDtMuonn[2]->Fill((float)nMB3Digis);
00806 for (unsigned int i = 0; i < MB3Digis.size(); ++i) {
00807 float layer = 4.0 * (MB3Digis[i].SLAYER - 1.0) + MB3Digis[i].LAYER;
00808 mehDtMuonLayer[2]->Fill(layer);
00809 mehDtMuonTime[2]->Fill(MB3Digis[i].TIME);
00810 mehDtMuonTimevLayer[2]->Fill(layer,MB3Digis[i].TIME,1);
00811 }
00812
00813 std::vector<PGlobalDigi::DTDigi> MB4Digis =
00814 srcGlobalDigis->getMB4Digis();
00815 mehDtMuonn[3]->Fill((float)nMB4Digis);
00816 for (unsigned int i = 0; i < MB4Digis.size(); ++i) {
00817 float layer = 4.0 * (MB4Digis[i].SLAYER - 1.0) + MB4Digis[i].LAYER;
00818 mehDtMuonLayer[3]->Fill(layer);
00819 mehDtMuonTime[3]->Fill(MB4Digis[i].TIME);
00820 mehDtMuonTimevLayer[3]->Fill(layer,MB4Digis[i].TIME,1);
00821 }
00822
00823
00824 std::vector<PGlobalDigi::CSCstripDigi> CSCstripDigis =
00825 srcGlobalDigis->getCSCstripDigis();
00826 mehCSCStripn->Fill((float)nCSCstripDigis);
00827 for (unsigned int i = 0; i < CSCstripDigis.size(); ++i) {
00828 mehCSCStripADC->Fill(CSCstripDigis[i].ADC);
00829 }
00830
00831
00832 std::vector<PGlobalDigi::CSCwireDigi> CSCwireDigis =
00833 srcGlobalDigis->getCSCwireDigis();
00834 mehCSCWiren->Fill((float)nCSCwireDigis);
00835 for (unsigned int i = 0; i < CSCwireDigis.size(); ++i) {
00836 mehCSCWireTime->Fill(CSCwireDigis[i].TIME);
00837 }
00838 if (verbosity > 0)
00839 edm::LogInfo (MsgLoggerCat)
00840 << "Done gathering data from event.";
00841
00842 }
00843 }
00844
00845
00846