00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "DQMOffline/JetMET/interface/DataCertificationJetMET.h"
00012 #include "FWCore/Framework/interface/LuminosityBlock.h"
00013 #include "FWCore/Framework/interface/Run.h"
00014
00015
00016
00017
00018
00019 DataCertificationJetMET::DataCertificationJetMET(const edm::ParameterSet& iConfig):conf_(iConfig)
00020 {
00021
00022 }
00023
00024
00025 DataCertificationJetMET::~DataCertificationJetMET()
00026 {
00027
00028
00029 }
00030
00031
00032
00033
00034
00035
00036
00037 void
00038 DataCertificationJetMET::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
00039 {
00040 using namespace edm;
00041 isData = iEvent.isRealData();
00042
00043 }
00044
00045
00046 void
00047 DataCertificationJetMET::beginJob(void)
00048 {
00049
00050
00051
00052
00053 verbose_ = conf_.getUntrackedParameter<int>("Verbose",0);
00054 metFolder = conf_.getUntrackedParameter<std::string>("metFolder");
00055
00056 jetTests[0][0] = conf_.getUntrackedParameter<bool>("caloBarrelJetMeanTest",true);
00057 jetTests[0][1] = conf_.getUntrackedParameter<bool>("caloBarrelJetKSTest",false);
00058 jetTests[1][0] = conf_.getUntrackedParameter<bool>("caloEndcapJetMeanTest",true);
00059 jetTests[1][1] = conf_.getUntrackedParameter<bool>("caloEndcapJetKSTest",false);
00060 jetTests[2][0] = conf_.getUntrackedParameter<bool>("caloForwardJetMeanTest",true);
00061 jetTests[2][1] = conf_.getUntrackedParameter<bool>("caloForwardJetKSTest",false);
00062 jetTests[3][0] = conf_.getUntrackedParameter<bool>("pfJetMeanTest",true);
00063 jetTests[3][1] = conf_.getUntrackedParameter<bool>("pfJetKSTest",false);
00064 jetTests[4][0] = conf_.getUntrackedParameter<bool>("jptJetMeanTest",true);
00065 jetTests[4][1] = conf_.getUntrackedParameter<bool>("jptJetKSTest",false);
00066
00067 metTests[0][0] = conf_.getUntrackedParameter<bool>("caloMETMeanTest",true);
00068 metTests[0][1] = conf_.getUntrackedParameter<bool>("caloMETKSTest",false);
00069 metTests[1][0] = conf_.getUntrackedParameter<bool>("calonohfMETMeanTest",true);
00070 metTests[1][1] = conf_.getUntrackedParameter<bool>("calonohfMETKSTest",false);
00071 metTests[2][0] = conf_.getUntrackedParameter<bool>("pfMETMeanTest",true);
00072 metTests[2][1] = conf_.getUntrackedParameter<bool>("pfMETKSTest",false);
00073 metTests[3][0] = conf_.getUntrackedParameter<bool>("tcMETMeanTest",true);
00074 metTests[3][1] = conf_.getUntrackedParameter<bool>("tcMETKSTest",false);
00075 metTests[4][0] = conf_.getUntrackedParameter<bool>("muMETMeanTest",true);
00076 metTests[4][1] = conf_.getUntrackedParameter<bool>("muMETKSTest",false);
00077
00078
00079 if (verbose_) std::cout << ">>> BeginJob (DataCertificationJetMET) <<<" << std::endl;
00080
00081
00082
00083 dbe_ = edm::Service<DQMStore>().operator->();
00084 }
00085
00086
00087 void
00088 DataCertificationJetMET::endJob()
00089 {
00090
00091 if (verbose_) std::cout << ">>> EndJob (DataCertificationJetMET) <<<" << std::endl;
00092
00093 bool outputFile = conf_.getUntrackedParameter<bool>("OutputFile");
00094 std::string outputFileName = conf_.getUntrackedParameter<std::string>("OutputFileName");
00095 if (verbose_) std::cout << ">>> endJob " << outputFile << std:: endl;
00096
00097 if(outputFile){
00098 dbe_->showDirStructure();
00099 dbe_->save(outputFileName,
00100 "", "","",
00101 (DQMStore::SaveReferenceTag) DQMStore::SaveWithReference);
00102 }
00103
00104 }
00105
00106
00107 void
00108 DataCertificationJetMET::beginLuminosityBlock(const edm::LuminosityBlock& lumiBlock, const edm::EventSetup& c)
00109 {
00110
00111 if (verbose_) std::cout << ">>> BeginLuminosityBlock (DataCertificationJetMET) <<<" << std::endl;
00112 if (verbose_) std::cout << ">>> lumiBlock = " << lumiBlock.id() << std::endl;
00113 if (verbose_) std::cout << ">>> run = " << lumiBlock.id().run() << std::endl;
00114 if (verbose_) std::cout << ">>> lumiBlock = " << lumiBlock.id().luminosityBlock() << std::endl;
00115
00116 }
00117
00118
00119 void
00120 DataCertificationJetMET::endLuminosityBlock(const edm::LuminosityBlock& lumiBlock, const edm::EventSetup& c)
00121 {
00122
00123 if (verbose_) std::cout << ">>> EndLuminosityBlock (DataCertificationJetMET) <<<" << std::endl;
00124 if (verbose_) std::cout << ">>> lumiBlock = " << lumiBlock.id() << std::endl;
00125 if (verbose_) std::cout << ">>> run = " << lumiBlock.id().run() << std::endl;
00126 if (verbose_) std::cout << ">>> lumiBlock = " << lumiBlock.id().luminosityBlock() << std::endl;
00127
00128 if (verbose_) dbe_->showDirStructure();
00129
00130 }
00131
00132
00133 void
00134 DataCertificationJetMET::beginRun(const edm::Run& run, const edm::EventSetup& c)
00135 {
00136
00137 if (verbose_) std::cout << ">>> BeginRun (DataCertificationJetMET) <<<" << std::endl;
00138
00139
00140 }
00141
00142
00143 void
00144 DataCertificationJetMET::endRun(const edm::Run& run, const edm::EventSetup& c)
00145 {
00146
00147 if (verbose_) std::cout << ">>> EndRun (DataCertificationJetMET) <<<" << std::endl;
00148
00149
00150
00151
00152 std::vector<MonitorElement*> mes;
00153 std::vector<std::string> subDirVec;
00154 std::string RunDir;
00155 std::string RunNum;
00156 int RunNumber=0;
00157
00158 std::string RefRunDir;
00159
00160 if (verbose_) std::cout << "InMemory_ = " << InMemory_ << std::endl;
00161
00162 if (InMemory_) {
00163
00164
00165
00166
00167 mes = dbe_->getAllContents("");
00168 if (verbose_) std::cout << "1 >>> found " << mes.size() << " monitoring elements!" << std::endl;
00169
00170 dbe_->setCurrentFolder("JetMET");
00171 subDirVec = dbe_->getSubdirs();
00172 for (std::vector<std::string>::const_iterator ic = subDirVec.begin();
00173 ic != subDirVec.end(); ic++) {
00174 if (verbose_) std::cout << "-AAA- Dir = >>" << ic->c_str() << "<<" << std::endl;
00175 }
00176
00177 RunDir = "";
00178 RunNumber = run.id().run();
00179
00180 } else {
00181
00182
00183
00184
00185 mes = dbe_->getAllContents("");
00186 if (verbose_) std::cout << "found " << mes.size() << " monitoring elements!" << std::endl;
00187
00188 dbe_->setCurrentFolder("/");
00189 std::string currDir = dbe_->pwd();
00190 if (verbose_) std::cout << "--- Current Directory " << currDir << std::endl;
00191
00192 subDirVec = dbe_->getSubdirs();
00193
00194
00195 int ind = 0;
00196 for (std::vector<std::string>::const_iterator ic = subDirVec.begin();
00197 ic != subDirVec.end(); ic++) {
00198 RunDir = *ic;
00199 RunNum = *ic;
00200 if (verbose_) std::cout << "-XXX- Dir = >>" << ic->c_str() << "<<" << std::endl;
00201 ind++;
00202 }
00203
00204
00205
00206
00207 if (RunDir == "JetMET") {
00208 RunDir = "";
00209 if (verbose_) std::cout << "-XXX- RunDir = >>" << RunDir.c_str() << "<<" << std::endl;
00210 }
00211 RunNum.erase(0,4);
00212 if (RunNum!="")
00213 RunNumber = atoi(RunNum.c_str());
00214 if (verbose_) std::cout << "--- >>" << RunNumber << "<<" << std::endl;
00215
00216 }
00217
00218 if (verbose_) dbe_->showDirStructure();
00219
00220
00221
00222 dbe_->setCurrentFolder("JetMET/EventInfo/");
00223 MonitorElement* reportSummary = dbe_->bookFloat("reportSummary");
00224 MonitorElement* CertificationSummary = dbe_->bookFloat("CertificationSummary");
00225
00226 MonitorElement* reportSummaryMap = dbe_->book2D("reportSummaryMap","reportSummaryMap",3,0,3,5,0,5);
00227 MonitorElement* CertificationSummaryMap = dbe_->book2D("CertificationSummaryMap","CertificationSummaryMap",3,0,3,5,0,5);
00228 reportSummaryMap->getTH2F()->SetStats(kFALSE);
00229 CertificationSummaryMap->getTH2F()->SetStats(kFALSE);
00230 reportSummaryMap->getTH2F()->SetOption("colz");
00231 CertificationSummaryMap->getTH2F()->SetOption("colz");
00232
00233 reportSummaryMap->setBinLabel(1,"CaloTower");
00234 reportSummaryMap->setBinLabel(2,"MET");
00235 reportSummaryMap->setBinLabel(3,"Jet");
00236
00237 CertificationSummaryMap->setBinLabel(1,"CaloTower");
00238 CertificationSummaryMap->setBinLabel(2,"MET");
00239 CertificationSummaryMap->setBinLabel(3,"Jet");
00240
00241 reportSummary->Fill(1.);
00242 CertificationSummary->Fill(1.);
00243
00244
00245 if (RunDir=="Reference") RunDir="";
00246 if (verbose_) std::cout << RunDir << std::endl;
00247 dbe_->setCurrentFolder("JetMET/EventInfo/CertificationSummaryContents/");
00248
00249 std::string refHistoName;
00250 std::string newHistoName;
00251
00252
00253
00254
00255 MonitorElement *meJetPt[5];
00256 MonitorElement *meJetEta[5];
00257 MonitorElement *meJetPhi[5];
00258 MonitorElement *meJetEMFrac[4];
00259 MonitorElement *meJetConstituents[4];
00260 MonitorElement *meJetNTracks;
00261
00262 RunDir = "";
00263 if (RunDir == "") newHistoName = "JetMET/Jet/";
00264 else newHistoName = RunDir+"/JetMET/Run summary/Jet/";
00265 std::string cleaningdir = "";
00266 if (isData)
00267 cleaningdir = "Cleaned";
00268
00269 meJetPhi[0] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Phi_Barrel");
00270 meJetPhi[1] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Phi_EndCap");
00271 meJetPhi[2] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Phi_Forward");
00272 meJetPhi[3] = dbe_->get(newHistoName+"PFJets/Phi");
00273 meJetPhi[4] = dbe_->get(newHistoName+"JPT/Phi");
00274
00275
00276 meJetEta[0] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Eta");
00277 meJetEta[1] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Eta");
00278 meJetEta[2] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Eta");
00279 meJetEta[3] = dbe_->get(newHistoName+"PFJets/Eta");
00280 meJetEta[4] = dbe_->get(newHistoName+"JPT/Eta");
00281
00282
00283 meJetPt[0] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Pt_Barrel");
00284 meJetPt[1] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Pt_EndCap");
00285 meJetPt[2] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Pt_Forward");
00286 meJetPt[3] = dbe_->get(newHistoName+"PFJets/Pt2");
00287 meJetPt[4] = dbe_->get(newHistoName+"JPT/Pt2");
00288
00290 meJetConstituents[0] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Constituents");
00291 meJetConstituents[1] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Constituents");
00292 meJetConstituents[2] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/Constituents");
00293 meJetConstituents[3] = dbe_->get(newHistoName+"PFJets/Constituents");
00294
00296 meJetEMFrac[0] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/EFrac");
00297 meJetEMFrac[1] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/EFrac");
00298 meJetEMFrac[2] = dbe_->get(newHistoName+cleaningdir+"AntiKtJets/EFrac");
00299 meJetEMFrac[3] = dbe_->get(newHistoName+"PFJets/EFrac");
00300
00301
00302 meJetNTracks = dbe_->get(newHistoName+"JPT/nTracks");
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318 const QReport * QReport_JetEta[5];
00319 const QReport * QReport_JetPhi[5];
00320
00321
00322 const QReport * QReport_JetConstituents[4][2];
00323 const QReport * QReport_JetEFrac[4][2];
00324 const QReport * QReport_JetPt[5][2];
00325
00326 const QReport * QReport_JetNTracks[2];
00327
00328
00329 float qr_Jet_NTracks[2] = {-1.};
00330 float qr_Jet_Constituents[4][2] = {{-1.}};
00331 float qr_Jet_EFrac[4][2] = {{-1.}};
00332 float qr_Jet_Eta[5] = {-1.};
00333 float qr_Jet_Phi[5] = {-1.};
00334 float qr_Jet_Pt[5][2] = {{-1.}};
00335 float dc_Jet[5] = {-1.};
00336
00337 for (int jtyp = 0; jtyp < 5; ++jtyp){
00338
00339 if (jtyp < 4){
00340 if (meJetConstituents[jtyp]) {
00341 QReport_JetConstituents[jtyp][0] = meJetConstituents[jtyp]->getQReport("meanJetConstituentsTest");
00342 QReport_JetConstituents[jtyp][1] = meJetConstituents[jtyp]->getQReport("KolmogorovTest");
00343 }
00344 if (meJetEMFrac[jtyp]) {
00345 QReport_JetEFrac[jtyp][0] = meJetEMFrac[jtyp]->getQReport("meanEMFractionTest");
00346 QReport_JetEFrac[jtyp][1] = meJetEMFrac[jtyp]->getQReport("KolmogorovTest");
00347 }
00348 }
00349 else {
00350 if (meJetNTracks) {
00351 QReport_JetNTracks[0] = meJetNTracks->getQReport("meanNTracksTest");
00352 QReport_JetNTracks[1] = meJetNTracks->getQReport("KolmogorovTest");
00353 }
00354 }
00355 if (meJetPt[jtyp]) {
00356 QReport_JetPt[jtyp][0] = meJetPt[jtyp]->getQReport("meanJetPtTest");
00357 QReport_JetPt[jtyp][1] = meJetPt[jtyp]->getQReport("KolmogorovTest");
00358 }
00359 if (meJetPhi[jtyp])
00360 QReport_JetPhi[jtyp] = meJetPhi[jtyp]->getQReport("KolmogorovTest");
00361 if (meJetEta[jtyp])
00362 QReport_JetEta[jtyp] = meJetEta[jtyp]->getQReport("KolmogorovTest");
00363
00364
00365 if (QReport_JetPt[jtyp][0]){
00366 if (QReport_JetPt[jtyp][0]->getStatus()==100 ||
00367 QReport_JetPt[jtyp][0]->getStatus()==200)
00368 qr_Jet_Pt[jtyp][0] = 1;
00369 else if (QReport_JetPt[jtyp][0]->getStatus()==300)
00370 qr_Jet_Pt[jtyp][0] = 0;
00371 else
00372 qr_Jet_Pt[jtyp][0] = -1;
00373 }
00374 else qr_Jet_Pt[jtyp][0] = -2;
00375
00376 if (QReport_JetPt[jtyp][1]){
00377 if (QReport_JetPt[jtyp][1]->getStatus()==100 ||
00378 QReport_JetPt[jtyp][1]->getStatus()==200)
00379 qr_Jet_Pt[jtyp][1] = 1;
00380 else if (QReport_JetPt[jtyp][1]->getStatus()==300)
00381 qr_Jet_Pt[jtyp][1] = 0;
00382 else
00383 qr_Jet_Pt[jtyp][1] = -1;
00384 }
00385 else qr_Jet_Pt[jtyp][1] = -2;
00386
00387
00388 if (QReport_JetPhi[jtyp]){
00389 if (QReport_JetPhi[jtyp]->getStatus()==100 ||
00390 QReport_JetPhi[jtyp]->getStatus()==200)
00391 qr_Jet_Phi[jtyp] = 1;
00392 else if (QReport_JetPhi[jtyp]->getStatus()==300)
00393 qr_Jet_Phi[jtyp] = 0;
00394 else
00395 qr_Jet_Phi[jtyp] = -1;
00396 }
00397 else qr_Jet_Phi[jtyp] = -2;
00398
00399
00400 if (QReport_JetEta[jtyp]){
00401 if (QReport_JetEta[jtyp]->getStatus()==100 ||
00402 QReport_JetEta[jtyp]->getStatus()==200)
00403 qr_Jet_Eta[jtyp] = 1;
00404 else if (QReport_JetEta[jtyp]->getStatus()==300)
00405 qr_Jet_Eta[jtyp] = 0;
00406 else
00407 qr_Jet_Eta[jtyp] = -1;
00408 }
00409 else qr_Jet_Eta[jtyp] = -2;
00410
00411 if (jtyp < 4) {
00412
00413 if (QReport_JetConstituents[jtyp][0]){
00414 if (QReport_JetConstituents[jtyp][0]->getStatus()==100 ||
00415 QReport_JetConstituents[jtyp][0]->getStatus()==200)
00416 qr_Jet_Constituents[jtyp][0] = 1;
00417 else if (QReport_JetConstituents[jtyp][0]->getStatus()==300)
00418 qr_Jet_Constituents[jtyp][0] = 0;
00419 else
00420 qr_Jet_Constituents[jtyp][0] = -1;
00421 }
00422 else qr_Jet_Constituents[jtyp][0] = -2;
00423
00424 if (QReport_JetConstituents[jtyp][1]){
00425 if (QReport_JetConstituents[jtyp][1]->getStatus()==100 ||
00426 QReport_JetConstituents[jtyp][1]->getStatus()==200)
00427 qr_Jet_Constituents[jtyp][1] = 1;
00428 else if (QReport_JetConstituents[jtyp][1]->getStatus()==300)
00429 qr_Jet_Constituents[jtyp][1] = 0;
00430 else
00431 qr_Jet_Constituents[jtyp][1] = -1;
00432 }
00433 else qr_Jet_Constituents[jtyp][1] = -2;
00434
00435
00436 if (QReport_JetEFrac[jtyp][0]){
00437 if (QReport_JetEFrac[jtyp][0]->getStatus()==100 ||
00438 QReport_JetEFrac[jtyp][0]->getStatus()==200)
00439 qr_Jet_EFrac[jtyp][0] = 1;
00440 else if (QReport_JetEFrac[jtyp][0]->getStatus()==300)
00441 qr_Jet_EFrac[jtyp][0] = 0;
00442 else
00443 qr_Jet_EFrac[jtyp][0] = -1;
00444 }
00445 else qr_Jet_EFrac[jtyp][0] = -2;
00446
00447 if (QReport_JetEFrac[jtyp][1]){
00448 if (QReport_JetEFrac[jtyp][1]->getStatus()==100 ||
00449 QReport_JetEFrac[jtyp][1]->getStatus()==200)
00450 qr_Jet_EFrac[jtyp][1] = 1;
00451 else if (QReport_JetEFrac[jtyp][1]->getStatus()==300)
00452 qr_Jet_EFrac[jtyp][1] = 0;
00453 else
00454 qr_Jet_EFrac[jtyp][1] = -1;
00455 }
00456 else qr_Jet_EFrac[jtyp][1] = -2;
00457 }
00458 else {
00459 for (int ii = 0; ii < 2; ++ii) {
00460
00461 if (QReport_JetNTracks[ii]){
00462 if (QReport_JetNTracks[ii]->getStatus()==100 ||
00463 QReport_JetNTracks[ii]->getStatus()==200)
00464 qr_Jet_NTracks[ii] = 1;
00465 else if (QReport_JetNTracks[ii]->getStatus()==300)
00466 qr_Jet_NTracks[ii] = 0;
00467 else
00468 qr_Jet_NTracks[ii] = -1;
00469 }
00470 else qr_Jet_NTracks[ii] = -2;
00471 }
00472 }
00473
00474 if (verbose_) {
00475 printf("====================Jet Type %d QTest Report Summary========================\n",jtyp);
00476 printf("Eta: Phi: Pt 1: 2: Const/Ntracks 1: 2: EFrac/tracknhits 1: 2:\n");
00477 if (jtyp<4) {
00478 printf("%2.2f %2.2f %2.2f %2.2f %2.2f %2.2f %2.2f %2.2f\n", \
00479 qr_Jet_Eta[jtyp], \
00480 qr_Jet_Phi[jtyp], \
00481 qr_Jet_Pt[jtyp][0], \
00482 qr_Jet_Pt[jtyp][1], \
00483 qr_Jet_Constituents[jtyp][0], \
00484 qr_Jet_Constituents[jtyp][1], \
00485 qr_Jet_EFrac[jtyp][0], \
00486 qr_Jet_EFrac[jtyp][1]);
00487 }
00488 else {
00489 printf("%2.2f %2.2f %2.2f %2.2f %2.2f %2.2f\n", \
00490 qr_Jet_Eta[jtyp], \
00491 qr_Jet_Phi[jtyp], \
00492 qr_Jet_Pt[jtyp][0], \
00493 qr_Jet_Pt[jtyp][1], \
00494 qr_Jet_NTracks[0], \
00495 qr_Jet_NTracks[1]);
00496 }
00497 printf("===========================================================================\n");
00498 }
00499
00500
00501
00502 for (int ttyp = 0; ttyp < 2; ++ttyp) {
00503 if (!jetTests[jtyp][ttyp]) {
00504 qr_Jet_Pt[jtyp][ttyp] = 1;
00505 if (ttyp ==1) {
00506 qr_Jet_Eta[jtyp] = 1;
00507 qr_Jet_Phi[jtyp] = 1;
00508 }
00509 if (jtyp < 4) {
00510 qr_Jet_EFrac[jtyp][ttyp] = 1;
00511 qr_Jet_Constituents[jtyp][ttyp] = 1;
00512 }
00513 else{
00514 qr_Jet_NTracks[ttyp] = 1;
00515 }
00516 }
00517 }
00518
00519
00520 if (jtyp < 4) {
00521 if ( (qr_Jet_EFrac[jtyp][0] == 0) ||
00522 (qr_Jet_EFrac[jtyp][1] == 0) ||
00523 (qr_Jet_Constituents[jtyp][1] == 0) ||
00524 (qr_Jet_Constituents[jtyp][0] == 0) ||
00525 (qr_Jet_Eta[jtyp] == 0) ||
00526 (qr_Jet_Phi[jtyp] == 0) ||
00527 (qr_Jet_Pt[jtyp][0] == 0) ||
00528 (qr_Jet_Pt[jtyp][1] == 0)
00529 )
00530 dc_Jet[jtyp] = 0;
00531 else if ( (qr_Jet_EFrac[jtyp][0] == -1) &&
00532 (qr_Jet_EFrac[jtyp][1] == -1) &&
00533 (qr_Jet_Constituents[jtyp][1] == -1) &&
00534 (qr_Jet_Constituents[jtyp][0] == -1) &&
00535 (qr_Jet_Eta[jtyp] == -1) &&
00536 (qr_Jet_Phi[jtyp] == -1) &&
00537 (qr_Jet_Pt[jtyp][0] == -1) &&
00538 (qr_Jet_Pt[jtyp][1] == -1 )
00539 )
00540 dc_Jet[jtyp] = -1;
00541 else if ( (qr_Jet_EFrac[jtyp][0] == -2) &&
00542 (qr_Jet_EFrac[jtyp][1] == -2) &&
00543 (qr_Jet_Constituents[jtyp][1] == -2) &&
00544 (qr_Jet_Constituents[jtyp][0] == -2) &&
00545 (qr_Jet_Eta[jtyp] == -2) &&
00546 (qr_Jet_Phi[jtyp] == -2) &&
00547 (qr_Jet_Pt[jtyp][0] == -2) &&
00548 (qr_Jet_Pt[jtyp][1] == -2)
00549 )
00550 dc_Jet[jtyp] = -2;
00551 else
00552 dc_Jet[jtyp] = 1;
00553 }
00554 else {
00555 if ( (qr_Jet_NTracks[0] == 0) ||
00556 (qr_Jet_NTracks[1] == 0) ||
00557 (qr_Jet_Eta[jtyp] == 0) ||
00558 (qr_Jet_Phi[jtyp] == 0) ||
00559 (qr_Jet_Pt[jtyp][0] == 0) ||
00560 (qr_Jet_Pt[jtyp][1] == 0)
00561 )
00562 dc_Jet[jtyp] = 0;
00563 else if ( (qr_Jet_NTracks[0] == -1) &&
00564 (qr_Jet_NTracks[1] == -1) &&
00565 (qr_Jet_Eta[jtyp] == -1) &&
00566 (qr_Jet_Phi[jtyp] == -1) &&
00567 (qr_Jet_Pt[jtyp][0] == -1) &&
00568 (qr_Jet_Pt[jtyp][1] == -1)
00569 )
00570 dc_Jet[jtyp] = -1;
00571 else if ( (qr_Jet_NTracks[0] == -2) &&
00572 (qr_Jet_NTracks[1] == -2) &&
00573 (qr_Jet_Eta[jtyp] == -2) &&
00574 (qr_Jet_Phi[jtyp] == -2) &&
00575 (qr_Jet_Pt[jtyp][0] == -2) &&
00576 (qr_Jet_Pt[jtyp][1] == -2)
00577 )
00578 dc_Jet[jtyp] = -2;
00579 else
00580 dc_Jet[jtyp] = 1;
00581 }
00582
00583 if (verbose_) std::cout<<"Certifying Jet algo: "<<jtyp<<" with value: "<<dc_Jet[jtyp]<<std::endl;
00584 CertificationSummaryMap->Fill(2, 4-jtyp, dc_Jet[jtyp]);
00585 reportSummaryMap->Fill(2, 4-jtyp, dc_Jet[jtyp]);
00586 }
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596 MonitorElement *meMExy[4][2];
00597 MonitorElement *meMEt[4];
00598 MonitorElement *meSumEt[4];
00599 MonitorElement *meMETPhi[4];
00600
00601
00602
00603
00604 RunDir = "";
00605 if (RunDir == "") newHistoName = "JetMET/MET/";
00606 else newHistoName = RunDir+"/JetMET/Run summary/MET/";
00607
00608 if (isData)
00609 cleaningdir = "BasicCleanup";
00610 else
00611 cleaningdir = "All";
00612
00613 meMExy[0][0] = dbe_->get(newHistoName+"CaloMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMEx");
00614 meMExy[0][1] = dbe_->get(newHistoName+"CaloMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMEy");
00615
00616
00617 meMExy[1][0] = dbe_->get(newHistoName+"PfMET/"+cleaningdir+"/"+metFolder+"/METTask_PfMEx");
00618 meMExy[1][1] = dbe_->get(newHistoName+"PfMET/"+cleaningdir+"/"+metFolder+"/METTask_PfMEy");
00619 meMExy[2][0] = dbe_->get(newHistoName+"TcMET/"+cleaningdir+"/"+metFolder+"/METTask_MEx");
00620 meMExy[2][1] = dbe_->get(newHistoName+"TcMET/"+cleaningdir+"/"+metFolder+"/METTask_MEy");
00621 meMExy[3][0] = dbe_->get(newHistoName+"MuCorrMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMEx");
00622 meMExy[3][1] = dbe_->get(newHistoName+"MuCorrMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMEy");
00623
00624 meMETPhi[0] = dbe_->get(newHistoName+"CaloMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMETPhi");
00625
00626 meMETPhi[1] = dbe_->get(newHistoName+"PfMET/"+cleaningdir+"/"+metFolder+"/METTask_PfMETPhi");
00627 meMETPhi[2] = dbe_->get(newHistoName+"TcMET/"+cleaningdir+"/"+metFolder+"/METTask_METPhi");
00628 meMETPhi[3] = dbe_->get(newHistoName+"MuCorrMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMETPhi");
00629
00630 meMEt[0] = dbe_->get(newHistoName+"CaloMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMET");
00631
00632 meMEt[1] = dbe_->get(newHistoName+"PfMET/"+cleaningdir+"/"+metFolder+"/METTask_PfMET");
00633 meMEt[2] = dbe_->get(newHistoName+"TcMET/"+cleaningdir+"/"+metFolder+"/METTask_MET");
00634 meMEt[3] = dbe_->get(newHistoName+"MuCorrMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloMET");
00635
00636 meSumEt[0] = dbe_->get(newHistoName+"CaloMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloSumET");
00637
00638 meSumEt[1] = dbe_->get(newHistoName+"PfMET/"+cleaningdir+"/"+metFolder+"/METTask_PfSumET");
00639 meSumEt[2] = dbe_->get(newHistoName+"TcMET/"+cleaningdir+"/"+metFolder+"/METTask_SumET");
00640 meSumEt[3] = dbe_->get(newHistoName+"MuCorrMET/"+cleaningdir+"/"+metFolder+"/METTask_CaloSumET");
00641
00642
00643
00644
00645
00646
00647
00648 const QReport * QReport_MExy[4][2][2];
00649 const QReport * QReport_MEt[4][2];
00650 const QReport * QReport_SumEt[4][2];
00651
00652 const QReport * QReport_METPhi[4][2];
00653
00654
00655 float qr_MET_MExy[4][2][2] = {{{-999.}}};
00656 float qr_MET_MEt[4][2] = {{-999.}};
00657 float qr_MET_SumEt[4][2] = {{-999.}};
00658 float qr_MET_METPhi[4][2] = {{-999.}};
00659 float dc_MET[4] = {-999.};
00660
00661
00662
00663
00664 for (int mtyp = 0; mtyp < 3; ++mtyp){
00665
00666
00667
00668
00669
00670
00671 if (meMExy[mtyp][0]) {
00672 QReport_MExy[mtyp][0][0] = meMExy[mtyp][0]->getQReport("meanMExyTest");
00673 QReport_MExy[mtyp][1][0] = meMExy[mtyp][0]->getQReport("KolmogorovTest");
00674 }
00675 if (meMExy[mtyp][1]) {
00676 QReport_MExy[mtyp][0][1] = meMExy[mtyp][1]->getQReport("meanMExyTest");
00677 QReport_MExy[mtyp][1][1] = meMExy[mtyp][1]->getQReport("KolmogorovTest");
00678 }
00679 if (meMEt[mtyp]) {
00680 QReport_MEt[mtyp][0] = meMEt[mtyp]->getQReport("meanMETTest");
00681 QReport_MEt[mtyp][1] = meMEt[mtyp]->getQReport("KolmogorovTest");
00682 }
00683
00684 if (meSumEt[mtyp]) {
00685 QReport_SumEt[mtyp][0] = meSumEt[mtyp]->getQReport("meanSumETTest");
00686 QReport_SumEt[mtyp][1] = meSumEt[mtyp]->getQReport("KolmogorovTest");
00687 }
00688
00689 if (meMETPhi[mtyp]) {
00690 QReport_METPhi[mtyp][0] = meMETPhi[mtyp]->getQReport("phiQTest");
00691 QReport_METPhi[mtyp][1] = meMETPhi[mtyp]->getQReport("KolmogorovTest");
00692 }
00693 for (int testtyp = 0; testtyp < 2; ++testtyp) {
00694
00695 if (QReport_MExy[mtyp][testtyp][0]){
00696 if (QReport_MExy[mtyp][testtyp][0]->getStatus()==100 ||
00697 QReport_MExy[mtyp][testtyp][0]->getStatus()==200)
00698 qr_MET_MExy[mtyp][testtyp][0] = 1;
00699 else if (QReport_MExy[mtyp][testtyp][0]->getStatus()==300)
00700 qr_MET_MExy[mtyp][testtyp][0] = 0;
00701 else
00702 qr_MET_MExy[mtyp][testtyp][0] = -1;
00703 }
00704 else qr_MET_MExy[mtyp][testtyp][0] = -2;
00705
00706
00707 if (QReport_MExy[mtyp][testtyp][1]){
00708 if (QReport_MExy[mtyp][testtyp][1]->getStatus()==100 ||
00709 QReport_MExy[mtyp][testtyp][1]->getStatus()==200)
00710 qr_MET_MExy[mtyp][testtyp][1] = 1;
00711 else if (QReport_MExy[mtyp][testtyp][1]->getStatus()==300)
00712 qr_MET_MExy[mtyp][testtyp][1] = 0;
00713 else
00714 qr_MET_MExy[mtyp][testtyp][1] = -1;
00715 }
00716 else qr_MET_MExy[mtyp][testtyp][1] = -2;
00717
00718
00719 if (QReport_MEt[mtyp][testtyp]){
00720 if (QReport_MEt[mtyp][testtyp]->getStatus()==100 ||
00721 QReport_MEt[mtyp][testtyp]->getStatus()==200)
00722 qr_MET_MEt[mtyp][testtyp] = 1;
00723 else if (QReport_MEt[mtyp][testtyp]->getStatus()==300)
00724 qr_MET_MEt[mtyp][testtyp] = 0;
00725 else
00726 qr_MET_MEt[mtyp][testtyp] = -1;
00727 }
00728 else qr_MET_MEt[mtyp][testtyp] = -2;
00729
00730
00731 if (QReport_SumEt[mtyp][testtyp]){
00732 if (QReport_SumEt[mtyp][testtyp]->getStatus()==100 ||
00733 QReport_SumEt[mtyp][testtyp]->getStatus()==200)
00734 qr_MET_SumEt[mtyp][testtyp] = 1;
00735 else if (QReport_SumEt[mtyp][testtyp]->getStatus()==300)
00736 qr_MET_SumEt[mtyp][testtyp] = 0;
00737 else
00738 qr_MET_SumEt[mtyp][testtyp] = -1;
00739 }
00740 else qr_MET_SumEt[mtyp][testtyp] = -2;
00741
00742
00743 if (QReport_METPhi[mtyp][testtyp]){
00744 if (QReport_METPhi[mtyp][testtyp]->getStatus()==100 ||
00745 QReport_METPhi[mtyp][testtyp]->getStatus()==200)
00746 qr_MET_METPhi[mtyp][testtyp] = 1;
00747 else if (QReport_METPhi[mtyp][testtyp]->getStatus()==300)
00748 qr_MET_METPhi[mtyp][testtyp] = 0;
00749 else
00750 qr_MET_METPhi[mtyp][testtyp] = -1;
00751 }
00752 else qr_MET_METPhi[mtyp][testtyp] = -2;
00753 }
00754
00755 if (verbose_) {
00756
00757 printf("====================MET Type %d QTest Report Summary========================\n",mtyp);
00758 printf("MEx test MEy test MEt test: SumEt test: METPhi test:\n");
00759 for (int tt = 0; tt < 2; ++tt) {
00760 printf("%2.2f %2.2f %2.2f %2.2f %2.2f\n",qr_MET_MExy[mtyp][tt][0], \
00761 qr_MET_MExy[mtyp][tt][1], \
00762 qr_MET_MEt[mtyp][tt], \
00763 qr_MET_SumEt[mtyp][tt], \
00764 qr_MET_METPhi[mtyp][tt]);
00765 }
00766 printf("===========================================================================\n");
00767 }
00768
00769
00770
00771 for (int ttyp = 0; ttyp < 2; ++ttyp) {
00772 if (!metTests[mtyp][ttyp]) {
00773 qr_MET_MExy[mtyp][ttyp][0] = 1;
00774 qr_MET_MExy[mtyp][ttyp][1] = 1;
00775 qr_MET_MEt[mtyp][ttyp] = 1;
00776 qr_MET_SumEt[mtyp][ttyp] = 1;
00777 qr_MET_METPhi[mtyp][ttyp] = 1;
00778 }
00779 }
00780
00781
00782 if (
00783 (qr_MET_MExy[mtyp][0][0] == 0) ||
00784 (qr_MET_MExy[mtyp][0][1] == 0) ||
00785 (qr_MET_MEt[mtyp][0] == 0) ||
00786 (qr_MET_SumEt[mtyp][0] == 0) ||
00787 (qr_MET_METPhi[mtyp][0] == 0) ||
00788 (qr_MET_MExy[mtyp][1][0] == 0) ||
00789 (qr_MET_MExy[mtyp][1][1] == 0) ||
00790 (qr_MET_MEt[mtyp][1] == 0) ||
00791 (qr_MET_SumEt[mtyp][1] == 0) ||
00792 (qr_MET_METPhi[mtyp][1] == 0)
00793 )
00794 dc_MET[mtyp] = 0;
00795 else if (
00796 (qr_MET_MExy[mtyp][0][0] == -1) &&
00797 (qr_MET_MExy[mtyp][0][1] == -1) &&
00798 (qr_MET_MEt[mtyp][0] == -1) &&
00799 (qr_MET_SumEt[mtyp][0] == -1) &&
00800 (qr_MET_METPhi[mtyp][0] == -1) &&
00801 (qr_MET_MExy[mtyp][1][0] == -1) &&
00802 (qr_MET_MExy[mtyp][1][1] == -1) &&
00803 (qr_MET_MEt[mtyp][1] == -1) &&
00804 (qr_MET_SumEt[mtyp][1] == -1) &&
00805 (qr_MET_METPhi[mtyp][1] == -1)
00806 )
00807 dc_MET[mtyp] = -1;
00808 else if (
00809 (qr_MET_MExy[mtyp][0][0] == -2) &&
00810 (qr_MET_MExy[mtyp][0][1] == -2) &&
00811 (qr_MET_MEt[mtyp][0] == -2) &&
00812 (qr_MET_SumEt[mtyp][0] == -2) &&
00813 (qr_MET_METPhi[mtyp][0] == -2) &&
00814 (qr_MET_MExy[mtyp][1][0] == -2) &&
00815 (qr_MET_MExy[mtyp][1][1] == -2) &&
00816 (qr_MET_MEt[mtyp][1] == -2) &&
00817 (qr_MET_SumEt[mtyp][1] == -2) &&
00818 (qr_MET_METPhi[mtyp][1] == -2)
00819 )
00820 dc_MET[mtyp] = -2;
00821 else
00822 dc_MET[mtyp] = 1;
00823
00824 if (verbose_) std::cout<<"Certifying MET algo: "<<mtyp<<" with value: "<<dc_MET[mtyp]<<std::endl;
00825 CertificationSummaryMap->Fill(1, 4-mtyp, dc_MET[mtyp]);
00826 reportSummaryMap->Fill(1, 4-mtyp, dc_MET[mtyp]);
00827 }
00828
00829
00830
00831
00832
00833
00834
00835
00836
00837
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852
00853
00854
00855 float dc_CT[3] = {-2.};
00856 dc_CT[0] = -2.;
00857 dc_CT[1] = -2.;
00858 dc_CT[2] = -2.;
00859
00860
00861
00862
00863
00864 for (int cttyp = 0; cttyp < 3; ++cttyp) {
00865
00866 if (verbose_) std::cout<<"Certifying CaloTowers with value: "<<dc_CT[cttyp]<<std::endl;
00867 CertificationSummaryMap->Fill(0, 4-cttyp, dc_CT[cttyp]);
00868 reportSummaryMap->Fill(0, 4-cttyp, dc_CT[cttyp]);
00869 }
00870 dbe_->setCurrentFolder("");
00871
00872 }
00873
00874
00875