Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <memory>
00012 #include <iostream>
00013 #include <fstream>
00014 #include <iomanip>
00015 #include <vector>
00016
00017 #include "FWCore/ServiceRegistry/interface/Service.h"
00018
00019 #include "DQMServices/Core/interface/DQMStore.h"
00020 #include "DQMServices/Core/interface/MonitorElement.h"
00021
00022 #ifdef WITH_ECAL_COND_DB
00023 #include "OnlineDB/EcalCondDB/interface/MonOccupancyDat.h"
00024 #include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h"
00025 #include "DQM/EcalCommon/interface/LogicID.h"
00026 #endif
00027
00028 #include "DQM/EcalCommon/interface/UtilsClient.h"
00029 #include "DQM/EcalCommon/interface/Numbers.h"
00030
00031 #include "DQM/EcalBarrelMonitorClient/interface/EBCosmicClient.h"
00032
00033 EBCosmicClient::EBCosmicClient(const edm::ParameterSet& ps) {
00034
00035
00036 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
00037
00038
00039 verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
00040
00041
00042 debug_ = ps.getUntrackedParameter<bool>("debug", false);
00043
00044
00045 prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
00046
00047
00048 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00049
00050
00051 superModules_.reserve(36);
00052 for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i);
00053 superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
00054
00055 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00056
00057 int ism = superModules_[i];
00058
00059 h01_[ism-1] = 0;
00060 h02_[ism-1] = 0;
00061 h03_[ism-1] = 0;
00062
00063 meh01_[ism-1] = 0;
00064 meh02_[ism-1] = 0;
00065 meh03_[ism-1] = 0;
00066
00067 }
00068
00069 }
00070
00071 EBCosmicClient::~EBCosmicClient() {
00072
00073 }
00074
00075 void EBCosmicClient::beginJob(void) {
00076
00077 dqmStore_ = edm::Service<DQMStore>().operator->();
00078
00079 if ( debug_ ) std::cout << "EBCosmicClient: beginJob" << std::endl;
00080
00081 ievt_ = 0;
00082 jevt_ = 0;
00083
00084 }
00085
00086 void EBCosmicClient::beginRun(void) {
00087
00088 if ( debug_ ) std::cout << "EBCosmicClient: beginRun" << std::endl;
00089
00090 jevt_ = 0;
00091
00092 this->setup();
00093
00094 }
00095
00096 void EBCosmicClient::endJob(void) {
00097
00098 if ( debug_ ) std::cout << "EBCosmicClient: endJob, ievt = " << ievt_ << std::endl;
00099
00100 this->cleanup();
00101
00102 }
00103
00104 void EBCosmicClient::endRun(void) {
00105
00106 if ( debug_ ) std::cout << "EBCosmicClient: endRun, jevt = " << jevt_ << std::endl;
00107
00108 this->cleanup();
00109
00110 }
00111
00112 void EBCosmicClient::setup(void) {
00113
00114 }
00115
00116 void EBCosmicClient::cleanup(void) {
00117
00118 if ( ! enableCleanup_ ) return;
00119
00120 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00121
00122 int ism = superModules_[i];
00123
00124 if ( cloneME_ ) {
00125 if ( h01_[ism-1] ) delete h01_[ism-1];
00126 if ( h02_[ism-1] ) delete h02_[ism-1];
00127 if ( h03_[ism-1] ) delete h03_[ism-1];
00128 }
00129
00130 h01_[ism-1] = 0;
00131 h02_[ism-1] = 0;
00132 h03_[ism-1] = 0;
00133
00134 meh01_[ism-1] = 0;
00135 meh02_[ism-1] = 0;
00136 meh03_[ism-1] = 0;
00137
00138 }
00139
00140 }
00141
00142 #ifdef WITH_ECAL_COND_DB
00143 bool EBCosmicClient::writeDb(EcalCondDBInterface* econn, RunIOV* runiov, MonRunIOV* moniov, bool& status) {
00144
00145 status = true;
00146
00147 return true;
00148
00149 }
00150 #endif
00151
00152 void EBCosmicClient::analyze(void) {
00153
00154 ievt_++;
00155 jevt_++;
00156 if ( ievt_ % 10 == 0 ) {
00157 if ( debug_ ) std::cout << "EBCosmicClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
00158 }
00159
00160 MonitorElement* me;
00161
00162 for ( unsigned int i=0; i<superModules_.size(); i++ ) {
00163
00164 int ism = superModules_[i];
00165
00166 me = dqmStore_->get( prefixME_ + "/EBCosmicTask/Sel/EBCT energy sel " + Numbers::sEB(ism) );
00167 h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] );
00168 meh01_[ism-1] = me;
00169
00170 me = dqmStore_->get( prefixME_ + "/EBCosmicTask/Spectrum/EBCT 1x1 energy spectrum " + Numbers::sEB(ism) );
00171 h02_[ism-1] = UtilsClient::getHisto<TH1F*>( me, cloneME_, h02_[ism-1] );
00172 meh02_[ism-1] = me;
00173
00174 me = dqmStore_->get( prefixME_ + "/EBCosmicTask/Spectrum/EBCT 3x3 energy spectrum " + Numbers::sEB(ism) );
00175 h03_[ism-1] = UtilsClient::getHisto<TH1F*>( me, cloneME_, h03_[ism-1] );
00176 meh03_[ism-1] = me;
00177
00178 }
00179
00180 }
00181