#include <DQM/EcalBarrelMonitorClient/interface/EcalBarrelMonitorClient.h>
Definition at line 40 of file EcalBarrelMonitorClient.h.
EcalBarrelMonitorClient::EcalBarrelMonitorClient | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 74 of file EcalBarrelMonitorClient.cc.
References baseHtmlDir_, EcalDCCHeaderBlock::BEAMH2, EcalDCCHeaderBlock::BEAMH4, EcalDCCHeaderBlock::CALIB_LOCAL, clientName_, clients_, clientsNames_, clientsRuns_, clientsStatus_, cloneME_, EcalDCCHeaderBlock::COSMIC, EcalDCCHeaderBlock::COSMICS_GLOBAL, EcalDCCHeaderBlock::COSMICS_LOCAL, GenMuonPlsPt100GeV_cfg::cout, dbHostName_, dbHostPort_, dbName_, dbPassword_, dbTagName_, dbUpdateTime_, dbUserName_, debug_, enableCleanup_, enabledClients_, enableMonitorDaemon_, enableUpdate_, lat::endl(), find(), edm::ParameterSet::getUntrackedParameter(), EcalDCCHeaderBlock::HALO_GLOBAL, EcalDCCHeaderBlock::HALO_LOCAL, hostName_, hostPort_, htmlUpdateTime_, i, inputFile_, EcalDCCHeaderBlock::LASER_GAP, EcalDCCHeaderBlock::LASER_STD, EcalDCCHeaderBlock::LED_GAP, EcalDCCHeaderBlock::LED_STD, location_, maskFile_, mergeRuns_, EcalDCCHeaderBlock::MTCC, EcalDCCHeaderBlock::PEDESTAL_GAP, EcalDCCHeaderBlock::PEDESTAL_OFFSET_SCAN, EcalDCCHeaderBlock::PEDESTAL_STD, EcalDCCHeaderBlock::PHYSICS_GLOBAL, EcalDCCHeaderBlock::PHYSICS_LOCAL, prefixME_, prescaleFactor_, ecdqm::rgb, ecdqm::rgb2, runTypes_, EBSummaryClient::setFriends(), summaryClient_, superModules_, EcalDCCHeaderBlock::TESTPULSE_GAP, EcalDCCHeaderBlock::TESTPULSE_MGPA, updateTime_, and verbose_.
00074 : ModuleWeb("EcalBarrelMonitorClient") { 00075 00076 // verbose switch 00077 00078 verbose_ = ps.getUntrackedParameter<bool>("verbose", true); 00079 00080 if ( verbose_ ) { 00081 cout << endl; 00082 cout << " *** Ecal Barrel Generic Monitor Client ***" << endl; 00083 cout << endl; 00084 } 00085 00086 // DQM ROOT input file 00087 00088 inputFile_ = ps.getUntrackedParameter<string>("inputFile", ""); 00089 00090 if ( verbose_ ) { 00091 if ( inputFile_.size() != 0 ) { 00092 cout << " Reading DQM data from inputFile = '" << inputFile_ << "'" << endl; 00093 } 00094 } 00095 00096 // Ecal Cond DB 00097 00098 dbName_ = ps.getUntrackedParameter<string>("dbName", ""); 00099 dbHostName_ = ps.getUntrackedParameter<string>("dbHostName", ""); 00100 dbHostPort_ = ps.getUntrackedParameter<int>("dbHostPort", 1521); 00101 dbUserName_ = ps.getUntrackedParameter<string>("dbUserName", ""); 00102 dbPassword_ = ps.getUntrackedParameter<string>("dbPassword", ""); 00103 00104 dbTagName_ = ps.getUntrackedParameter<string>("dbTagName", "CMSSW"); 00105 00106 if ( verbose_ ) { 00107 if ( dbName_.size() != 0 ) { 00108 cout << " Using Ecal Cond DB: " << endl; 00109 cout << " dbName = '" << dbName_ << "'" << endl; 00110 cout << " dbUserName = '" << dbUserName_ << "'" << endl; 00111 if ( dbHostName_.size() != 0 ) { 00112 cout << " dbHostName = '" << dbHostName_ << "'" << endl; 00113 cout << " dbHostPort = '" << dbHostPort_ << "'" << endl; 00114 } 00115 cout << " dbTagName = '" << dbTagName_ << "'" << endl; 00116 } else { 00117 cout << " Ecal Cond DB is OFF" << endl; 00118 } 00119 } 00120 00121 // Mask file 00122 00123 maskFile_ = ps.getUntrackedParameter<string>("maskFile", ""); 00124 00125 if ( verbose_ ) { 00126 if ( maskFile_.size() != 0 ) { 00127 cout << " Using maskFile = '" << maskFile_ << "'" << endl; 00128 } 00129 } 00130 00131 // mergeRuns switch 00132 00133 mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false); 00134 00135 if ( verbose_ ) { 00136 if ( mergeRuns_ ) { 00137 cout << " mergeRuns switch is ON" << endl; 00138 } else { 00139 cout << " mergeRuns switch is OFF" << endl; 00140 } 00141 } 00142 00143 // updateTime 00144 00145 updateTime_ = ps.getUntrackedParameter<int>("updateTime", 0); 00146 00147 if ( verbose_ ) { 00148 cout << " updateTime is " << updateTime_ << " minute(s)" << endl; 00149 } 00150 00151 // dbUpdateTime 00152 00153 dbUpdateTime_ = ps.getUntrackedParameter<int>("dbUpdateTime", 0); 00154 00155 if ( verbose_ ) { 00156 cout << " dbUpdateTime is " << dbUpdateTime_ << " minute(s)" << endl; 00157 } 00158 00159 // htmlUpdateTime 00160 00161 htmlUpdateTime_ = ps.getUntrackedParameter<int>("htmlUpdateTime", 0); 00162 00163 if ( verbose_ ) { 00164 cout << " htmlUpdateTime is " << htmlUpdateTime_ << " minute(s)" << endl; 00165 } 00166 00167 // location 00168 00169 location_ = ps.getUntrackedParameter<string>("location", "H4"); 00170 00171 if ( verbose_ ) { 00172 cout << " location is '" << location_ << "'" << endl; 00173 } 00174 00175 // base Html output directory 00176 00177 baseHtmlDir_ = ps.getUntrackedParameter<string>("baseHtmlDir", ""); 00178 00179 if ( verbose_ ) { 00180 if ( baseHtmlDir_.size() != 0 ) { 00181 cout << " HTML output will go to" 00182 << " baseHtmlDir = '" << baseHtmlDir_ << "'" << endl; 00183 } else { 00184 cout << " HTML output is OFF" << endl; 00185 } 00186 } 00187 00188 // cloneME switch 00189 00190 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true); 00191 00192 if ( verbose_ ) { 00193 if ( cloneME_ ) { 00194 cout << " cloneME switch is ON" << endl; 00195 } else { 00196 cout << " cloneME switch is OFF" << endl; 00197 } 00198 } 00199 00200 // debug switch 00201 00202 debug_ = ps.getUntrackedParameter<bool>("debug", false); 00203 00204 if ( verbose_ ) { 00205 if ( debug_ ) { 00206 cout << " debug switch is ON" << endl; 00207 } else { 00208 cout << " debug switch is OFF" << endl; 00209 } 00210 } 00211 00212 // prescaleFactor 00213 00214 prescaleFactor_ = ps.getUntrackedParameter<int>("prescaleFactor", 1); 00215 00216 if ( verbose_ ) { 00217 cout << " prescaleFactor = " << prescaleFactor_ << endl; 00218 } 00219 00220 // enableMonitorDaemon switch 00221 00222 enableMonitorDaemon_ = ps.getUntrackedParameter<bool>("enableMonitorDaemon", false); 00223 00224 if ( verbose_ ) { 00225 if ( enableMonitorDaemon_ ) { 00226 cout << " enableMonitorDaemon switch is ON" << endl; 00227 } else { 00228 cout << " enableMonitorDaemon switch is OFF" << endl; 00229 } 00230 } 00231 00232 // prefixME path 00233 00234 prefixME_ = ps.getUntrackedParameter<string>("prefixME", ""); 00235 00236 if ( verbose_ ) { 00237 cout << " prefixME path is '" << prefixME_ << "'" << endl; 00238 } 00239 00240 // enableCleanup switch 00241 00242 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false); 00243 00244 if ( verbose_ ) { 00245 if ( enableCleanup_ ) { 00246 cout << " enableCleanup switch is ON" << endl; 00247 } else { 00248 cout << " enableCleanup switch is OFF" << endl; 00249 } 00250 } 00251 00252 // enableUpdate switch 00253 00254 enableUpdate_ = ps.getUntrackedParameter<bool>("enableUpdate", false); 00255 00256 if ( verbose_ ) { 00257 if ( enableUpdate_ ) { 00258 cout << " enableUpdate switch is ON" << endl; 00259 } else { 00260 cout << " enableUpdate switch is OFF" << endl; 00261 } 00262 } 00263 00264 // DQM Client name 00265 00266 clientName_ = ps.getUntrackedParameter<string>("clientName", "EcalBarrelMonitorClient"); 00267 00268 if ( enableMonitorDaemon_ ) { 00269 00270 // DQM Collector hostname 00271 00272 hostName_ = ps.getUntrackedParameter<string>("hostName", "localhost"); 00273 00274 // DQM Collector port 00275 00276 hostPort_ = ps.getUntrackedParameter<int>("hostPort", 9090); 00277 00278 if ( verbose_ ) { 00279 cout << " Client '" << clientName_ << "' " << endl 00280 << " Collector on host '" << hostName_ << "'" 00281 << " on port '" << hostPort_ << "'" << endl; 00282 } 00283 00284 } 00285 00286 // vector of selected Super Modules (Defaults to all 36). 00287 00288 superModules_.reserve(36); 00289 for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i); 00290 00291 superModules_ = ps.getUntrackedParameter<vector<int> >("superModules", superModules_); 00292 00293 if ( verbose_ ) { 00294 cout << " Selected SMs:" << endl; 00295 for ( unsigned int i = 0; i < superModules_.size(); i++ ) { 00296 cout << " " << setw(2) << setfill('0') << superModules_[i]; 00297 } 00298 cout << endl; 00299 } 00300 00301 // vector of enabled Clients (defaults) 00302 00303 enabledClients_.push_back("Integrity"); 00304 enabledClients_.push_back("StatusFlags"); 00305 enabledClients_.push_back("PedestalOnline"); 00306 enabledClients_.push_back("Summary"); 00307 00308 enabledClients_ = ps.getUntrackedParameter<vector<string> >("enabledClients", enabledClients_); 00309 00310 if ( verbose_ ) { 00311 cout << " Enabled Clients:" << endl; 00312 for ( unsigned int i = 0; i < enabledClients_.size(); i++ ) { 00313 cout << " " << enabledClients_[i]; 00314 } 00315 cout << endl; 00316 } 00317 00318 // global ROOT style 00319 00320 gStyle->Reset("Default"); 00321 00322 gStyle->SetCanvasColor(10); 00323 gStyle->SetPadColor(10); 00324 gStyle->SetFillColor(10); 00325 gStyle->SetStatColor(10); 00326 gStyle->SetTitleFillColor(10); 00327 00328 TGaxis::SetMaxDigits(4); 00329 00330 gStyle->SetOptTitle(kTRUE); 00331 gStyle->SetTitleX(0.01); 00332 gStyle->SetTitleY(1.00); 00333 gStyle->SetTitleW(0.00); 00334 gStyle->SetTitleH(0.05); 00335 gStyle->SetTitleBorderSize(0); 00336 gStyle->SetTitleFont(43, "c"); 00337 gStyle->SetTitleFontSize(11); 00338 00339 gStyle->SetOptStat(kFALSE); 00340 gStyle->SetStatX(0.99); 00341 gStyle->SetStatY(0.99); 00342 gStyle->SetStatW(0.25); 00343 gStyle->SetStatH(0.20); 00344 gStyle->SetStatBorderSize(1); 00345 gStyle->SetStatFont(43); 00346 gStyle->SetStatFontSize(10); 00347 00348 gStyle->SetOptFit(kFALSE); 00349 00350 gROOT->ForceStyle(); 00351 00352 // Define new color palette 00353 00354 for( int i=0; i<6; i++ ) { 00355 TColor* color = gROOT->GetColor( 301+i ); 00356 if ( ! color ) color = new TColor( 301+i, 0, 0, 0, ""); 00357 color->SetRGB( ecdqm::rgb[i][0], ecdqm::rgb[i][1], ecdqm::rgb[i][2] ); 00358 } 00359 00360 for( int i=0; i<10; i++ ) { 00361 TColor* color = gROOT->GetColor( 401+i ); 00362 if ( ! color ) color = new TColor( 401+i, 0, 0, 0, ""); 00363 color->SetRGB( ecdqm::rgb2[i][0], ecdqm::rgb2[i][1], ecdqm::rgb2[i][2] ); 00364 } 00365 00366 for( int i=0; i<10; i++ ) { 00367 TColor* color = gROOT->GetColor( 501+i ); 00368 if ( ! color ) color = new TColor( 501+i, 0, 0, 0, ""); 00369 color->SetRGB( ecdqm::rgb2[i][1], 0, 0 ); 00370 } 00371 00372 // set runTypes (use resize() on purpose!) 00373 00374 runTypes_.resize(30); 00375 for ( unsigned int i = 0; i < runTypes_.size(); i++ ) runTypes_[i] = "UNKNOWN"; 00376 00377 runTypes_[EcalDCCHeaderBlock::COSMIC] = "COSMIC"; 00378 runTypes_[EcalDCCHeaderBlock::BEAMH4] = "BEAM"; 00379 runTypes_[EcalDCCHeaderBlock::BEAMH2] = "BEAM"; 00380 runTypes_[EcalDCCHeaderBlock::MTCC] = "PHYSICS"; 00381 runTypes_[EcalDCCHeaderBlock::LASER_STD] = "LASER"; 00382 runTypes_[EcalDCCHeaderBlock::LED_STD] = "LED"; 00383 runTypes_[EcalDCCHeaderBlock::TESTPULSE_MGPA] = "TEST_PULSE"; 00384 runTypes_[EcalDCCHeaderBlock::PEDESTAL_STD] = "PEDESTAL"; 00385 runTypes_[EcalDCCHeaderBlock::PEDESTAL_OFFSET_SCAN] = "PEDESTAL-OFFSET"; 00386 00387 runTypes_[EcalDCCHeaderBlock::COSMICS_GLOBAL] = "COSMIC"; 00388 runTypes_[EcalDCCHeaderBlock::PHYSICS_GLOBAL] = "PHYSICS"; 00389 runTypes_[EcalDCCHeaderBlock::HALO_GLOBAL] = "HALO"; 00390 runTypes_[EcalDCCHeaderBlock::COSMICS_LOCAL] = "COSMIC"; 00391 runTypes_[EcalDCCHeaderBlock::PHYSICS_LOCAL] = "PHYSICS"; 00392 runTypes_[EcalDCCHeaderBlock::HALO_LOCAL] = "HALO"; 00393 00394 runTypes_[EcalDCCHeaderBlock::LASER_GAP] = "LASER"; 00395 runTypes_[EcalDCCHeaderBlock::LED_GAP] = "LED"; 00396 runTypes_[EcalDCCHeaderBlock::TESTPULSE_GAP] = "TEST_PULSE"; 00397 runTypes_[EcalDCCHeaderBlock::PEDESTAL_GAP] = "PEDESTAL"; 00398 00399 runTypes_[EcalDCCHeaderBlock::CALIB_LOCAL] = "CALIB"; 00400 00401 // clients' constructors 00402 00403 clients_.reserve(12); 00404 clientsNames_.reserve(12); 00405 00406 if ( find(enabledClients_.begin(), enabledClients_.end(), "Integrity" ) != enabledClients_.end() ) { 00407 00408 clients_.push_back( new EBIntegrityClient(ps) ); 00409 clientsNames_.push_back( "Integrity" ); 00410 00411 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00412 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00413 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00414 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_OFFSET_SCAN )); 00415 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00416 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00417 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00418 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00419 00420 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00421 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00422 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00423 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00424 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00425 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00426 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00427 00428 } 00429 00430 if ( find(enabledClients_.begin(), enabledClients_.end(), "StatusFlags" ) != enabledClients_.end() ) { 00431 00432 clients_.push_back( new EBStatusFlagsClient(ps) ); 00433 clientsNames_.push_back( "StatusFlags" ); 00434 00435 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00436 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00437 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00438 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_OFFSET_SCAN )); 00439 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00440 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00441 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00442 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00443 00444 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00445 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00446 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00447 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00448 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00449 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00450 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00451 00452 } 00453 00454 if ( find(enabledClients_.begin(), enabledClients_.end(), "Occupancy" ) != enabledClients_.end() ) { 00455 00456 clients_.push_back( new EBOccupancyClient(ps) ); 00457 clientsNames_.push_back( "Occupancy" ); 00458 00459 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00460 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00461 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00462 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_OFFSET_SCAN )); 00463 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00464 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00465 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00466 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00467 00468 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00469 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00470 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00471 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00472 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00473 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00474 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00475 00476 } 00477 00478 if ( find(enabledClients_.begin(), enabledClients_.end(), "Cosmic" ) != enabledClients_.end() ) { 00479 00480 clients_.push_back( new EBCosmicClient(ps) ); 00481 clientsNames_.push_back( "Cosmic" ); 00482 00483 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00484 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00485 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00486 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00487 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00488 00489 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00490 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00491 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00492 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00493 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00494 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00495 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00496 00497 } 00498 00499 if ( find(enabledClients_.begin(), enabledClients_.end(), "Laser" ) != enabledClients_.end() ) { 00500 00501 clients_.push_back( new EBLaserClient(ps) ); 00502 clientsNames_.push_back( "Laser" ); 00503 00504 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00505 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00506 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00507 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00508 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00509 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00510 00511 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00512 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00513 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00514 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00515 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00516 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00517 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00518 00519 } 00520 00521 if ( find(enabledClients_.begin(), enabledClients_.end(), "Pedestal" ) != enabledClients_.end() ) { 00522 00523 clients_.push_back( new EBPedestalClient(ps) ); 00524 clientsNames_.push_back( "Pedestal" ); 00525 00526 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00527 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00528 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00529 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00530 00531 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00532 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00533 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00534 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00535 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00536 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00537 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00538 00539 } 00540 00541 if ( find(enabledClients_.begin(), enabledClients_.end(), "PedestalOnline" ) != enabledClients_.end() ) { 00542 00543 clients_.push_back( new EBPedestalOnlineClient(ps) ); 00544 clientsNames_.push_back( "PedestalOnline" ); 00545 00546 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00547 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00548 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00549 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00550 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00551 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00552 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00553 00554 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00555 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00556 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00557 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00558 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00559 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00560 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00561 00562 } 00563 00564 if ( find(enabledClients_.begin(), enabledClients_.end(), "TestPulse" ) != enabledClients_.end() ) { 00565 00566 clients_.push_back( new EBTestPulseClient(ps) ); 00567 clientsNames_.push_back( "TestPulse" ); 00568 00569 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00570 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_STD )); 00571 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_STD )); 00572 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_MGPA )); 00573 00574 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00575 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00576 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00577 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00578 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::LASER_GAP )); 00579 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::TESTPULSE_GAP )); 00580 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PEDESTAL_GAP )); 00581 00582 } 00583 00584 if ( find(enabledClients_.begin(), enabledClients_.end(), "BeamCalo" ) != enabledClients_.end() ) { 00585 00586 clients_.push_back( new EBBeamCaloClient(ps) ); 00587 clientsNames_.push_back( "BeamCalo" ); 00588 00589 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00590 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00591 00592 } 00593 00594 if ( find(enabledClients_.begin(), enabledClients_.end(), "BeamHodo" ) != enabledClients_.end() ) { 00595 00596 clients_.push_back( new EBBeamHodoClient(ps) ); 00597 clientsNames_.push_back( "BeamHodo" ); 00598 00599 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00600 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00601 00602 } 00603 00604 if ( find(enabledClients_.begin(), enabledClients_.end(), "TriggerTower" ) != enabledClients_.end() ) { 00605 00606 clients_.push_back( new EBTriggerTowerClient(ps) ); 00607 clientsNames_.push_back( "TriggerTower" ); 00608 00609 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00610 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00611 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00612 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00613 00614 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00615 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00616 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00617 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00618 00619 } 00620 00621 if ( find(enabledClients_.begin(), enabledClients_.end(), "Cluster" ) != enabledClients_.end() ) { 00622 00623 clients_.push_back( new EBClusterClient(ps) ); 00624 clientsNames_.push_back( "Cluster" ); 00625 00626 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00627 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH4 )); 00628 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::BEAMH2 )); 00629 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00630 00631 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00632 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00633 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00634 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00635 00636 } 00637 00638 if ( find(enabledClients_.begin(), enabledClients_.end(), "Timing" ) != enabledClients_.end() ) { 00639 00640 clients_.push_back( new EBTimingClient(ps) ); 00641 clientsNames_.push_back( "Timing" ); 00642 00643 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMIC )); 00644 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::MTCC )); 00645 00646 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_GLOBAL )); 00647 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_GLOBAL )); 00648 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::COSMICS_LOCAL )); 00649 clientsRuns_.insert(pair<EBClient*,int>( clients_.back(), EcalDCCHeaderBlock::PHYSICS_LOCAL )); 00650 00651 } 00652 00653 // define status bits 00654 00655 clientsStatus_.insert(pair<string,int>( "Integrity", 0 )); 00656 clientsStatus_.insert(pair<string,int>( "Cosmic", 1 )); 00657 clientsStatus_.insert(pair<string,int>( "Laser", 2 )); 00658 clientsStatus_.insert(pair<string,int>( "Pedestal", 3 )); 00659 clientsStatus_.insert(pair<string,int>( "PedestalOnline", 4 )); 00660 clientsStatus_.insert(pair<string,int>( "TestPulse", 5 )); 00661 clientsStatus_.insert(pair<string,int>( "BeamCalo", 6 )); 00662 clientsStatus_.insert(pair<string,int>( "BeamHodo", 7 )); 00663 clientsStatus_.insert(pair<string,int>( "TriggerTower", 8 )); 00664 clientsStatus_.insert(pair<string,int>( "Cluster", 9 )); 00665 clientsStatus_.insert(pair<string,int>( "Timing", 10 )); 00666 clientsStatus_.insert(pair<string,int>( "Led", 11 )); 00667 clientsStatus_.insert(pair<string,int>( "StatusFlags", 12 )); 00668 clientsStatus_.insert(pair<string,int>( "Occupancy", 13 )); 00669 00670 if ( find(enabledClients_.begin(), enabledClients_.end(), "Summary" ) != enabledClients_.end() ) { 00671 00672 summaryClient_ = new EBSummaryClient(ps); 00673 00674 } 00675 00676 if ( summaryClient_ ) summaryClient_->setFriends(clients_); 00677 00678 if ( verbose_ ) cout << endl; 00679 00680 }
EcalBarrelMonitorClient::~EcalBarrelMonitorClient | ( | ) |
Destructor.
Definition at line 682 of file EcalBarrelMonitorClient.cc.
References clients_, GenMuonPlsPt100GeV_cfg::cout, enableMonitorDaemon_, lat::endl(), i, mui_, summaryClient_, and verbose_.
00682 { 00683 00684 if ( verbose_ ) cout << "Exit ..." << endl; 00685 00686 for ( unsigned int i=0; i<clients_.size(); i++ ) { 00687 delete clients_[i]; 00688 } 00689 00690 if ( summaryClient_ ) delete summaryClient_; 00691 00692 if ( enableMonitorDaemon_ ) delete mui_; 00693 00694 }
void EcalBarrelMonitorClient::analyze | ( | const edm::Event & | e, | |
const edm::EventSetup & | c | |||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 1679 of file EcalBarrelMonitorClient.cc.
References analyze(), edm::EventID::event(), evt_, edm::Event::id(), jevt_, prescaleFactor_, edm::EventID::run(), and run_.
01679 { 01680 01681 run_ = e.id().run(); 01682 evt_ = e.id().event(); 01683 01684 if ( prescaleFactor_ > 0 ) { 01685 if ( jevt_ % prescaleFactor_ == 0 ) this->analyze(); 01686 } 01687 01688 }
Analyze.
Definition at line 1409 of file EcalBarrelMonitorClient.cc.
References EBSummaryClient::analyze(), EcalDCCHeaderBlock::BEAMH2, EcalDCCHeaderBlock::BEAMH4, begin_run_, beginRun(), clients_, clientsRuns_, cloneME_, EcalDCCHeaderBlock::COSMIC, EcalDCCHeaderBlock::COSMICS_GLOBAL, EcalDCCHeaderBlock::COSMICS_LOCAL, GenMuonPlsPt100GeV_cfg::cout, current_time_, dbUpdateTime_, debug_, DQMOldReceiver::doMonitoring(), dqmStore_, enableMonitorDaemon_, enableUpdate_, end_run_, lat::endl(), endRun(), evt_, evtType_, flush(), forced_status_, forced_update_, DQMStore::get(), getRunType(), h_, htmlOutput(), htmlUpdateTime_, i, ievt_, inputFile_, int, j, jevt_, last_run_, last_time_db_, last_time_html_, location_, me, mergeRuns_, mui_, NULL, EcalDCCHeaderBlock::PHYSICS_GLOBAL, EcalDCCHeaderBlock::PHYSICS_LOCAL, prefixME_, prescaleFactor_, run_, runType_, runTypes_, s, status_, summaryClient_, update, MonitorElement::valueString(), verbose_, and writeDb().
Referenced by analyze(), endJob(), endLuminosityBlock(), and endRun().
01409 { 01410 01411 current_time_ = time(NULL); 01412 01413 ievt_++; 01414 jevt_++; 01415 01416 if ( debug_ ) cout << "EcalBarrelMonitorClient: ievt/jevt = " << ievt_ << "/" << jevt_ << endl; 01417 01418 // update MEs (online mode) 01419 if ( enableUpdate_ ) { 01420 if ( enableMonitorDaemon_ ) mui_->doMonitoring(); 01421 } 01422 01423 MonitorElement* me; 01424 string s; 01425 01426 me = dqmStore_->get(prefixME_ + "/EcalInfo/STATUS"); 01427 if ( me ) { 01428 status_ = "unknown"; 01429 s = me->valueString(); 01430 if ( strcmp(s.c_str(), "i=0") == 0 ) status_ = "begin-of-run"; 01431 if ( strcmp(s.c_str(), "i=1") == 0 ) status_ = "running"; 01432 if ( strcmp(s.c_str(), "i=2") == 0 ) status_ = "end-of-run"; 01433 if ( debug_ ) cout << "Found '" << prefixME_ << "/EcalInfo/STATUS'" << endl; 01434 } 01435 01436 if ( inputFile_.size() != 0 ) { 01437 if ( ievt_ == 1 ) { 01438 if ( verbose_ ) { 01439 cout << endl; 01440 cout << " Reading DQM from file, forcing 'begin-of-run'" << endl; 01441 cout << endl; 01442 } 01443 status_ = "begin-of-run"; 01444 } 01445 } 01446 01447 int ecal_run = -1; 01448 me = dqmStore_->get(prefixME_ + "/EcalInfo/RUN"); 01449 if ( me ) { 01450 s = me->valueString(); 01451 sscanf(s.c_str(), "i=%d", &ecal_run); 01452 if ( debug_ ) cout << "Found '" << prefixME_ << "/EcalInfo/RUN'" << endl; 01453 } 01454 01455 int ecal_evt = -1; 01456 me = dqmStore_->get(prefixME_ + "/EcalInfo/EVT"); 01457 if ( me ) { 01458 s = me->valueString(); 01459 sscanf(s.c_str(), "i=%d", &ecal_evt); 01460 if ( debug_ ) cout << "Found '" << prefixME_ << "/EcalInfo/EVT'" << endl; 01461 } 01462 01463 me = dqmStore_->get(prefixME_ + "/EcalInfo/EVTTYPE"); 01464 h_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, h_ ); 01465 01466 me = dqmStore_->get(prefixME_ + "/EcalInfo/RUNTYPE"); 01467 if ( me ) { 01468 s = me->valueString(); 01469 sscanf(s.c_str(), "i=%d", &evtType_); 01470 if ( runType_ == -1 ) runType_ = evtType_; 01471 if ( debug_ ) cout << "Found '" << prefixME_ << "/EcalInfo/RUNTYPE'" << endl; 01472 } 01473 01474 // if the run number from the Event is less than zero, 01475 // use the run number from the ECAL DCC header 01476 if ( run_ <= 0 ) run_ = ecal_run; 01477 01478 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 01479 if ( ! mergeRuns_ && run_ != last_run_ ) forced_update_ = true; 01480 } 01481 01482 bool update = ( prescaleFactor_ != 1 ) || 01483 ( jevt_ < 10 ) || 01484 ( jevt_ < 100 && jevt_ % 10 == 0 ) || 01485 ( jevt_ < 1000 && jevt_ % 100 == 0 ) || 01486 ( jevt_ % 1000 == 0 ); 01487 01488 if ( update || strcmp(status_.c_str(), "begin-of-run") == 0 || strcmp(status_.c_str(), "end-of-run") == 0 || forced_update_ ) { 01489 01490 if ( verbose_ ) { 01491 cout << " RUN status = \"" << status_ << "\"" << endl; 01492 cout << " CMS run/event number = " << run_ << "/" << evt_ << endl; 01493 cout << " EB run/event number = " << ecal_run << "/" << ecal_evt << endl; 01494 cout << " EB location = " << location_ << endl; 01495 cout << " EB run/event type = " << this->getRunType() << "/" << ( evtType_ == -1 ? "UNKNOWN" : runTypes_[evtType_] ) << flush; 01496 01497 if ( h_ ) { 01498 if ( h_->GetEntries() != 0 ) { 01499 cout << " ( " << flush; 01500 for ( unsigned int i = 0; i < runTypes_.size(); i++ ) { 01501 if ( strcmp(runTypes_[i].c_str(), "UNKNOWN") != 0 && h_->GetBinContent(2+i) != 0 ) { 01502 string s = runTypes_[i]; 01503 transform( s.begin(), s.end(), s.begin(), (int(*)(int))tolower ); 01504 cout << s << " "; 01505 } 01506 } 01507 cout << ")" << flush; 01508 } 01509 } 01510 cout << endl; 01511 } 01512 01513 } 01514 01515 if ( strcmp(status_.c_str(), "begin-of-run") == 0 ) { 01516 01517 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 01518 01519 if ( ! begin_run_ ) { 01520 01521 forced_status_ = false; 01522 this->beginRun(); 01523 01524 } 01525 01526 } 01527 01528 } 01529 01530 if ( strcmp(status_.c_str(), "begin-of-run") == 0 || strcmp(status_.c_str(), "running") == 0 || strcmp(status_.c_str(), "end-of-run") == 0 ) { 01531 01532 if ( begin_run_ && ! end_run_ ) { 01533 01534 bool update = ( prescaleFactor_ != 1 || jevt_ < 3 || jevt_ % 1000 == 0 ); 01535 01536 if ( update || strcmp(status_.c_str(), "begin-of-run") == 0 || strcmp(status_.c_str(), "end-of-run") == 0 || forced_update_ ) { 01537 01538 for ( int i=0; i<int(clients_.size()); i++ ) { 01539 bool done = false; 01540 for ( multimap<EBClient*,int>::iterator j = clientsRuns_.lower_bound(clients_[i]); j != clientsRuns_.upper_bound(clients_[i]); j++ ) { 01541 if ( runType_ != -1 && runType_ == (*j).second && !done ) { 01542 done = true; 01543 clients_[i]->analyze(); 01544 } 01545 } 01546 } 01547 01548 if ( summaryClient_ ) summaryClient_->analyze(); 01549 01550 } 01551 01552 forced_update_ = false; 01553 01554 if ( htmlUpdateTime_ > 0 ) { 01555 if ( (current_time_ - last_time_html_) > 60 * htmlUpdateTime_ ) { 01556 last_time_html_ = current_time_; 01557 this->htmlOutput( true ); 01558 } 01559 } 01560 01561 if ( dbUpdateTime_ > 0 ) { 01562 if ( (current_time_ - last_time_db_) > 60 * dbUpdateTime_ ) { 01563 if ( runType_ == EcalDCCHeaderBlock::COSMIC || 01564 runType_ == EcalDCCHeaderBlock::COSMICS_GLOBAL || 01565 runType_ == EcalDCCHeaderBlock::PHYSICS_GLOBAL || 01566 runType_ == EcalDCCHeaderBlock::COSMICS_LOCAL || 01567 runType_ == EcalDCCHeaderBlock::PHYSICS_LOCAL || 01568 runType_ == EcalDCCHeaderBlock::BEAMH2 || 01569 runType_ == EcalDCCHeaderBlock::BEAMH4 ) this->writeDb(false); 01570 last_time_db_ = current_time_; 01571 } 01572 } 01573 01574 } 01575 01576 } 01577 01578 if ( strcmp(status_.c_str(), "end-of-run") == 0 ) { 01579 01580 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 01581 01582 if ( begin_run_ && ! end_run_ ) { 01583 01584 forced_status_ = false; 01585 this->endRun(); 01586 01587 } 01588 01589 } 01590 01591 } 01592 01593 // BEGIN: run-time fixes for missing state transitions 01594 01595 // run number transition 01596 01597 if ( strcmp(status_.c_str(), "running") == 0 ) { 01598 01599 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 01600 01601 if ( ! mergeRuns_ ) { 01602 01603 int new_run_ = run_; 01604 int old_run_ = last_run_; 01605 01606 if ( new_run_ != old_run_ ) { 01607 01608 if ( begin_run_ && ! end_run_ ) { 01609 01610 if ( verbose_ ) { 01611 cout << endl; 01612 cout << " Old run has finished, issuing endRun() ... " << endl; 01613 cout << endl; 01614 } 01615 01616 // end old_run_ 01617 run_ = old_run_; 01618 01619 forced_status_ = false; 01620 this->endRun(); 01621 01622 } 01623 01624 if ( ! begin_run_ ) { 01625 01626 if ( verbose_ ) { 01627 cout << endl; 01628 cout << " New run has started, issuing beginRun() ... " << endl; 01629 cout << endl; 01630 } 01631 01632 // start new_run_ 01633 run_ = new_run_; 01634 01635 forced_status_ = false; 01636 this->beginRun(); 01637 01638 } 01639 01640 } 01641 01642 } 01643 01644 } 01645 01646 } 01647 01648 // 'running' state without a previous 'begin-of-run' state 01649 01650 if ( strcmp(status_.c_str(), "running") == 0 ) { 01651 01652 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 01653 01654 if ( ! forced_status_ ) { 01655 01656 if ( ! begin_run_ ) { 01657 01658 if ( verbose_ ) { 01659 cout << endl; 01660 cout << "Forcing beginRun() ... NOW !" << endl; 01661 cout << endl; 01662 } 01663 01664 forced_status_ = true; 01665 this->beginRun(); 01666 01667 } 01668 01669 } 01670 01671 } 01672 01673 } 01674 01675 // END: run-time fixes for missing state transitions 01676 01677 }
void EcalBarrelMonitorClient::beginJob | ( | const edm::EventSetup & | c | ) | [virtual] |
BeginJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 696 of file EcalBarrelMonitorClient.cc.
References begin_run_, EBSummaryClient::beginJob(), clientName_, clients_, GenMuonPlsPt100GeV_cfg::cout, current_time_, debug_, dqmStore_, enableMonitorDaemon_, end_run_, lat::endl(), evt_, evtType_, forced_status_, forced_update_, DQMOldReceiver::getBEInterface(), h_, hostName_, hostPort_, i, ievt_, Numbers::initGeometry(), inputFile_, jevt_, last_run_, last_time_db_, last_time_html_, last_time_update_, mui_, NULL, DQMStore::open(), run_, runType_, status_, subrun_, summaryClient_, and verbose_.
00696 { 00697 00698 begin_run_ = false; 00699 end_run_ = false; 00700 00701 forced_status_ = false; 00702 forced_update_ = false; 00703 00704 h_ = 0; 00705 00706 status_ = "unknown"; 00707 00708 run_ = -1; 00709 evt_ = -1; 00710 00711 runType_ = -1; 00712 evtType_ = -1; 00713 00714 last_run_ = -1; 00715 00716 subrun_ = -1; 00717 00718 if ( debug_ ) cout << "EcalBarrelMonitorClient: beginJob" << endl; 00719 00720 ievt_ = 0; 00721 jevt_ = 0; 00722 00723 current_time_ = time(NULL); 00724 last_time_update_ = current_time_; 00725 last_time_db_ = current_time_; 00726 last_time_html_ = current_time_; 00727 00728 if ( enableMonitorDaemon_ ) { 00729 00730 // start DQM user interface instance 00731 // will attempt to reconnect upon connection problems (w/ a 5-sec delay) 00732 00733 mui_ = new DQMOldReceiver(hostName_, hostPort_, clientName_, 5); 00734 dqmStore_ = mui_->getBEInterface(); 00735 00736 } else { 00737 00738 // get hold of back-end interface 00739 00740 mui_ = 0; 00741 dqmStore_ = Service<DQMStore>().operator->(); 00742 00743 } 00744 00745 if ( ! enableMonitorDaemon_ ) { 00746 if ( inputFile_.size() != 0 ) { 00747 if ( dqmStore_ ) { 00748 dqmStore_->open(inputFile_); 00749 } 00750 } 00751 } 00752 00753 for ( unsigned int i=0; i<clients_.size(); i++ ) { 00754 clients_[i]->beginJob(dqmStore_); 00755 } 00756 00757 if ( summaryClient_ ) summaryClient_->beginJob(dqmStore_); 00758 00759 Numbers::initGeometry(c, verbose_); 00760 00761 }
void EcalBarrelMonitorClient::beginLuminosityBlock | ( | const edm::LuminosityBlock & | l, | |
const edm::EventSetup & | c | |||
) | [virtual] |
BeginLumiBlock.
Reimplemented from edm::EDAnalyzer.
Definition at line 927 of file EcalBarrelMonitorClient.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), edm::LuminosityBlock::id(), edm::LuminosityBlockID::run(), and verbose_.
00927 { 00928 00929 if ( verbose_ ) { 00930 cout << endl; 00931 cout << "Standard beginLuminosityBlock() for run " << l.id().run() << endl; 00932 cout << endl; 00933 } 00934 00935 }
void EcalBarrelMonitorClient::beginRun | ( | const edm::Run & | r, | |
const edm::EventSetup & | c | |||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 798 of file EcalBarrelMonitorClient.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), evt_, edm::Run::id(), jevt_, edm::RunID::run(), run_, and verbose_.
00798 { 00799 00800 if ( verbose_ ) { 00801 cout << endl; 00802 cout << "Standard beginRun() for run " << r.id().run() << endl; 00803 cout << endl; 00804 } 00805 00806 run_ = r.id().run(); 00807 evt_ = 0; 00808 00809 jevt_ = 0; 00810 00811 }
BeginRun.
Definition at line 763 of file EcalBarrelMonitorClient.cc.
References begin_run_, EBSummaryClient::beginRun(), beginRunDb(), clients_, clientsRuns_, GenMuonPlsPt100GeV_cfg::cout, current_time_, debug_, end_run_, lat::endl(), i, int, j, jevt_, last_run_, last_time_db_, last_time_html_, last_time_update_, NULL, run_, runType_, setup(), and summaryClient_.
Referenced by analyze().
00763 { 00764 00765 begin_run_ = true; 00766 end_run_ = false; 00767 00768 last_run_ = run_; 00769 00770 if ( debug_ ) cout << "EcalBarrelMonitorClient: beginRun" << endl; 00771 00772 jevt_ = 0; 00773 00774 current_time_ = time(NULL); 00775 last_time_update_ = current_time_; 00776 last_time_db_ = current_time_; 00777 last_time_html_ = current_time_; 00778 00779 this->setup(); 00780 00781 this->beginRunDb(); 00782 00783 for ( int i=0; i<int(clients_.size()); i++ ) { 00784 clients_[i]->cleanup(); 00785 bool done = false; 00786 for ( multimap<EBClient*,int>::iterator j = clientsRuns_.lower_bound(clients_[i]); j != clientsRuns_.upper_bound(clients_[i]); j++ ) { 00787 if ( runType_ != -1 && runType_ == (*j).second && !done ) { 00788 done = true; 00789 clients_[i]->beginRun(); 00790 } 00791 } 00792 } 00793 00794 if ( summaryClient_ ) summaryClient_->beginRun(); 00795 00796 }
BeginRunDB.
Definition at line 983 of file EcalBarrelMonitorClient.cc.
References TestMuL1L2Filter_cff::cerr, GenMuonPlsPt100GeV_cfg::cout, dbHostName_, dbHostPort_, dbName_, dbPassword_, dbUserName_, debug_, e, lat::endl(), EcalCondDBInterface::fetchRunIOV(), RunTag::getGeneralTag(), LocationDef::getLocation(), RunTag::getLocationDef(), RunIOV::getRunEnd(), RunIOV::getRunNumber(), RunIOV::getRunStart(), RunIOV::getRunTag(), RunTypeDef::getRunType(), RunTag::getRunTypeDef(), i, EcalCondDBInterface::insertRunIOV(), location_, maskFile_, EcalErrorMask::readDB(), EcalErrorMask::readFile(), run_, runiov_, runType_, runTypes_, RunTag::setGeneralTag(), LocationDef::setLocation(), RunTag::setLocationDef(), RunIOV::setRunNumber(), RunIOV::setRunStart(), RunIOV::setRunTag(), RunTypeDef::setRunType(), RunTag::setRunTypeDef(), Tm::setToCurrentGMTime(), Tm::str(), subrun_, and verbose_.
Referenced by beginRun().
00983 { 00984 00985 subrun_ = 0; 00986 00987 EcalCondDBInterface* econn; 00988 00989 econn = 0; 00990 00991 if ( dbName_.size() != 0 ) { 00992 try { 00993 if ( verbose_ ) cout << "Opening DB connection with TNS_ADMIN ..." << endl; 00994 econn = new EcalCondDBInterface(dbName_, dbUserName_, dbPassword_); 00995 if ( verbose_ ) cout << "done." << endl; 00996 } catch (runtime_error &e) { 00997 cerr << e.what() << endl; 00998 if ( dbHostName_.size() != 0 ) { 00999 try { 01000 if ( verbose_ ) cout << "Opening DB connection without TNS_ADMIN ..." << endl; 01001 econn = new EcalCondDBInterface(dbHostName_, dbName_, dbUserName_, dbPassword_, dbHostPort_); 01002 if ( verbose_ ) cout << "done." << endl; 01003 } catch (runtime_error &e) { 01004 cerr << e.what() << endl; 01005 } 01006 } 01007 } 01008 } 01009 01010 // create the objects necessary to identify a dataset 01011 01012 LocationDef locdef; 01013 01014 locdef.setLocation(location_); 01015 01016 RunTypeDef rundef; 01017 01018 rundef.setRunType( this->getRunType() ); 01019 01020 RunTag runtag; 01021 01022 runtag.setLocationDef(locdef); 01023 runtag.setRunTypeDef(rundef); 01024 01025 runtag.setGeneralTag( this->getRunType() ); 01026 01027 // fetch the RunIOV from the DB 01028 01029 bool foundRunIOV = false; 01030 01031 if ( econn ) { 01032 try { 01033 if ( verbose_ ) cout << "Fetching RunIOV ..." << endl; 01034 // runiov_ = econn->fetchRunIOV(&runtag, run_); 01035 runiov_ = econn->fetchRunIOV(location_, run_); 01036 if ( verbose_ ) cout << "done." << endl; 01037 foundRunIOV = true; 01038 } catch (runtime_error &e) { 01039 cerr << e.what() << endl; 01040 foundRunIOV = false; 01041 } 01042 } 01043 01044 // begin - setup the RunIOV (on behalf of the DAQ) 01045 01046 if ( ! foundRunIOV ) { 01047 01048 Tm startRun; 01049 01050 startRun.setToCurrentGMTime(); 01051 01052 runiov_.setRunNumber(run_); 01053 runiov_.setRunStart(startRun); 01054 runiov_.setRunTag(runtag); 01055 01056 if ( econn ) { 01057 try { 01058 if ( verbose_ ) cout << "Inserting RunIOV ..." << endl; 01059 econn->insertRunIOV(&runiov_); 01060 // runiov_ = econn->fetchRunIOV(&runtag, run_); 01061 runiov_ = econn->fetchRunIOV(location_, run_); 01062 if ( verbose_ ) cout << "done." << endl; 01063 } catch (runtime_error &e) { 01064 cerr << e.what() << endl; 01065 try { 01066 if ( verbose_ ) cout << "Fetching RunIOV (again) ..." << endl; 01067 // runiov_ = econn->fetchRunIOV(&runtag, run_); 01068 runiov_ = econn->fetchRunIOV(location_, run_); 01069 if ( verbose_ ) cout << "done." << endl; 01070 foundRunIOV = true; 01071 } catch (runtime_error &e) { 01072 cerr << e.what() << endl; 01073 foundRunIOV = false; 01074 } 01075 } 01076 } 01077 01078 } 01079 01080 // end - setup the RunIOV (on behalf of the DAQ) 01081 01082 if ( verbose_ ) { 01083 cout << endl; 01084 cout << "=============RunIOV:" << endl; 01085 cout << "Run Number: " << runiov_.getRunNumber() << endl; 01086 cout << "Run Start: " << runiov_.getRunStart().str() << endl; 01087 cout << "Run End: " << runiov_.getRunEnd().str() << endl; 01088 cout << "====================" << endl; 01089 cout << endl; 01090 cout << "=============RunTag:" << endl; 01091 cout << "GeneralTag: " << runiov_.getRunTag().getGeneralTag() << endl; 01092 cout << "Location: " << runiov_.getRunTag().getLocationDef().getLocation() << endl; 01093 cout << "Run Type: " << runiov_.getRunTag().getRunTypeDef().getRunType() << endl; 01094 cout << "====================" << endl; 01095 cout << endl; 01096 } 01097 01098 string rt = runiov_.getRunTag().getRunTypeDef().getRunType(); 01099 if ( strcmp(rt.c_str(), "UNKNOWN") == 0 ) { 01100 runType_ = -1; 01101 } else { 01102 for ( unsigned int i = 0; i < runTypes_.size(); i++ ) { 01103 if ( strcmp(rt.c_str(), runTypes_[i].c_str()) == 0 ) { 01104 if ( runType_ != int(i) ) { 01105 if ( verbose_ ) { 01106 cout << endl; 01107 cout << "Fixing Run Type to: " << runTypes_[i] << endl; 01108 cout << endl; 01109 } 01110 runType_ = i; 01111 } 01112 break; 01113 } 01114 } 01115 } 01116 01117 if ( maskFile_.size() != 0 ) { 01118 try { 01119 if ( verbose_ ) cout << "Fetching masked channels from file ..." << endl; 01120 EcalErrorMask::readFile(maskFile_, debug_); 01121 if ( verbose_ ) cout << "done." << endl; 01122 } catch (runtime_error &e) { 01123 cerr << e.what() << endl; 01124 } 01125 } else { 01126 if ( econn ) { 01127 try { 01128 if ( verbose_ ) cout << "Fetching masked channels from DB ..." << endl; 01129 EcalErrorMask::readDB(econn, &runiov_); 01130 if ( verbose_ ) cout << "done." << endl; 01131 } catch (runtime_error &e) { 01132 cerr << e.what() << endl; 01133 } 01134 } 01135 } 01136 01137 cout << endl; 01138 01139 if ( econn ) { 01140 try { 01141 if ( verbose_ ) cout << "Closing DB connection ..." << endl; 01142 delete econn; 01143 econn = 0; 01144 if ( verbose_ ) cout << "done." << endl; 01145 } catch (runtime_error &e) { 01146 cerr << e.what() << endl; 01147 } 01148 } 01149 01150 if ( verbose_ ) cout << endl; 01151 01152 }
Cleanup.
Definition at line 971 of file EcalBarrelMonitorClient.cc.
References cloneME_, enableCleanup_, and h_.
Referenced by endJob(), and endRun().
00971 { 00972 00973 if ( ! enableCleanup_ ) return; 00974 00975 if ( cloneME_ ) { 00976 if ( h_ ) delete h_; 00977 } 00978 00979 h_ = 0; 00980 00981 }
void EcalBarrelMonitorClient::defaultWebPage | ( | xgi::Input * | in, | |
xgi::Output * | out | |||
) | [virtual] |
XDAQ web page.
Reimplemented from evf::ModuleWeb.
Definition at line 1806 of file EcalBarrelMonitorClient.cc.
References TestMuL1L2Filter_cff::cerr, clients_, clientsNames_, e, lat::endl(), exception, RunTag::getGeneralTag(), MonRunTag::getGeneralTag(), LocationDef::getLocation(), RunTag::getLocationDef(), MonVersionDef::getMonitoringVersion(), MonRunIOV::getMonRunTag(), MonRunTag::getMonVersionDef(), RunIOV::getRunEnd(), RunIOV::getRunNumber(), RunIOV::getRunStart(), RunIOV::getRunTag(), RunTypeDef::getRunType(), getRunType(), RunTag::getRunTypeDef(), MonRunIOV::getSubRunEnd(), MonRunIOV::getSubRunNumber(), MonRunIOV::getSubRunStart(), h3, h_, i, ievt_, iggi_31X_cfg::input, int, j, moniov_, name, path(), run_, runiov_, runTypes_, and Tm::str().
01806 { 01807 01808 string path; 01809 string mname; 01810 01811 static bool autorefresh_ = false; 01812 01813 try { 01814 01815 cgicc::Cgicc cgi(in); 01816 01817 if ( xgi::Utils::hasFormElement(cgi,"autorefresh") ) { 01818 autorefresh_ = xgi::Utils::getFormElement(cgi, "autorefresh")->getIntegerValue() != 0; 01819 } 01820 01821 if ( xgi::Utils::hasFormElement(cgi,"module") ) { 01822 mname = xgi::Utils::getFormElement(cgi, "module")->getValue(); 01823 } 01824 01825 cgicc::CgiEnvironment cgie(in); 01826 path = cgie.getPathInfo() + "?" + cgie.getQueryString(); 01827 01828 } catch (exception &e) { 01829 01830 cerr << "Standard C++ exception : " << e.what() << endl; 01831 01832 } 01833 01834 *out << cgicc::HTMLDoctype(cgicc::HTMLDoctype::eStrict) << endl; 01835 *out << cgicc::html().set("lang", "en").set("dir","ltr") << endl; 01836 01837 *out << "<html>" << endl; 01838 01839 *out << "<head>" << endl; 01840 01841 *out << "<title>" << typeid(EcalBarrelMonitorClient).name() 01842 << " MAIN</title>" << endl; 01843 01844 if ( autorefresh_ ) { 01845 *out << "<meta https-equiv=\"refresh\" content=\"3\">" << endl; 01846 } 01847 01848 *out << "</head>" << endl; 01849 01850 *out << "<body>" << endl; 01851 01852 *out << cgicc::form().set("method","GET").set("action", path ) 01853 << endl; 01854 *out << cgicc::input().set("type","hidden").set("name","module").set("value", mname) 01855 << endl; 01856 *out << cgicc::input().set("type","hidden").set("name","autorefresh").set("value", autorefresh_?"0":"1") 01857 << endl; 01858 *out << cgicc::input().set("type","submit").set("value",autorefresh_?"Toggle AutoRefresh OFF":"Toggle AutoRefresh ON") 01859 << endl; 01860 *out << cgicc::form() << endl; 01861 01862 *out << cgicc::h3( "EcalBarrelMonitorClient Status" ).set( "style", "font-family:arial" ) << endl; 01863 01864 *out << "<table style=\"font-family: arial\"><tr><td>" << endl; 01865 01866 *out << "<p style=\"font-family: arial\">" 01867 << "<table border=1>" 01868 << "<tr><th>Cycle</th><td align=right>" << ievt_; 01869 int nevt = 0; 01870 if ( h_ != 0 ) nevt = int( h_->GetEntries()); 01871 *out << "<tr><th>Event</th><td align=right>" << nevt 01872 << "</td><tr><th>Run</th><td align=right>" << run_ 01873 << "</td><tr><th>Run Type</th><td align=right> " << this->getRunType() 01874 << "</td></table></p>" << endl; 01875 01876 *out << "</td><td>" << endl; 01877 01878 *out << "<p style=\"font-family: arial\">" 01879 << "<table border=1>" 01880 << "<tr><th>Evt Type</th><th>Evt/Run</th><th>Evt Type</th><th>Evt/Run</th>" << endl; 01881 for( unsigned int i = 0, j = 0; i < runTypes_.size(); i++ ) { 01882 if ( strcmp(runTypes_[i].c_str(), "UNKNOWN") != 0 ) { 01883 if ( j++%2 == 0 ) *out << "<tr>"; 01884 nevt = 0; 01885 if ( h_ != 0 ) nevt = int( h_->GetBinContent(i+1) ); 01886 *out << "<td>" << runTypes_[i] 01887 << "</td><td align=right>" << nevt << endl; 01888 } 01889 } 01890 *out << "</td></table></p>" << endl; 01891 01892 *out << "</td><tr><td colspan=2>" << endl; 01893 01894 *out << "<p style=\"font-family: arial\">" 01895 << "<table border=1>" 01896 << "<tr><th>Client</th><th>Cyc/Job</th><th>Cyc/Run</th><th>Client</th><th>Cyc/Job</th><th>Cyc/Run</th>" << endl; 01897 for( unsigned int i = 0; i < clients_.size(); i++ ) { 01898 if ( clients_[i] != 0 ) { 01899 if ( i%2 == 0 ) *out << "<tr>"; 01900 *out << "<td>" << clientsNames_[i] 01901 << "</td><td align=right>" << clients_[i]->getEvtPerJob() 01902 << "</td><td align=right>" << clients_[i]->getEvtPerRun() << endl; 01903 } 01904 } 01905 *out << "</td></table></p>" << endl; 01906 01907 *out << "</td><tr><td>" << endl; 01908 01909 01910 *out << "<p style=\"font-family: arial\">" 01911 << "<table border=1>" 01912 << "<tr><th colspan=2>RunIOV</th>" 01913 << "<tr><td>Run Number</td><td align=right> " << runiov_.getRunNumber() 01914 << "</td><tr><td>Run Start</td><td align=right> " << runiov_.getRunStart().str() 01915 << "</td><tr><td>Run End</td><td align=right> " << runiov_.getRunEnd().str() 01916 << "</td></table></p>" << endl; 01917 01918 *out << "</td><td colsapn=2>" << endl; 01919 01920 *out << "<p style=\"font-family: arial\">" 01921 << "<table border=1>" 01922 << "<tr><th colspan=2>RunTag</th>" 01923 << "<tr><td>GeneralTag</td><td align=right> " << runiov_.getRunTag().getGeneralTag() 01924 << "</td><tr><td>Location</td><td align=right> " << runiov_.getRunTag().getLocationDef().getLocation() 01925 << "</td><tr><td>Run Type</td><td align=right> " << runiov_.getRunTag().getRunTypeDef().getRunType() 01926 << "</td></table></p>" << endl; 01927 01928 *out << "</td><tr><td>" << endl; 01929 01930 *out << "<p style=\"font-family: arial\">" 01931 << "<table border=1>" 01932 << "<tr><th colspan=2>MonRunIOV</th>" 01933 << "<tr><td>SubRun Number</td><td align=right> " << moniov_.getSubRunNumber() 01934 << "</td><tr><td>SubRun Start</td><td align=right> " << moniov_.getSubRunStart().str() 01935 << "</td><tr><td>SubRun End</td><td align=right> " << moniov_.getSubRunEnd().str() 01936 << "</td></table></p>" << endl; 01937 01938 *out << "</td><td colspan=2>" << endl; 01939 01940 *out << "<p style=\"font-family: arial\">" 01941 << "<table border=1>" 01942 << "<tr><th colspan=2>MonRunTag</th>" 01943 << "<tr><td>GeneralTag</td><td align=right> " << moniov_.getMonRunTag().getGeneralTag() 01944 << "</td><tr><td>Monitoring Version</td><td align=right> " << moniov_.getMonRunTag().getMonVersionDef().getMonitoringVersion() 01945 << "</td></table></p>" << endl; 01946 01947 *out << "</td><table>" << endl; 01948 01949 01950 *out << "</body>" << endl; 01951 01952 *out << "</html>" << endl; 01953 01954 }
EndJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 813 of file EcalBarrelMonitorClient.cc.
References analyze(), begin_run_, cleanup(), clients_, GenMuonPlsPt100GeV_cfg::cout, debug_, end_run_, EBSummaryClient::endJob(), lat::endl(), endRun(), forced_status_, forced_update_, i, ievt_, summaryClient_, and verbose_.
00813 { 00814 00815 if ( ! end_run_ ) { 00816 00817 if ( verbose_ ) { 00818 cout << endl; 00819 cout << "Checking last event at endJob() ... " << endl; 00820 cout << endl; 00821 } 00822 00823 forced_update_ = true; 00824 this->analyze(); 00825 00826 if ( begin_run_ && ! end_run_ ) { 00827 00828 if ( verbose_ ) { 00829 cout << endl; 00830 cout << "Forcing endRun() ... " << endl; 00831 cout << endl; 00832 } 00833 00834 forced_status_ = true; 00835 this->analyze(); 00836 this->endRun(); 00837 00838 } 00839 00840 } 00841 00842 if ( debug_ ) cout << "EcalBarrelMonitorClient: endJob, ievt = " << ievt_ << endl; 00843 00844 this->cleanup(); 00845 00846 for ( unsigned int i=0; i<clients_.size(); i++ ) { 00847 clients_[i]->endJob(); 00848 } 00849 00850 if ( summaryClient_ ) summaryClient_->endJob(); 00851 00852 }
void EcalBarrelMonitorClient::endLuminosityBlock | ( | const edm::LuminosityBlock & | l, | |
const edm::EventSetup & | c | |||
) | [virtual] |
EndLumiBlock.
Reimplemented from edm::EDAnalyzer.
Definition at line 937 of file EcalBarrelMonitorClient.cc.
References analyze(), GenMuonPlsPt100GeV_cfg::cout, current_time_, lat::endl(), evt_, forced_update_, edm::LuminosityBlock::id(), last_time_update_, NULL, edm::LuminosityBlockID::run(), run_, runType_, updateTime_, and verbose_.
00937 { 00938 00939 current_time_ = time(NULL); 00940 00941 if ( verbose_ ) { 00942 cout << endl; 00943 cout << "Standard endLuminosityBlock() for run " << l.id().run() << endl; 00944 cout << endl; 00945 } 00946 00947 if ( updateTime_ > 0 ) { 00948 if ( (current_time_ - last_time_update_) < 60 * updateTime_ ) { 00949 return; 00950 } 00951 last_time_update_ = current_time_; 00952 } 00953 00954 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 00955 00956 forced_update_ = true; 00957 this->analyze(); 00958 00959 } 00960 00961 }
void EcalBarrelMonitorClient::endRun | ( | const edm::Run & | r, | |
const edm::EventSetup & | c | |||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 897 of file EcalBarrelMonitorClient.cc.
References analyze(), begin_run_, GenMuonPlsPt100GeV_cfg::cout, end_run_, lat::endl(), endRun(), evt_, forced_status_, forced_update_, edm::Run::id(), mergeRuns_, edm::RunID::run(), run_, runType_, and verbose_.
00897 { 00898 00899 if ( verbose_ ) { 00900 cout << endl; 00901 cout << "Standard endRun() for run " << r.id().run() << endl; 00902 cout << endl; 00903 } 00904 00905 this->analyze(); 00906 00907 if ( run_ != -1 && evt_ != -1 && runType_ != -1 ) { 00908 00909 forced_update_ = true; 00910 this->analyze(); 00911 00912 if ( ! mergeRuns_ ) { 00913 00914 if ( begin_run_ && ! end_run_ ) { 00915 00916 forced_status_ = false; 00917 this->endRun(); 00918 00919 } 00920 00921 } 00922 00923 } 00924 00925 }
EndRun.
Definition at line 854 of file EcalBarrelMonitorClient.cc.
References baseHtmlDir_, begin_run_, cleanup(), clients_, clientsRuns_, GenMuonPlsPt100GeV_cfg::cout, debug_, end_run_, lat::endl(), EBSummaryClient::endRun(), endRunDb(), evt_, evtType_, i, int, j, jevt_, run_, runType_, status_, subrun_, summaryClient_, and writeDb().
Referenced by analyze(), endJob(), and endRun().
00854 { 00855 00856 begin_run_ = false; 00857 end_run_ = true; 00858 00859 if ( debug_ ) cout << "EcalBarrelMonitorClient: endRun, jevt = " << jevt_ << endl; 00860 00861 if ( baseHtmlDir_.size() != 0 ) this->htmlOutput(); 00862 00863 if ( subrun_ != -1 ) { 00864 00865 this->writeDb(true); 00866 00867 this->endRunDb(); 00868 00869 } 00870 00871 for ( int i=0; i<int(clients_.size()); i++ ) { 00872 bool done = false; 00873 for ( multimap<EBClient*,int>::iterator j = clientsRuns_.lower_bound(clients_[i]); j != clientsRuns_.upper_bound(clients_[i]); j++ ) { 00874 if ( runType_ != -1 && runType_ == (*j).second && !done ) { 00875 done = true; 00876 clients_[i]->endRun(); 00877 } 00878 } 00879 } 00880 00881 if ( summaryClient_ ) summaryClient_->endRun(); 00882 00883 this->cleanup(); 00884 00885 status_ = "unknown"; 00886 00887 run_ = -1; 00888 evt_ = -1; 00889 00890 runType_ = -1; 00891 evtType_ = -1; 00892 00893 subrun_ = -1; 00894 00895 }
EndRunDB.
Definition at line 1318 of file EcalBarrelMonitorClient.cc.
References TestMuL1L2Filter_cff::cerr, GenMuonPlsPt100GeV_cfg::cout, ttbarGen_cfg::dataset, dbHostName_, dbHostPort_, dbName_, dbPassword_, dbUserName_, e, lat::endl(), EcalCondDBInterface::fetchDataSet(), LogicID::getEcalLogicID(), h_, EcalCondDBInterface::insertDataSet(), runiov_, RunDat::setNumEvents(), and verbose_.
Referenced by endRun().
01318 { 01319 01320 EcalCondDBInterface* econn; 01321 01322 econn = 0; 01323 01324 if ( dbName_.size() != 0 ) { 01325 try { 01326 if ( verbose_ ) cout << "Opening DB connection with TNS_ADMIN ..." << endl; 01327 econn = new EcalCondDBInterface(dbName_, dbUserName_, dbPassword_); 01328 if ( verbose_ ) cout << "done." << endl; 01329 } catch (runtime_error &e) { 01330 cerr << e.what() << endl; 01331 if ( dbHostName_.size() != 0 ) { 01332 try { 01333 if ( verbose_ ) cout << "Opening DB connection without TNS_ADMIN ..." << endl; 01334 econn = new EcalCondDBInterface(dbHostName_, dbName_, dbUserName_, dbPassword_, dbHostPort_); 01335 if ( verbose_ ) cout << "done." << endl; 01336 } catch (runtime_error &e) { 01337 cerr << e.what() << endl; 01338 } 01339 } 01340 } 01341 } 01342 01343 EcalLogicID ecid; 01344 RunDat rd; 01345 map<EcalLogicID, RunDat> dataset; 01346 01347 float nevt = -1.; 01348 01349 if ( h_ ) nevt = h_->GetEntries(); 01350 01351 rd.setNumEvents(int(nevt)); 01352 01353 // fetch the RunDat from the DB 01354 01355 bool foundRunDat = false; 01356 01357 if ( econn ) { 01358 try { 01359 if ( verbose_ ) cout << "Fetching RunDat ..." << endl; 01360 econn->fetchDataSet(&dataset, &runiov_); 01361 if ( verbose_ ) cout << "done." << endl; 01362 foundRunDat = true; 01363 } catch (runtime_error &e) { 01364 cerr << e.what() << endl; 01365 foundRunDat = false; 01366 } 01367 } 01368 01369 // begin - setup the RunDat (on behalf of the DAQ) 01370 01371 if ( ! foundRunDat ) { 01372 01373 if ( econn ) { 01374 try { 01375 ecid = LogicID::getEcalLogicID("EB"); 01376 dataset[ecid] = rd; 01377 } catch (runtime_error &e) { 01378 cerr << e.what() << endl; 01379 } 01380 } 01381 01382 if ( econn ) { 01383 try { 01384 if ( verbose_ ) cout << "Inserting RunDat ..." << endl; 01385 econn->insertDataSet(&dataset, &runiov_); 01386 if ( verbose_ ) cout << "done." << endl; 01387 } catch (runtime_error &e) { 01388 cerr << e.what() << endl; 01389 } 01390 } 01391 01392 } 01393 01394 // end - setup the RunDat (on behalf of the DAQ) 01395 01396 if ( econn ) { 01397 try { 01398 if ( verbose_ ) cout << "Closing DB connection ..." << endl; 01399 delete econn; 01400 econn = 0; 01401 if ( verbose_ ) cout << "done." << endl; 01402 } catch (runtime_error &e) { 01403 cerr << e.what() << endl; 01404 } 01405 } 01406 01407 }
const char* EcalBarrelMonitorClient::getRunType | ( | void | ) | [inline] |
Definition at line 102 of file EcalBarrelMonitorClient.h.
References runType_, and runTypes_.
Referenced by analyze(), defaultWebPage(), and htmlOutput().
HtmlOutput.
Definition at line 1706 of file EcalBarrelMonitorClient.cc.
References baseHtmlDir_, clients_, clientsNames_, clientsRuns_, EcalDCCHeaderBlock::COSMIC, EcalDCCHeaderBlock::COSMICS_GLOBAL, EcalDCCHeaderBlock::COSMICS_LOCAL, GenMuonPlsPt100GeV_cfg::cout, lat::endl(), getRunType(), h_, EBSummaryClient::htmlOutput(), i, int, j, EcalDCCHeaderBlock::LASER_GAP, EcalDCCHeaderBlock::LASER_STD, NULL, EcalDCCHeaderBlock::PEDESTAL_GAP, EcalDCCHeaderBlock::PEDESTAL_STD, EcalDCCHeaderBlock::PHYSICS_GLOBAL, EcalDCCHeaderBlock::PHYSICS_LOCAL, run_, runType_, summaryClient_, EcalDCCHeaderBlock::TESTPULSE_GAP, EcalDCCHeaderBlock::TESTPULSE_MGPA, tmp, and verbose_.
Referenced by analyze().
01706 { 01707 01708 time_t start = time(NULL); 01709 01710 if ( verbose_ ) { 01711 cout << endl; 01712 cout << "Preparing EcalBarrelMonitorClient html output ..." << endl; 01713 } 01714 01715 char tmp[10]; 01716 01717 sprintf(tmp, "%09d", run_); 01718 01719 string htmlDir; 01720 if( current ) { 01721 htmlDir = baseHtmlDir_ + "/current/"; 01722 } 01723 else { 01724 htmlDir = baseHtmlDir_ + "/" + tmp + "/"; 01725 } 01726 01727 system(("/bin/mkdir -p " + htmlDir).c_str()); 01728 01729 ofstream htmlFile; 01730 01731 htmlFile.open((htmlDir + "index.html").c_str()); 01732 01733 // html page header 01734 htmlFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << endl; 01735 htmlFile << "<html> " << endl; 01736 htmlFile << "<head> " << endl; 01737 htmlFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << endl; 01738 htmlFile << " https-equiv=\"content-type\"> " << endl; 01739 htmlFile << " <title>Monitor:Executed Tasks index</title> " << endl; 01740 htmlFile << "</head> " << endl; 01741 htmlFile << "<body> " << endl; 01742 htmlFile << "<br> " << endl; 01743 htmlFile << "<h2>Executed tasks for run:   " << endl; 01744 htmlFile << "<span style=\"color: rgb(0, 0, 153);\">" << run_ <<"</span></h2> " << endl; 01745 htmlFile << "<h2>Run Type:   " << endl; 01746 htmlFile << "<span style=\"color: rgb(0, 0, 153);\">" << this->getRunType() <<"</span></h2> " << endl; 01747 htmlFile << "<hr>" << endl; 01748 01749 htmlFile << "<ul>" << endl; 01750 01751 string htmlName; 01752 01753 for ( int i=0; i<int(clients_.size()); i++ ) { 01754 bool done = false; 01755 for ( multimap<EBClient*,int>::iterator j = clientsRuns_.lower_bound(clients_[i]); j != clientsRuns_.upper_bound(clients_[i]); j++ ) { 01756 if ( h_ && runType_ != -1 && runType_ == (*j).second && !done ) { 01757 if ( strcmp(clientsNames_[i].c_str(), "Cosmic") == 0 && runType_ != EcalDCCHeaderBlock::COSMIC && runType_ != EcalDCCHeaderBlock::COSMICS_LOCAL && runType_ != EcalDCCHeaderBlock::COSMICS_GLOBAL && runType_ != EcalDCCHeaderBlock::PHYSICS_GLOBAL && runType_ != EcalDCCHeaderBlock::PHYSICS_LOCAL && h_->GetBinContent(2+EcalDCCHeaderBlock::COSMIC) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::COSMICS_LOCAL) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::COSMICS_GLOBAL) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::PHYSICS_GLOBAL) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::PHYSICS_LOCAL) == 0 ) continue; 01758 if ( strcmp(clientsNames_[i].c_str(), "Laser") == 0 && runType_ != EcalDCCHeaderBlock::LASER_STD && runType_ != EcalDCCHeaderBlock::LASER_GAP && h_->GetBinContent(2+EcalDCCHeaderBlock::LASER_STD) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::LASER_GAP) == 0 ) continue; 01759 if ( strcmp(clientsNames_[i].c_str(), "Pedestal") == 0 && runType_ != EcalDCCHeaderBlock::PEDESTAL_STD && runType_ != EcalDCCHeaderBlock::PEDESTAL_GAP && h_->GetBinContent(2+EcalDCCHeaderBlock::PEDESTAL_STD) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::PEDESTAL_GAP) == 0 ) continue; 01760 if ( strcmp(clientsNames_[i].c_str(), "TestPulse") == 0 && runType_ != EcalDCCHeaderBlock::TESTPULSE_MGPA && runType_ != EcalDCCHeaderBlock::TESTPULSE_GAP && h_->GetBinContent(2+EcalDCCHeaderBlock::TESTPULSE_MGPA) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::TESTPULSE_GAP) == 0 ) continue; 01761 done = true; 01762 htmlName = "EB" + clientsNames_[i] + "Client.html"; 01763 clients_[i]->htmlOutput(run_, htmlDir, htmlName); 01764 htmlFile << "<li><a href=\"" << htmlName << "\">Data " << clientsNames_[i] << "</a></li>" << endl; 01765 } 01766 } 01767 } 01768 01769 if ( summaryClient_ ) { 01770 01771 htmlName = "EBSummaryClient.html"; 01772 summaryClient_->htmlOutput(run_, htmlDir, htmlName); 01773 htmlFile << "<li><a href=\"" << htmlName << "\">Data " << "Summary" << "</a></li>" << endl; 01774 01775 htmlFile << "<br>" << endl; 01776 01777 htmlFile << "<table border=\"0\" cellspacing=\"0\" " << endl; 01778 htmlFile << "cellpadding=\"10\" align=\"center\"> " << endl; 01779 htmlFile << "<tr align=\"center\">" << endl; 01780 01781 htmlFile << "<td><img src=\"EB_global_summary.png\" border=0></td>" << endl; 01782 01783 htmlFile << "</tr>" << endl; 01784 htmlFile << "</table>" << endl; 01785 htmlFile << "<br>" << endl; 01786 01787 } 01788 01789 htmlFile << "</ul>" << endl; 01790 01791 // html page footer 01792 htmlFile << "</body> " << endl; 01793 htmlFile << "</html> " << endl; 01794 01795 htmlFile.close(); 01796 01797 if ( verbose_ ) cout << endl; 01798 01799 if( current ) { 01800 time_t elapsed = time(NULL) - start; 01801 if ( verbose_ ) cout << "==========> htmlOutput Elapsed Time: " << elapsed << endl; 01802 } 01803 01804 }
void EcalBarrelMonitorClient::publish | ( | xdata::InfoSpace * | ) | [inline, virtual] |
SoftReset.
Definition at line 1690 of file EcalBarrelMonitorClient.cc.
References clients_, clientsRuns_, i, int, j, runType_, EBSummaryClient::softReset(), and summaryClient_.
01690 { 01691 01692 for ( int i=0; i<int(clients_.size()); i++ ) { 01693 bool done = false; 01694 for ( multimap<EBClient*,int>::iterator j = clientsRuns_.lower_bound(clients_[i]); j != clientsRuns_.upper_bound(clients_[i]); j++ ) { 01695 if ( runType_ != -1 && runType_ == (*j).second && !done ) { 01696 done = true; 01697 clients_[i]->softReset(flag); 01698 } 01699 } 01700 } 01701 01702 summaryClient_->softReset(flag); 01703 01704 }
WriteDB.
Definition at line 1154 of file EcalBarrelMonitorClient.cc.
References TestMuL1L2Filter_cff::cerr, clients_, clientsNames_, clientsRuns_, clientsStatus_, EcalDCCHeaderBlock::COSMIC, EcalDCCHeaderBlock::COSMICS_GLOBAL, EcalDCCHeaderBlock::COSMICS_LOCAL, GenMuonPlsPt100GeV_cfg::cout, ttbarGen_cfg::dataset, dbHostName_, dbHostPort_, dbName_, dbPassword_, dbTagName_, dbUserName_, e, enableMonitorDaemon_, lat::endl(), LogicID::getEcalLogicID(), MonRunTag::getGeneralTag(), MonVersionDef::getMonitoringVersion(), MonRunIOV::getMonRunTag(), MonRunTag::getMonVersionDef(), RunIOV::getRunStart(), MonRunIOV::getSubRunEnd(), MonRunIOV::getSubRunNumber(), MonRunIOV::getSubRunStart(), h_, i, EcalCondDBInterface::insertDataSet(), int, j, EcalDCCHeaderBlock::LASER_GAP, EcalDCCHeaderBlock::LASER_STD, moniov_, EcalDCCHeaderBlock::PEDESTAL_GAP, EcalDCCHeaderBlock::PEDESTAL_STD, EcalDCCHeaderBlock::PHYSICS_GLOBAL, EcalDCCHeaderBlock::PHYSICS_LOCAL, runiov_, runType_, MonRunTag::setGeneralTag(), MonVersionDef::setMonitoringVersion(), MonRunDat::setMonRunOutcomeDef(), MonRunIOV::setMonRunTag(), MonRunTag::setMonVersionDef(), MonRunDat::setNumEvents(), MonRunIOV::setRunIOV(), MonRunOutcomeDef::setShortDesc(), MonRunIOV::setSubRunNumber(), MonRunIOV::setSubRunStart(), MonRunDat::setTaskList(), MonRunDat::setTaskOutcome(), Tm::setToCurrentGMTime(), StDecayID::status, Tm::str(), subrun_, summaryClient_, EcalDCCHeaderBlock::TESTPULSE_GAP, EcalDCCHeaderBlock::TESTPULSE_MGPA, verbose_, and EBSummaryClient::writeDb().
Referenced by analyze(), and endRun().
01154 { 01155 01156 subrun_++; 01157 01158 EcalCondDBInterface* econn; 01159 01160 econn = 0; 01161 01162 if ( dbName_.size() != 0 ) { 01163 try { 01164 if ( verbose_ ) cout << "Opening DB connection with TNS_ADMIN ..." << endl; 01165 econn = new EcalCondDBInterface(dbName_, dbUserName_, dbPassword_); 01166 if ( verbose_ ) cout << "done." << endl; 01167 } catch (runtime_error &e) { 01168 cerr << e.what() << endl; 01169 if ( dbHostName_.size() != 0 ) { 01170 try { 01171 if ( verbose_ ) cout << "Opening DB connection without TNS_ADMIN ..." << endl; 01172 econn = new EcalCondDBInterface(dbHostName_, dbName_, dbUserName_, dbPassword_, dbHostPort_); 01173 if ( verbose_ ) cout << "done." << endl; 01174 } catch (runtime_error &e) { 01175 cerr << e.what() << endl; 01176 } 01177 } 01178 } 01179 } 01180 01181 MonVersionDef monverdef; 01182 01183 monverdef.setMonitoringVersion("test01"); 01184 01185 MonRunTag montag; 01186 01187 montag.setMonVersionDef(monverdef); 01188 montag.setGeneralTag(dbTagName_); 01189 01190 Tm startSubRun; 01191 01192 startSubRun.setToCurrentGMTime(); 01193 01194 // setup the MonIOV 01195 01196 moniov_.setRunIOV(runiov_); 01197 moniov_.setSubRunNumber(subrun_); 01198 01199 if ( enableMonitorDaemon_ ) { 01200 moniov_.setSubRunStart(startSubRun); 01201 } else { 01202 moniov_.setSubRunStart(runiov_.getRunStart()); 01203 } 01204 01205 moniov_.setMonRunTag(montag); 01206 01207 if ( verbose_ ) { 01208 cout << endl; 01209 cout << "==========MonRunIOV:" << endl; 01210 cout << "SubRun Number: " << moniov_.getSubRunNumber() << endl; 01211 cout << "SubRun Start: " << moniov_.getSubRunStart().str() << endl; 01212 cout << "SubRun End: " << moniov_.getSubRunEnd().str() << endl; 01213 cout << "====================" << endl; 01214 cout << endl; 01215 cout << "==========MonRunTag:" << endl; 01216 cout << "GeneralTag: " << moniov_.getMonRunTag().getGeneralTag() << endl; 01217 cout << "Monitoring Ver: " << moniov_.getMonRunTag().getMonVersionDef().getMonitoringVersion() << endl; 01218 cout << "====================" << endl; 01219 cout << endl; 01220 } 01221 01222 int taskl = 0x0; 01223 int tasko = 0x0; 01224 01225 for ( int i=0; i<int(clients_.size()); i++ ) { 01226 bool done = false; 01227 for ( multimap<EBClient*,int>::iterator j = clientsRuns_.lower_bound(clients_[i]); j != clientsRuns_.upper_bound(clients_[i]); j++ ) { 01228 if ( h_ && runType_ != -1 && runType_ == (*j).second && !done ) { 01229 if ( strcmp(clientsNames_[i].c_str(), "Cosmic") == 0 && runType_ != EcalDCCHeaderBlock::COSMIC && runType_ != EcalDCCHeaderBlock::COSMICS_LOCAL && runType_ != EcalDCCHeaderBlock::COSMICS_GLOBAL && runType_ != EcalDCCHeaderBlock::PHYSICS_GLOBAL && runType_ != EcalDCCHeaderBlock::PHYSICS_LOCAL && h_->GetBinContent(2+EcalDCCHeaderBlock::COSMIC) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::COSMICS_LOCAL) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::COSMICS_GLOBAL) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::PHYSICS_GLOBAL) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::PHYSICS_LOCAL) == 0 ) continue; 01230 if ( strcmp(clientsNames_[i].c_str(), "Laser") == 0 && runType_ != EcalDCCHeaderBlock::LASER_STD && runType_ != EcalDCCHeaderBlock::LASER_GAP && h_->GetBinContent(2+EcalDCCHeaderBlock::LASER_STD) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::LASER_GAP) == 0 ) continue; 01231 if ( strcmp(clientsNames_[i].c_str(), "Pedestal") == 0 && runType_ != EcalDCCHeaderBlock::PEDESTAL_STD && runType_ != EcalDCCHeaderBlock::PEDESTAL_GAP && h_->GetBinContent(2+EcalDCCHeaderBlock::PEDESTAL_STD) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::PEDESTAL_GAP) == 0 ) continue; 01232 if ( strcmp(clientsNames_[i].c_str(), "TestPulse") == 0 && runType_ != EcalDCCHeaderBlock::TESTPULSE_MGPA && runType_ != EcalDCCHeaderBlock::TESTPULSE_GAP && h_->GetBinContent(2+EcalDCCHeaderBlock::TESTPULSE_MGPA) == 0 && h_->GetBinContent(2+EcalDCCHeaderBlock::TESTPULSE_GAP) == 0 ) continue; 01233 done = true; 01234 if ( verbose_ ) { 01235 if ( econn ) { 01236 cout << " Writing " << clientsNames_[i] << " results to DB " << endl; 01237 cout << endl; 01238 } 01239 } 01240 bool status; 01241 if ( clients_[i]->writeDb(econn, &runiov_, &moniov_, status, flag) ) { 01242 taskl |= 0x1 << clientsStatus_[clientsNames_[i]]; 01243 if ( status ) { 01244 tasko |= 0x1 << clientsStatus_[clientsNames_[i]]; 01245 } 01246 } else { 01247 tasko |= 0x1 << clientsStatus_[clientsNames_[i]]; 01248 } 01249 } 01250 } 01251 if ( ((taskl >> clientsStatus_[clientsNames_[i]]) & 0x1) ) { 01252 if ( verbose_ ) { 01253 cout << " Task output for " << clientsNames_[i] << " = " 01254 << ((tasko >> clientsStatus_[clientsNames_[i]]) & 0x1) << endl; 01255 cout << endl; 01256 } 01257 } 01258 } 01259 01260 bool status; 01261 if ( summaryClient_ ) summaryClient_->writeDb(econn, &runiov_, &moniov_, status, flag); 01262 01263 EcalLogicID ecid; 01264 MonRunDat md; 01265 map<EcalLogicID, MonRunDat> dataset; 01266 01267 MonRunOutcomeDef monRunOutcomeDef; 01268 01269 monRunOutcomeDef.setShortDesc("success"); 01270 01271 float nevt = -1.; 01272 01273 if ( h_ ) nevt = h_->GetEntries(); 01274 01275 md.setNumEvents(int(nevt)); 01276 md.setMonRunOutcomeDef(monRunOutcomeDef); 01277 01278 // string fileName = ""; 01279 // md.setRootfileName(fileName); 01280 01281 md.setTaskList(taskl); 01282 md.setTaskOutcome(tasko); 01283 01284 if ( econn ) { 01285 try { 01286 ecid = LogicID::getEcalLogicID("EB"); 01287 dataset[ecid] = md; 01288 } catch (runtime_error &e) { 01289 cerr << e.what() << endl; 01290 } 01291 } 01292 01293 if ( econn ) { 01294 try { 01295 if ( verbose_ ) cout << "Inserting MonRunDat ..." << endl; 01296 econn->insertDataSet(&dataset, &moniov_); 01297 if ( verbose_ ) cout << "done." << endl; 01298 } catch (runtime_error &e) { 01299 cerr << e.what() << endl; 01300 } 01301 } 01302 01303 if ( econn ) { 01304 try { 01305 if ( verbose_ ) cout << "Closing DB connection ..." << endl; 01306 delete econn; 01307 econn = 0; 01308 if ( verbose_ ) cout << "done." << endl; 01309 } catch (runtime_error &e) { 01310 cerr << e.what() << endl; 01311 } 01312 } 01313 01314 cout << endl; 01315 01316 }
std::string EcalBarrelMonitorClient::baseHtmlDir_ [private] |
Definition at line 154 of file EcalBarrelMonitorClient.h.
Referenced by EcalBarrelMonitorClient(), endRun(), and htmlOutput().
bool EcalBarrelMonitorClient::begin_run_ [private] |
Definition at line 185 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), endJob(), and endRun().
std::string EcalBarrelMonitorClient::clientName_ [private] |
Definition at line 120 of file EcalBarrelMonitorClient.h.
Referenced by beginJob(), and EcalBarrelMonitorClient().
std::vector<EBClient*> EcalBarrelMonitorClient::clients_ [private] |
Definition at line 162 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), defaultWebPage(), EcalBarrelMonitorClient(), endJob(), endRun(), htmlOutput(), softReset(), writeDb(), and ~EcalBarrelMonitorClient().
std::vector<std::string> EcalBarrelMonitorClient::clientsNames_ [private] |
Definition at line 163 of file EcalBarrelMonitorClient.h.
Referenced by defaultWebPage(), EcalBarrelMonitorClient(), htmlOutput(), and writeDb().
std::multimap<EBClient*,int> EcalBarrelMonitorClient::clientsRuns_ [private] |
Definition at line 160 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginRun(), EcalBarrelMonitorClient(), endRun(), htmlOutput(), softReset(), and writeDb().
std::map<std::string,int> EcalBarrelMonitorClient::clientsStatus_ [private] |
Definition at line 164 of file EcalBarrelMonitorClient.h.
Referenced by EcalBarrelMonitorClient(), and writeDb().
bool EcalBarrelMonitorClient::cloneME_ [private] |
Definition at line 109 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), cleanup(), and EcalBarrelMonitorClient().
time_t EcalBarrelMonitorClient::current_time_ [private] |
Definition at line 144 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), and endLuminosityBlock().
std::string EcalBarrelMonitorClient::dbHostName_ [private] |
Definition at line 128 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), EcalBarrelMonitorClient(), endRunDb(), and writeDb().
int EcalBarrelMonitorClient::dbHostPort_ [private] |
Definition at line 129 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), EcalBarrelMonitorClient(), endRunDb(), and writeDb().
std::string EcalBarrelMonitorClient::dbName_ [private] |
Definition at line 127 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), EcalBarrelMonitorClient(), endRunDb(), and writeDb().
std::string EcalBarrelMonitorClient::dbPassword_ [private] |
Definition at line 131 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), EcalBarrelMonitorClient(), endRunDb(), and writeDb().
std::string EcalBarrelMonitorClient::dbTagName_ [private] |
Definition at line 133 of file EcalBarrelMonitorClient.h.
Referenced by EcalBarrelMonitorClient(), and writeDb().
time_t EcalBarrelMonitorClient::dbUpdateTime_ [private] |
Definition at line 151 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), and EcalBarrelMonitorClient().
std::string EcalBarrelMonitorClient::dbUserName_ [private] |
Definition at line 130 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), EcalBarrelMonitorClient(), endRunDb(), and writeDb().
bool EcalBarrelMonitorClient::debug_ [private] |
Definition at line 112 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), beginRunDb(), EcalBarrelMonitorClient(), endJob(), and endRun().
DQMStore* EcalBarrelMonitorClient::dqmStore_ [private] |
bool EcalBarrelMonitorClient::enableCleanup_ [private] |
Definition at line 118 of file EcalBarrelMonitorClient.h.
Referenced by cleanup(), and EcalBarrelMonitorClient().
std::vector<std::string> EcalBarrelMonitorClient::enabledClients_ [private] |
Definition at line 116 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), EcalBarrelMonitorClient(), writeDb(), and ~EcalBarrelMonitorClient().
bool EcalBarrelMonitorClient::enableUpdate_ [private] |
Definition at line 173 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), and EcalBarrelMonitorClient().
bool EcalBarrelMonitorClient::end_run_ [private] |
Definition at line 186 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), endJob(), and endRun().
int EcalBarrelMonitorClient::evt_ [private] |
Definition at line 183 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), endLuminosityBlock(), and endRun().
int EcalBarrelMonitorClient::evtType_ [private] |
Definition at line 178 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and endRun().
bool EcalBarrelMonitorClient::forced_status_ [private] |
Definition at line 188 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), endJob(), and endRun().
bool EcalBarrelMonitorClient::forced_update_ [private] |
Definition at line 190 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), endJob(), endLuminosityBlock(), and endRun().
TH1F* EcalBarrelMonitorClient::h_ [private] |
Definition at line 194 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), cleanup(), defaultWebPage(), endRunDb(), htmlOutput(), and writeDb().
std::string EcalBarrelMonitorClient::hostName_ [private] |
Definition at line 122 of file EcalBarrelMonitorClient.h.
Referenced by beginJob(), and EcalBarrelMonitorClient().
int EcalBarrelMonitorClient::hostPort_ [private] |
Definition at line 123 of file EcalBarrelMonitorClient.h.
Referenced by beginJob(), and EcalBarrelMonitorClient().
time_t EcalBarrelMonitorClient::htmlUpdateTime_ [private] |
Definition at line 152 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), and EcalBarrelMonitorClient().
int EcalBarrelMonitorClient::ievt_ [private] |
Definition at line 106 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), defaultWebPage(), and endJob().
std::string EcalBarrelMonitorClient::inputFile_ [private] |
Definition at line 125 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and EcalBarrelMonitorClient().
int EcalBarrelMonitorClient::jevt_ [private] |
Definition at line 107 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), and endRun().
int EcalBarrelMonitorClient::last_run_ [private] |
Definition at line 192 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and beginRun().
time_t EcalBarrelMonitorClient::last_time_db_ [private] |
Definition at line 147 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and beginRun().
time_t EcalBarrelMonitorClient::last_time_html_ [private] |
Definition at line 148 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and beginRun().
time_t EcalBarrelMonitorClient::last_time_update_ [private] |
Definition at line 146 of file EcalBarrelMonitorClient.h.
Referenced by beginJob(), beginRun(), and endLuminosityBlock().
std::string EcalBarrelMonitorClient::location_ [private] |
Definition at line 175 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginRunDb(), and EcalBarrelMonitorClient().
std::string EcalBarrelMonitorClient::maskFile_ [private] |
Definition at line 135 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), and EcalBarrelMonitorClient().
bool EcalBarrelMonitorClient::mergeRuns_ [private] |
Definition at line 137 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), EcalBarrelMonitorClient(), and endRun().
MonRunIOV EcalBarrelMonitorClient::moniov_ [private] |
Definition at line 140 of file EcalBarrelMonitorClient.h.
Referenced by defaultWebPage(), and writeDb().
DQMOldReceiver* EcalBarrelMonitorClient::mui_ [private] |
Definition at line 168 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and ~EcalBarrelMonitorClient().
std::string EcalBarrelMonitorClient::prefixME_ [private] |
Definition at line 171 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), and EcalBarrelMonitorClient().
int EcalBarrelMonitorClient::prescaleFactor_ [private] |
Definition at line 114 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), and EcalBarrelMonitorClient().
int EcalBarrelMonitorClient::run_ [private] |
Definition at line 182 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), beginRunDb(), defaultWebPage(), endLuminosityBlock(), endRun(), and htmlOutput().
RunIOV EcalBarrelMonitorClient::runiov_ [private] |
Definition at line 139 of file EcalBarrelMonitorClient.h.
Referenced by beginRunDb(), defaultWebPage(), endRunDb(), and writeDb().
int EcalBarrelMonitorClient::runType_ [private] |
Definition at line 177 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), beginRunDb(), endLuminosityBlock(), endRun(), getRunType(), htmlOutput(), softReset(), and writeDb().
std::vector<std::string> EcalBarrelMonitorClient::runTypes_ [private] |
Definition at line 161 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginRunDb(), defaultWebPage(), EcalBarrelMonitorClient(), and getRunType().
std::string EcalBarrelMonitorClient::status_ [private] |
Definition at line 180 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), and endRun().
int EcalBarrelMonitorClient::subrun_ [private] |
Definition at line 142 of file EcalBarrelMonitorClient.h.
Referenced by beginJob(), beginRunDb(), endRun(), and writeDb().
Definition at line 166 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginRun(), EcalBarrelMonitorClient(), endJob(), endRun(), htmlOutput(), softReset(), writeDb(), and ~EcalBarrelMonitorClient().
std::vector<int> EcalBarrelMonitorClient::superModules_ [private] |
time_t EcalBarrelMonitorClient::updateTime_ [private] |
Definition at line 150 of file EcalBarrelMonitorClient.h.
Referenced by EcalBarrelMonitorClient(), and endLuminosityBlock().
bool EcalBarrelMonitorClient::verbose_ [private] |
Definition at line 111 of file EcalBarrelMonitorClient.h.
Referenced by analyze(), beginJob(), beginLuminosityBlock(), beginRun(), beginRunDb(), EcalBarrelMonitorClient(), endJob(), endLuminosityBlock(), endRun(), endRunDb(), htmlOutput(), writeDb(), and ~EcalBarrelMonitorClient().