#include <DQM/EcalEndcapMonitorClient/interface/EEIntegrityClient.h>
Public Member Functions | |
void | analyze (void) |
Analyze. | |
void | beginJob (DQMStore *dqmStore) |
BeginJob. | |
void | beginRun (void) |
BeginRun. | |
void | cleanup (void) |
Cleanup. | |
EEIntegrityClient (const edm::ParameterSet &ps) | |
Constructor. | |
void | endJob (void) |
EndJob. | |
void | endRun (void) |
EndRun. | |
int | getEvtPerJob () |
Get Functions. | |
int | getEvtPerRun () |
Returns the number of processed events in this Run. | |
void | htmlOutput (int run, std::string &htmlDir, std::string &htmlName) |
HtmlOutput. | |
void | setup (void) |
Setup. | |
void | softReset (bool flag) |
SoftReset. | |
bool | writeDb (EcalCondDBInterface *econn, RunIOV *runiov, MonRunIOV *moniov, bool &status, bool flag) |
WriteDB. | |
virtual | ~EEIntegrityClient () |
Destructor. | |
Private Attributes | |
bool | cloneME_ |
bool | debug_ |
DQMStore * | dqmStore_ |
bool | enableCleanup_ |
TH1F * | h00_ |
TH2F * | h01_ [18] |
TH2F * | h02_ [18] |
TH2F * | h03_ [18] |
TH2F * | h04_ [18] |
TH2F * | h05_ [18] |
TH2F * | h06_ [18] |
TH2F * | h07_ [18] |
TH2F * | h08_ [18] |
TH2F * | h09_ [18] |
TH2F * | h_ [18] |
TH2F * | hmem_ [18] |
int | ievt_ |
int | jevt_ |
MonitorElement * | meg01_ [18] |
MonitorElement * | meg02_ [18] |
std::string | prefixME_ |
std::vector< int > | superModules_ |
float | threshCry_ |
bool | verbose_ |
Static Private Attributes | |
static const int | chNum [5][5] |
Friends | |
class | EESummaryClient |
Definition at line 31 of file EEIntegrityClient.h.
EEIntegrityClient::EEIntegrityClient | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 51 of file EEIntegrityClient.cc.
References cloneME_, debug_, enableCleanup_, edm::ParameterSet::getUntrackedParameter(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, meg01_, meg02_, prefixME_, superModules_, threshCry_, and verbose_.
00051 { 00052 00053 // cloneME switch 00054 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true); 00055 00056 // verbose switch 00057 verbose_ = ps.getUntrackedParameter<bool>("verbose", true); 00058 00059 // debug switch 00060 debug_ = ps.getUntrackedParameter<bool>("debug", false); 00061 00062 // prefixME path 00063 prefixME_ = ps.getUntrackedParameter<string>("prefixME", ""); 00064 00065 // enableCleanup_ switch 00066 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false); 00067 00068 // vector of selected Super Modules (Defaults to all 18). 00069 superModules_.reserve(18); 00070 for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i); 00071 superModules_ = ps.getUntrackedParameter<vector<int> >("superModules", superModules_); 00072 00073 h00_ = 0; 00074 00075 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00076 00077 int ism = superModules_[i]; 00078 00079 h_[ism-1] = 0; 00080 hmem_[ism-1] = 0; 00081 00082 h01_[ism-1] = 0; 00083 h02_[ism-1] = 0; 00084 h03_[ism-1] = 0; 00085 h04_[ism-1] = 0; 00086 h05_[ism-1] = 0; 00087 h06_[ism-1] = 0; 00088 h07_[ism-1] = 0; 00089 h08_[ism-1] = 0; 00090 h09_[ism-1] = 0; 00091 00092 } 00093 00094 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00095 00096 int ism = superModules_[i]; 00097 00098 // integrity summary histograms 00099 meg01_[ism-1] = 0; 00100 meg02_[ism-1] = 0; 00101 00102 } 00103 00104 threshCry_ = 0.; 00105 00106 }
EEIntegrityClient::~EEIntegrityClient | ( | ) | [virtual] |
Analyze.
Implements EEClient.
Definition at line 690 of file EEIntegrityClient.cc.
References chNum, cloneME_, GenMuonPlsPt100GeV_cfg::cout, debug_, dqmStore_, EcalEndcap, lat::endl(), EcalErrorMask::fetchDataSet(), DQMStore::get(), LogicID::getEcalLogicID(), EcalLogicID::getLogicID(), EcalErrorDictionary::getMask(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, histo, hmem_, i, ievt_, Numbers::indexEE(), Numbers::iSM(), Numbers::iTT(), Numbers::ix0EE(), Numbers::iy0EE(), jevt_, m, UtilsClient::maskBinContent(), me, meg01_, meg02_, prefixME_, MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setBinContent(), superModules_, threshCry_, and Numbers::validEE().
00690 { 00691 00692 ievt_++; 00693 jevt_++; 00694 if ( ievt_ % 10 == 0 ) { 00695 if ( debug_ ) cout << "EEIntegrityClient: ievt/jevt = " << ievt_ << "/" << jevt_ << endl; 00696 } 00697 00698 uint64_t bits01 = 0; 00699 bits01 |= EcalErrorDictionary::getMask("CH_ID_WARNING"); 00700 bits01 |= EcalErrorDictionary::getMask("CH_GAIN_ZERO_WARNING"); 00701 bits01 |= EcalErrorDictionary::getMask("CH_GAIN_SWITCH_WARNING"); 00702 bits01 |= EcalErrorDictionary::getMask("CH_ID_ERROR"); 00703 bits01 |= EcalErrorDictionary::getMask("CH_GAIN_ZERO_ERROR"); 00704 bits01 |= EcalErrorDictionary::getMask("CH_GAIN_SWITCH_ERROR"); 00705 00706 uint64_t bits02 = 0; 00707 bits02 |= EcalErrorDictionary::getMask("TT_ID_WARNING"); 00708 bits02 |= EcalErrorDictionary::getMask("TT_SIZE_WARNING"); 00709 bits02 |= EcalErrorDictionary::getMask("TT_LV1_WARNING"); 00710 bits02 |= EcalErrorDictionary::getMask("TT_BUNCH_X_WARNING"); 00711 bits02 |= EcalErrorDictionary::getMask("TT_ID_ERROR"); 00712 bits02 |= EcalErrorDictionary::getMask("TT_SIZE_ERROR"); 00713 bits02 |= EcalErrorDictionary::getMask("TT_LV1_ERROR"); 00714 bits02 |= EcalErrorDictionary::getMask("TT_BUNCH_X_ERROR"); 00715 00716 map<EcalLogicID, RunCrystalErrorsDat> mask1; 00717 map<EcalLogicID, RunTTErrorsDat> mask2; 00718 map<EcalLogicID, RunMemChErrorsDat> mask3; 00719 map<EcalLogicID, RunMemTTErrorsDat> mask4; 00720 00721 EcalErrorMask::fetchDataSet(&mask1); 00722 EcalErrorMask::fetchDataSet(&mask2); 00723 EcalErrorMask::fetchDataSet(&mask3); 00724 EcalErrorMask::fetchDataSet(&mask4); 00725 00726 char histo[200]; 00727 00728 MonitorElement* me; 00729 00730 sprintf(histo, (prefixME_ + "/EEIntegrityTask/EEIT DCC size error").c_str()); 00731 me = dqmStore_->get(histo); 00732 h00_ = UtilsClient::getHisto<TH1F*>( me, cloneME_, h00_ ); 00733 00734 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00735 00736 int ism = superModules_[i]; 00737 00738 sprintf(histo, (prefixME_ + "/EEOccupancyTask/EEOT digi occupancy %s").c_str(), Numbers::sEE(ism).c_str()); 00739 me = dqmStore_->get(histo); 00740 h_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h_[ism-1] ); 00741 00742 sprintf(histo, (prefixME_ + "/EEOccupancyTask/EEOT MEM digi occupancy %s").c_str(), Numbers::sEE(ism).c_str()); 00743 me = dqmStore_->get(histo); 00744 hmem_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, hmem_[ism-1] ); 00745 00746 sprintf(histo, (prefixME_ + "/EEIntegrityTask/Gain/EEIT gain %s").c_str(), Numbers::sEE(ism).c_str()); 00747 me = dqmStore_->get(histo); 00748 h01_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h01_[ism-1] ); 00749 00750 sprintf(histo, (prefixME_ + "/EEIntegrityTask/ChId/EEIT ChId %s").c_str(), Numbers::sEE(ism).c_str()); 00751 me = dqmStore_->get(histo); 00752 h02_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h02_[ism-1] ); 00753 00754 sprintf(histo, (prefixME_ + "/EEIntegrityTask/GainSwitch/EEIT gain switch %s").c_str(), Numbers::sEE(ism).c_str()); 00755 me = dqmStore_->get(histo); 00756 h03_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h03_[ism-1] ); 00757 00758 sprintf(histo, (prefixME_ + "/EEIntegrityTask/TTId/EEIT TTId %s").c_str(), Numbers::sEE(ism).c_str()); 00759 me = dqmStore_->get(histo); 00760 h04_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h04_[ism-1] ); 00761 00762 sprintf(histo, (prefixME_ + "/EEIntegrityTask/TTBlockSize/EEIT TTBlockSize %s").c_str(), Numbers::sEE(ism).c_str()); 00763 me = dqmStore_->get(histo); 00764 h05_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h05_[ism-1] ); 00765 00766 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemChId/EEIT MemChId %s").c_str(), Numbers::sEE(ism).c_str()); 00767 me = dqmStore_->get(histo); 00768 h06_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h06_[ism-1] ); 00769 00770 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemGain/EEIT MemGain %s").c_str(), Numbers::sEE(ism).c_str()); 00771 me = dqmStore_->get(histo); 00772 h07_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h07_[ism-1] ); 00773 00774 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemTTId/EEIT MemTTId %s").c_str(), Numbers::sEE(ism).c_str()); 00775 me = dqmStore_->get(histo); 00776 h08_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h08_[ism-1] ); 00777 00778 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemSize/EEIT MemSize %s").c_str(), Numbers::sEE(ism).c_str()); 00779 me = dqmStore_->get(histo); 00780 h09_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h09_[ism-1] ); 00781 00782 float num00; 00783 00784 // integrity summary histograms 00785 if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); 00786 if ( meg01_[ism-1] ) meg02_[ism-1]->Reset(); 00787 00788 num00 = 0.; 00789 00790 bool update0 = false; 00791 00792 // dcc size errors 00793 if ( h00_ ) { 00794 num00 = h00_->GetBinContent(ism); 00795 update0 = true; 00796 } 00797 00798 float num01, num02, num03, num04, num05; 00799 00800 for ( int ix = 1; ix <= 50; ix++ ) { 00801 for ( int iy = 1; iy <= 50; iy++ ) { 00802 00803 num01 = num02 = num03 = num04 = num05 = 0.; 00804 00805 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. ); 00806 00807 bool update1 = false; 00808 bool update2 = false; 00809 00810 float numTot = -1.; 00811 00812 if ( h_[ism-1] ) numTot = h_[ism-1]->GetBinContent(ix, iy); 00813 00814 if ( h01_[ism-1] ) { 00815 num01 = h01_[ism-1]->GetBinContent(ix, iy); 00816 update1 = true; 00817 } 00818 00819 if ( h02_[ism-1] ) { 00820 num02 = h02_[ism-1]->GetBinContent(ix, iy); 00821 update1 = true; 00822 } 00823 00824 if ( h03_[ism-1] ) { 00825 num03 = h03_[ism-1]->GetBinContent(ix, iy); 00826 update1 = true; 00827 } 00828 00829 if ( h04_[ism-1] ) { 00830 num04 = h04_[ism-1]->GetBinContent(ix, iy); 00831 update2 = true; 00832 } 00833 00834 if ( h05_[ism-1] ) { 00835 num05 = h05_[ism-1]->GetBinContent(ix, iy); 00836 update2 = true; 00837 } 00838 00839 if ( update0 || update1 || update2 ) { 00840 00841 float val; 00842 00843 val = 1.; 00844 // number of events on a channel 00845 if ( numTot > 0 ) { 00846 float errorRate1 = num00 / numTot; 00847 if ( errorRate1 > threshCry_ ) 00848 val = 0.; 00849 errorRate1 = ( num01 + num02 + num03 ) / numTot / 4.; 00850 if ( errorRate1 > threshCry_ ) 00851 val = 0.; 00852 float errorRate2 = ( num04 + num05 ) / numTot / 2.; 00853 if ( errorRate2 > threshCry_ ) 00854 val = 0.; 00855 } else { 00856 val = 2.; 00857 if ( num00 > 0 ) 00858 val = 0.; 00859 if ( ( num01 + num02 + num03 ) > 0 ) 00860 val = 0.; 00861 if ( ( num04 + num05 ) > 0 ) 00862 val = 0.; 00863 } 00864 00865 int jx = ix + Numbers::ix0EE(ism); 00866 int jy = iy + Numbers::iy0EE(ism); 00867 00868 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00869 00870 // filling the summary for SM channels 00871 if ( Numbers::validEE(ism, jx, jy) ) { 00872 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, val ); 00873 } 00874 00875 } 00876 00877 // masking 00878 00879 if ( mask1.size() != 0 ) { 00880 map<EcalLogicID, RunCrystalErrorsDat>::const_iterator m; 00881 for (m = mask1.begin(); m != mask1.end(); m++) { 00882 00883 int jx = ix + Numbers::ix0EE(ism); 00884 int jy = iy + Numbers::iy0EE(ism); 00885 00886 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00887 00888 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00889 00890 int ic = Numbers::indexEE(ism, jx, jy); 00891 00892 if ( ic == -1 ) continue; 00893 00894 EcalLogicID ecid = m->first; 00895 00896 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic).getLogicID() ) { 00897 if ( (m->second).getErrorBits() & bits01 ) { 00898 UtilsClient::maskBinContent( meg01_[ism-1], ix, iy ); 00899 } 00900 } 00901 00902 } 00903 } 00904 00905 if ( mask2.size() != 0 ) { 00906 map<EcalLogicID, RunTTErrorsDat>::const_iterator m; 00907 for (m = mask2.begin(); m != mask2.end(); m++) { 00908 00909 EcalLogicID ecid = m->first; 00910 00911 int itt = Numbers::iTT(ism, EcalEndcap, ix, iy); 00912 00913 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_readout_tower", Numbers::iSM(ism, EcalEndcap), itt).getLogicID() ) { 00914 if ( (m->second).getErrorBits() & bits02 ) { 00915 UtilsClient::maskBinContent( meg01_[ism-1], ix, iy ); 00916 } 00917 } 00918 00919 } 00920 } 00921 00922 } 00923 }// end of loop on crystals to fill summary plot 00924 00925 // summaries for mem channels 00926 float num06, num07, num08, num09; 00927 00928 for ( int ie = 1; ie <= 10; ie++ ) { 00929 for ( int ip = 1; ip <= 5; ip++ ) { 00930 00931 num06 = num07 = num08 = num09 = 0.; 00932 00933 // initialize summary histo for mem 00934 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. ); 00935 00936 bool update1 = false; 00937 bool update2 = false; 00938 00939 float numTotmem = -1.; 00940 00941 if ( hmem_[ism-1] ) numTotmem = hmem_[ism-1]->GetBinContent(ie, ip); 00942 00943 if ( h06_[ism-1] ) { 00944 num06 = h06_[ism-1]->GetBinContent(ie, ip); 00945 update1 = true; 00946 } 00947 00948 if ( h07_[ism-1] ) { 00949 num07 = h07_[ism-1]->GetBinContent(ie, ip); 00950 update1 = true; 00951 } 00952 00953 int iet = 1 + ((ie-1)/5); 00954 int ipt = 1; 00955 00956 if ( h08_[ism-1] ) { 00957 num08 = h08_[ism-1]->GetBinContent(iet, ipt); 00958 update2 = true; 00959 } 00960 00961 if ( h09_[ism-1] ) { 00962 num09 = h09_[ism-1]->GetBinContent(iet, ipt); 00963 update2 = true; 00964 } 00965 00966 00967 if ( update0 || update1 || update2 ) { 00968 00969 float val; 00970 00971 val = 1.; 00972 // number of events on a channel 00973 if ( numTotmem > 0 ) { 00974 float errorRate1 = ( num06 + num06 ) / numTotmem / 2.; 00975 if ( errorRate1 > threshCry_ ) 00976 val = 0.; 00977 float errorRate2 = ( num08 + num09 ) / numTotmem / 2.; 00978 if ( errorRate2 > threshCry_ ) 00979 val = 0.; 00980 } else { 00981 val = 2.; 00982 if ( ( num06 + num07 ) > 0 ) 00983 val = 0.; 00984 if ( ( num08 + num09 ) > 0 ) 00985 val = 0.; 00986 } 00987 00988 // filling summary for mem channels 00989 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, val ); 00990 00991 } 00992 00993 // masking 00994 00995 if ( mask3.size() != 0 ) { 00996 map<EcalLogicID, RunMemChErrorsDat>::const_iterator m; 00997 for (m = mask3.begin(); m != mask3.end(); m++) { 00998 00999 EcalLogicID ecid = m->first; 01000 01001 int ic = EEIntegrityClient::chNum[ (ie-1)%5 ][ (ip-1) ] + (ie-1)/5 * 25; 01002 01003 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_mem_channel", Numbers::iSM(ism, EcalEndcap), ic).getLogicID() ) { 01004 if ( (m->second).getErrorBits() & bits01 ) { 01005 UtilsClient::maskBinContent( meg02_[ism-1], ie, ip ); 01006 } 01007 } 01008 } 01009 } 01010 01011 if ( mask4.size() != 0 ) { 01012 map<EcalLogicID, RunMemTTErrorsDat>::const_iterator m; 01013 for (m = mask4.begin(); m != mask4.end(); m++) { 01014 01015 EcalLogicID ecid = m->first; 01016 01017 int iet = 1 + ((ie-1)/5); 01018 int itt = 68 + iet; 01019 01020 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_mem_TT", Numbers::iSM(ism, EcalEndcap), itt).getLogicID() ) { 01021 if ( (m->second).getErrorBits() & bits02 ) { 01022 UtilsClient::maskBinContent( meg02_[ism-1], ie, ip ); 01023 } 01024 } 01025 } 01026 } 01027 01028 } 01029 } // end loop on mem channels 01030 01031 }// end loop on supermodules 01032 01033 }
BeginJob.
Implements EEClient.
Definition at line 112 of file EEIntegrityClient.cc.
References GenMuonPlsPt100GeV_cfg::cout, debug_, dqmStore_, lat::endl(), ievt_, and jevt_.
00112 { 00113 00114 dqmStore_ = dqmStore; 00115 00116 if ( debug_ ) cout << "EEIntegrityClient: beginJob" << endl; 00117 00118 ievt_ = 0; 00119 jevt_ = 0; 00120 00121 }
BeginRun.
Implements EEClient.
Definition at line 123 of file EEIntegrityClient.cc.
References GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), jevt_, and setup().
00123 { 00124 00125 if ( debug_ ) cout << "EEIntegrityClient: beginRun" << endl; 00126 00127 jevt_ = 0; 00128 00129 this->setup(); 00130 00131 }
Cleanup.
Implements EEClient.
Definition at line 209 of file EEIntegrityClient.cc.
References cloneME_, dqmStore_, enableCleanup_, edm::getName(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, meg01_, meg02_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.
Referenced by endJob(), and endRun().
00209 { 00210 00211 if ( ! enableCleanup_ ) return; 00212 00213 if ( cloneME_ ) { 00214 if ( h00_ ) delete h00_; 00215 } 00216 00217 h00_ = 0; 00218 00219 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00220 00221 int ism = superModules_[i]; 00222 00223 if ( cloneME_ ) { 00224 if ( h_[ism-1] ) delete h_[ism-1]; 00225 if ( hmem_[ism-1] ) delete hmem_[ism-1]; 00226 00227 if ( h01_[ism-1] ) delete h01_[ism-1]; 00228 if ( h02_[ism-1] ) delete h02_[ism-1]; 00229 if ( h03_[ism-1] ) delete h03_[ism-1]; 00230 if ( h04_[ism-1] ) delete h04_[ism-1]; 00231 if ( h05_[ism-1] ) delete h05_[ism-1]; 00232 if ( h06_[ism-1] ) delete h06_[ism-1]; 00233 if ( h07_[ism-1] ) delete h07_[ism-1]; 00234 if ( h08_[ism-1] ) delete h08_[ism-1]; 00235 if ( h09_[ism-1] ) delete h09_[ism-1]; 00236 } 00237 00238 h_[ism-1] = 0; 00239 hmem_[ism-1] = 0; 00240 00241 h01_[ism-1] = 0; 00242 h02_[ism-1] = 0; 00243 h03_[ism-1] = 0; 00244 h04_[ism-1] = 0; 00245 h05_[ism-1] = 0; 00246 h06_[ism-1] = 0; 00247 h07_[ism-1] = 0; 00248 h08_[ism-1] = 0; 00249 h09_[ism-1] = 0; 00250 00251 } 00252 00253 dqmStore_->setCurrentFolder( prefixME_ + "/EEIntegrityClient" ); 00254 00255 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00256 00257 int ism = superModules_[i]; 00258 00259 if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); 00260 meg01_[ism-1] = 0; 00261 00262 if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() ); 00263 meg02_[ism-1] = 0; 00264 00265 } 00266 00267 }
EndJob.
Implements EEClient.
Definition at line 133 of file EEIntegrityClient.cc.
References cleanup(), GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), and ievt_.
00133 { 00134 00135 if ( debug_ ) cout << "EEIntegrityClient: endJob, ievt = " << ievt_ << endl; 00136 00137 this->cleanup(); 00138 00139 }
EndRun.
Implements EEClient.
Definition at line 141 of file EEIntegrityClient.cc.
References cleanup(), GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), and jevt_.
00141 { 00142 00143 if ( debug_ ) cout << "EEIntegrityClient: endRun, jevt = " << jevt_ << endl; 00144 00145 this->cleanup(); 00146 00147 }
Get Functions.
Implements EEClient.
Definition at line 74 of file EEIntegrityClient.h.
References ievt_.
00074 { return ievt_; }
Setup.
Implements EEClient.
Definition at line 149 of file EEIntegrityClient.cc.
References DQMStore::book2D(), dqmStore_, edm::getName(), histo, i, Numbers::ix0EE(), Numbers::iy0EE(), meg01_, meg02_, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), superModules_, and Numbers::validEE().
Referenced by beginRun().
00149 { 00150 00151 char histo[200]; 00152 00153 dqmStore_->setCurrentFolder( prefixME_ + "/EEIntegrityClient" ); 00154 00155 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00156 00157 int ism = superModules_[i]; 00158 00159 if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); 00160 sprintf(histo, "EEIT data integrity quality %s", Numbers::sEE(ism).c_str()); 00161 meg01_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00162 meg01_[ism-1]->setAxisTitle("jx", 1); 00163 meg01_[ism-1]->setAxisTitle("jy", 2); 00164 00165 if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() ); 00166 sprintf(histo, "EEIT data integrity quality MEM %s", Numbers::sEE(ism).c_str()); 00167 meg02_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 5, 0.,5.); 00168 meg02_[ism-1]->setAxisTitle("pseudo-strip", 1); 00169 meg02_[ism-1]->setAxisTitle("channel", 2); 00170 00171 } 00172 00173 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00174 00175 int ism = superModules_[i]; 00176 00177 if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); 00178 if ( meg02_[ism-1] ) meg02_[ism-1]->Reset(); 00179 00180 for ( int ix = 1; ix <= 50; ix++ ) { 00181 for ( int iy = 1; iy <= 50; iy++ ) { 00182 00183 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. ); 00184 00185 int jx = ix + Numbers::ix0EE(ism); 00186 int jy = iy + Numbers::iy0EE(ism); 00187 00188 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00189 00190 if ( Numbers::validEE(ism, jx, jy) ) { 00191 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. ); 00192 } 00193 00194 } 00195 } 00196 00197 for ( int ie = 1; ie <= 10; ie++ ) { 00198 for ( int ip = 1; ip <= 5; ip++ ) { 00199 00200 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ie, ip, 2. ); 00201 00202 } 00203 } 00204 00205 } 00206 00207 }
SoftReset.
Implements EEClient.
Definition at line 1035 of file EEIntegrityClient.cc.
References dqmStore_, DQMStore::get(), histo, i, me, prefixME_, Numbers::sEE(), DQMStore::softReset(), and superModules_.
Referenced by writeDb().
01035 { 01036 01037 char histo[200]; 01038 01039 MonitorElement* me; 01040 01041 sprintf(histo, (prefixME_ + "/EEIntegrityTask/EEIT DCC size error").c_str()); 01042 me = dqmStore_->get(histo); 01043 if ( flag ) { 01044 if ( me ) dqmStore_->softReset( me ); 01045 } else { 01046 // if ( me ) dqmStore_->disableSoftReset( me ); 01047 } 01048 01049 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 01050 01051 int ism = superModules_[i]; 01052 01053 sprintf(histo, (prefixME_ + "/EEOccupancyTask/EEOT digi occupancy %s").c_str(), Numbers::sEE(ism).c_str()); 01054 me = dqmStore_->get(histo); 01055 if ( flag ) { 01056 if ( me ) dqmStore_->softReset( me ); 01057 } else { 01058 // if ( me ) dqmStore_->disableSoftReset( me ); 01059 } 01060 01061 sprintf(histo, (prefixME_ + "/EEOccupancyTask/EEOT MEM digi occupancy %s").c_str(), Numbers::sEE(ism).c_str()); 01062 me = dqmStore_->get(histo); 01063 if ( flag ) { 01064 if ( me ) dqmStore_->softReset( me ); 01065 } else { 01066 // if ( me ) dqmStore_->disableSoftReset( me ); 01067 } 01068 01069 sprintf(histo, (prefixME_ + "/EEIntegrityTask/Gain/EEIT gain %s").c_str(), Numbers::sEE(ism).c_str()); 01070 me = dqmStore_->get(histo); 01071 if ( flag ) { 01072 if ( me ) dqmStore_->softReset( me ); 01073 } else { 01074 // if ( me ) dqmStore_->disableSoftReset( me ); 01075 } 01076 01077 sprintf(histo, (prefixME_ + "/EEIntegrityTask/ChId/EEIT ChId %s").c_str(), Numbers::sEE(ism).c_str()); 01078 me = dqmStore_->get(histo); 01079 if ( flag ) { 01080 if ( me ) dqmStore_->softReset( me ); 01081 } else { 01082 // if ( me ) dqmStore_->disableSoftReset( me ); 01083 } 01084 01085 sprintf(histo, (prefixME_ + "/EEIntegrityTask/GainSwitch/EEIT gain switch %s").c_str(), Numbers::sEE(ism).c_str()); 01086 me = dqmStore_->get(histo); 01087 if ( flag ) { 01088 if ( me ) dqmStore_->softReset( me ); 01089 } else { 01090 // if ( me ) dqmStore_->disableSoftReset( me ); 01091 } 01092 01093 sprintf(histo, (prefixME_ + "/EEIntegrityTask/TTId/EEIT TTId %s").c_str(), Numbers::sEE(ism).c_str()); 01094 me = dqmStore_->get(histo); 01095 if ( flag ) { 01096 if ( me ) dqmStore_->softReset( me ); 01097 } else { 01098 // if ( me ) dqmStore_->disableSoftReset( me ); 01099 } 01100 01101 sprintf(histo, (prefixME_ + "/EEIntegrityTask/TTBlockSize/EEIT TTBlockSize %s").c_str(), Numbers::sEE(ism).c_str()); 01102 me = dqmStore_->get(histo); 01103 if ( flag ) { 01104 if ( me ) dqmStore_->softReset( me ); 01105 } else { 01106 // if ( me ) dqmStore_->disableSoftReset( me ); 01107 } 01108 01109 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemChId/EEIT MemChId %s").c_str(), Numbers::sEE(ism).c_str()); 01110 me = dqmStore_->get(histo); 01111 if ( flag ) { 01112 if ( me ) dqmStore_->softReset( me ); 01113 } else { 01114 // if ( me ) dqmStore_->disableSoftReset( me ); 01115 } 01116 01117 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemGain/EEIT MemGain %s").c_str(), Numbers::sEE(ism).c_str()); 01118 me = dqmStore_->get(histo); 01119 if ( flag ) { 01120 if ( me ) dqmStore_->softReset( me ); 01121 } else { 01122 // if ( me ) dqmStore_->disableSoftReset( me ); 01123 } 01124 01125 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemTTId/EEIT MemTTId %s").c_str(), Numbers::sEE(ism).c_str()); 01126 me = dqmStore_->get(histo); 01127 if ( flag ) { 01128 if ( me ) dqmStore_->softReset( me ); 01129 } else { 01130 // if ( me ) dqmStore_->disableSoftReset( me ); 01131 } 01132 01133 sprintf(histo, (prefixME_ + "/EEIntegrityTask/MemSize/EEIT MemSize %s").c_str(), Numbers::sEE(ism).c_str()); 01134 me = dqmStore_->get(histo); 01135 if ( flag ) { 01136 if ( me ) dqmStore_->softReset( me ); 01137 } else { 01138 // if ( me ) dqmStore_->disableSoftReset( me ); 01139 } 01140 01141 } 01142 01143 }
bool EEIntegrityClient::writeDb | ( | EcalCondDBInterface * | econn, | |
RunIOV * | runiov, | |||
MonRunIOV * | moniov, | |||
bool & | status, | |||
bool | flag | |||
) | [virtual] |
WriteDB.
Implements EEClient.
Definition at line 269 of file EEIntegrityClient.cc.
References c1, c2, c3, c4, TestMuL1L2Filter_cff::cerr, chNum, GenMuonPlsPt100GeV_cfg::cout, e, EcalEndcap, lat::endl(), LogicID::getEcalLogicID(), h00_, h01_, h02_, h03_, h04_, h05_, h06_, h07_, h08_, h09_, h_, hmem_, i, Numbers::icEE(), Numbers::indexEE(), EcalCondDBInterface::insertDataArraySet(), Numbers::iSM(), Numbers::iTT(), Numbers::ix0EE(), Numbers::iy0EE(), meg01_, meg02_, UtilsClient::printBadChannels(), Numbers::sEE(), MonCrystalConsistencyDat::setProblematicEvents(), MonMemTTConsistencyDat::setProblematicEvents(), MonTTConsistencyDat::setProblematicEvents(), MonMemChConsistencyDat::setProblematicEvents(), MonTTConsistencyDat::setProblemsBunchX(), MonCrystalConsistencyDat::setProblemsGainSwitch(), MonMemChConsistencyDat::setProblemsGainZero(), MonCrystalConsistencyDat::setProblemsGainZero(), MonTTConsistencyDat::setProblemsID(), MonMemTTConsistencyDat::setProblemsID(), MonCrystalConsistencyDat::setProblemsID(), MonMemChConsistencyDat::setProblemsID(), MonTTConsistencyDat::setProblemsLV1(), MonTTConsistencyDat::setProblemsSize(), MonMemTTConsistencyDat::setProblemsSize(), MonCrystalConsistencyDat::setProcessedEvents(), MonMemChConsistencyDat::setProcessedEvents(), MonMemTTConsistencyDat::setProcessedEvents(), MonTTConsistencyDat::setProcessedEvents(), MonCrystalConsistencyDat::setTaskStatus(), MonMemTTConsistencyDat::setTaskStatus(), MonTTConsistencyDat::setTaskStatus(), softReset(), superModules_, threshCry_, Numbers::validEE(), and verbose_.
00269 { 00270 00271 status = true; 00272 00273 if ( flag ) this->softReset(false); 00274 00275 EcalLogicID ecid; 00276 00277 MonCrystalConsistencyDat c1; 00278 map<EcalLogicID, MonCrystalConsistencyDat> dataset1; 00279 MonTTConsistencyDat c2; 00280 map<EcalLogicID, MonTTConsistencyDat> dataset2; 00281 MonMemChConsistencyDat c3; 00282 map<EcalLogicID, MonMemChConsistencyDat> dataset3; 00283 MonMemTTConsistencyDat c4; 00284 map<EcalLogicID, MonMemTTConsistencyDat> dataset4; 00285 00286 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00287 00288 int ism = superModules_[i]; 00289 00290 if ( h00_ && h00_->GetBinContent(ism) != 0 ) { 00291 cerr << endl; 00292 cerr << " DCC failed " << h00_->GetBinContent(ism) << " times" << endl; 00293 cerr << endl; 00294 } 00295 00296 if ( verbose_ ) { 00297 cout << " " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00298 cout << endl; 00299 UtilsClient::printBadChannels(meg01_[ism-1], h01_[ism-1], true); 00300 UtilsClient::printBadChannels(meg01_[ism-1], h02_[ism-1], true); 00301 UtilsClient::printBadChannels(meg01_[ism-1], h03_[ism-1], true); 00302 UtilsClient::printBadChannels(meg01_[ism-1], h04_[ism-1], true); 00303 UtilsClient::printBadChannels(meg01_[ism-1], h05_[ism-1], true); 00304 00305 UtilsClient::printBadChannels(meg02_[ism-1], h06_[ism-1], true); 00306 UtilsClient::printBadChannels(meg02_[ism-1], h07_[ism-1], true); 00307 UtilsClient::printBadChannels(meg02_[ism-1], h08_[ism-1], true); 00308 UtilsClient::printBadChannels(meg02_[ism-1], h09_[ism-1], true); 00309 } 00310 00311 float num00; 00312 00313 num00 = 0.; 00314 00315 bool update0 = false; 00316 00317 if ( h00_ ) { 00318 num00 = h00_->GetBinContent(ism); 00319 if ( num00 > 0 ) update0 = true; 00320 } 00321 00322 float num01, num02, num03; 00323 00324 for ( int ix = 1; ix <= 50; ix++ ) { 00325 for ( int iy = 1; iy <= 50; iy++ ) { 00326 00327 int jx = ix + Numbers::ix0EE(ism); 00328 int jy = iy + Numbers::iy0EE(ism); 00329 00330 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00331 00332 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00333 00334 num01 = num02 = num03 = 0.; 00335 00336 bool update1 = false; 00337 00338 float numTot = -1.; 00339 00340 if ( h_[ism-1] ) numTot = h_[ism-1]->GetBinContent(ix, iy); 00341 00342 if ( h01_[ism-1] ) { 00343 num01 = h01_[ism-1]->GetBinContent(ix, iy); 00344 if ( num01 > 0 ) update1 = true; 00345 } 00346 00347 if ( h02_[ism-1] ) { 00348 num02 = h02_[ism-1]->GetBinContent(ix, iy); 00349 if ( num02 > 0 ) update1 = true; 00350 } 00351 00352 if ( h03_[ism-1] ) { 00353 num03 = h03_[ism-1]->GetBinContent(ix, iy); 00354 if ( num03 > 0 ) update1 = true; 00355 } 00356 00357 if ( update0 || update1 ) { 00358 00359 if ( Numbers::icEE(ism, jx, jy) == 1 ) { 00360 00361 if ( verbose_ ) { 00362 cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00363 cout << "(" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num00 << " " << num01 << " " << num02 << " " << num03 << endl; 00364 cout << endl; 00365 } 00366 00367 } 00368 00369 c1.setProcessedEvents(int(numTot)); 00370 c1.setProblematicEvents(int(num01+num02+num03)); 00371 c1.setProblemsGainZero(int(num01)); 00372 c1.setProblemsID(int(num02)); 00373 c1.setProblemsGainSwitch(int(num03)); 00374 00375 bool val; 00376 00377 val = true; 00378 if ( numTot > 0 ) { 00379 float errorRate1 = num00 / numTot; 00380 if ( errorRate1 > threshCry_ ) 00381 val = false; 00382 errorRate1 = ( num01 + num02 + num03 ) / numTot / 4.; 00383 if ( errorRate1 > threshCry_ ) 00384 val = false; 00385 } else { 00386 if ( num00 > 0 ) 00387 val = false; 00388 if ( ( num01 + num02 + num03 ) > 0 ) 00389 val = false; 00390 } 00391 c1.setTaskStatus(val); 00392 00393 int ic = Numbers::indexEE(ism, jx, jy); 00394 00395 if ( ic == -1 ) continue; 00396 00397 if ( econn ) { 00398 ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic); 00399 dataset1[ecid] = c1; 00400 } 00401 00402 status = status && val; 00403 00404 } 00405 00406 } 00407 } 00408 00409 float num04, num05; 00410 00411 for ( int ixt = 1; ixt <= 10; ixt++ ) { 00412 for ( int iyt = 1; iyt <= 10; iyt++ ) { 00413 00414 int jxt = Numbers::ix0EE(ism) + 1 + 5*(ixt-1); 00415 int jyt = Numbers::iy0EE(ism) + 1 + 5*(iyt-1); 00416 00417 if ( ism >= 1 && ism <= 9 ) jxt = 101 - jxt; 00418 00419 num04 = num05 = 0.; 00420 00421 bool update1 = false; 00422 00423 float numTot = -1.; 00424 00425 if ( h_[ism-1] ) { 00426 numTot = 0.; 00427 for ( int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) { 00428 for ( int iy = 1 + 5*(iyt-1); iy <= 5*iyt; iy++ ) { 00429 int jx = ix + Numbers::ix0EE(ism); 00430 int jy = iy + Numbers::iy0EE(ism); 00431 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00432 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00433 numTot += h_[ism-1]->GetBinContent(ix, iy); 00434 } 00435 } 00436 } 00437 00438 if ( h04_[ism-1] ) { 00439 for ( int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) { 00440 for ( int iy = 1 + 5*(iyt-1); iy <= 5*iyt; iy++ ) { 00441 int jx = ix + Numbers::ix0EE(ism); 00442 int jy = iy + Numbers::iy0EE(ism); 00443 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00444 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00445 num04 = h04_[ism-1]->GetBinContent(ix, iy); 00446 if ( num04 > 0 ) update1 = true; 00447 } 00448 } 00449 } 00450 00451 if ( h05_[ism-1] ) { 00452 for ( int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) { 00453 for ( int iy = 1 + 5*(iyt-1); iy <= 5*iyt; iy++ ) { 00454 int jx = ix + Numbers::ix0EE(ism); 00455 int jy = iy + Numbers::iy0EE(ism); 00456 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00457 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00458 num05 = h05_[ism-1]->GetBinContent(ix, iy); 00459 if ( num05 > 0 ) update1 = true; 00460 } 00461 } 00462 } 00463 00464 if ( update0 || update1 ) { 00465 00466 if ( Numbers::iTT(ism, EcalEndcap, jxt, jyt) == 1 ) { 00467 00468 if ( verbose_ ) { 00469 cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00470 cout << "(" << 1+(Numbers::ix0EE(ism)+1+5*(ixt-1))/5 << "," << 1+(Numbers::iy0EE(ism)+1+5*(iyt-1))/5 << ") " << num00 << " " << num04 << " " << num05 << endl; 00471 cout << endl; 00472 } 00473 00474 } 00475 00476 c2.setProcessedEvents(int(numTot)); 00477 c2.setProblematicEvents(int(num04+num05)); 00478 c2.setProblemsID(int(num04)); 00479 c2.setProblemsSize(int(num05)); 00480 c2.setProblemsLV1(int(-1.)); 00481 c2.setProblemsBunchX(int(-1.)); 00482 00483 bool val; 00484 00485 val = true; 00486 if ( numTot > 0 ) { 00487 float errorRate2 = num00 / numTot; 00488 if ( errorRate2 > threshCry_ ) 00489 val = false; 00490 errorRate2 = ( num04 + num05 ) / numTot / 2.; 00491 if ( errorRate2 > threshCry_ ) 00492 val = false; 00493 } else { 00494 if ( num00 > 0 ) 00495 val = false; 00496 if ( ( num04 + num05 ) > 0 ) 00497 val = false; 00498 } 00499 c2.setTaskStatus(val); 00500 00501 int itt = Numbers::iTT(ism, EcalEndcap, jxt, jyt); 00502 00503 if ( itt == -1 ) continue; 00504 00505 if ( econn ) { 00506 ecid = LogicID::getEcalLogicID("EE_readout_tower", Numbers::iSM(ism, EcalEndcap), itt); 00507 dataset2[ecid] = c2; 00508 } 00509 00510 status = status && val; 00511 00512 } 00513 00514 } 00515 } 00516 00517 float num06, num07; 00518 00519 for ( int ix = 1; ix <= 10; ix++ ) { 00520 for ( int iy = 1; iy <= 5; iy++ ) { 00521 00522 num06 = num07 = 0.; 00523 00524 bool update1 = false; 00525 00526 float numTot = -1.; 00527 00528 if ( hmem_[ism-1] ) numTot = hmem_[ism-1]->GetBinContent(ix, iy); 00529 00530 if ( h06_[ism-1] ) { 00531 num06 = h06_[ism-1]->GetBinContent(ix, iy); 00532 if ( num06 > 0 ) update1 = true; 00533 } 00534 00535 if ( h07_[ism-1] ) { 00536 num07 = h07_[ism-1]->GetBinContent(ix, iy); 00537 if ( num07 > 0 ) update1 = true; 00538 } 00539 00540 if ( update0 || update1 ) { 00541 00542 if ( ix ==1 && iy == 1 ) { 00543 00544 if ( verbose_ ) { 00545 cout << "Preparing dataset for mem of SM=" << ism << endl; 00546 cout << "(" << ix << "," << iy << ") " << num06 << " " << num07 << endl; 00547 cout << endl; 00548 } 00549 00550 } 00551 00552 c3.setProcessedEvents( int (numTot)); 00553 c3.setProblematicEvents(int (num06+num07)); 00554 c3.setProblemsID(int (num06) ); 00555 c3.setProblemsGainZero(int (num07)); 00556 // c3.setProblemsGainSwitch(int prob); 00557 00558 bool val; 00559 00560 val = true; 00561 if ( numTot > 0 ) { 00562 float errorRate1 = num00 / numTot; 00563 if ( errorRate1 > threshCry_ ) 00564 val = false; 00565 errorRate1 = ( num06 + num07 ) / numTot / 2.; 00566 if ( errorRate1 > threshCry_ ) 00567 val = false; 00568 } else { 00569 if ( num00 > 0 ) 00570 val = false; 00571 if ( ( num06 + num07 ) > 0 ) 00572 val = false; 00573 } 00574 c3. setTaskStatus(val); 00575 00576 int ic = EEIntegrityClient::chNum[ (ix-1)%5 ][ (iy-1) ] + (ix-1)/5 * 25; 00577 00578 if ( econn ) { 00579 ecid = LogicID::getEcalLogicID("EE_mem_channel", Numbers::iSM(ism, EcalEndcap), ic); 00580 dataset3[ecid] = c3; 00581 } 00582 00583 status = status && val; 00584 00585 } 00586 00587 } 00588 } 00589 00590 float num08, num09; 00591 00592 for ( int ixt = 1; ixt <= 2; ixt++ ) { 00593 00594 num08 = num09 = 0.; 00595 00596 bool update1 = false; 00597 00598 float numTot = -1.; 00599 00600 if ( hmem_[ism-1] ) { 00601 numTot = 0.; 00602 for ( int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) { 00603 for ( int iy = 1 ; iy <= 5; iy++ ) { 00604 numTot += hmem_[ism-1]->GetBinContent(ix, iy); 00605 } 00606 } 00607 } 00608 00609 if ( h08_[ism-1] ) { 00610 num08 = h08_[ism-1]->GetBinContent(ixt, 1); 00611 if ( num08 > 0 ) update1 = true; 00612 } 00613 00614 if ( h09_[ism-1] ) { 00615 num09 = h09_[ism-1]->GetBinContent(ixt, 1); 00616 if ( num09 > 0 ) update1 = true; 00617 } 00618 00619 if ( update0 || update1 ) { 00620 00621 if ( ixt == 1 ) { 00622 00623 if ( verbose_ ) { 00624 cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00625 cout << "(" << ixt << ") " << num08 << " " << num09 << endl; 00626 cout << endl; 00627 } 00628 00629 } 00630 00631 c4.setProcessedEvents( int(numTot) ); 00632 c4.setProblematicEvents( int(num08 + num09) ); 00633 c4.setProblemsID( int(num08) ); 00634 c4.setProblemsSize(int (num09) ); 00635 // setProblemsLV1(int LV1); 00636 // setProblemsBunchX(int bunchX); 00637 00638 bool val; 00639 00640 val = true; 00641 if ( numTot > 0 ) { 00642 float errorRate2 = num00 / numTot; 00643 if ( errorRate2 > threshCry_ ) 00644 val = false; 00645 errorRate2 = ( num08 + num09 ) / numTot / 2.; 00646 if ( errorRate2 > threshCry_ ) 00647 val = false; 00648 } else { 00649 if ( num00 > 0 ) 00650 val = false; 00651 if ( ( num08 + num09 ) > 0 ) 00652 val = false; 00653 } 00654 c4.setTaskStatus(val); 00655 00656 int itt = 68 + ixt; 00657 00658 if ( econn ) { 00659 ecid = LogicID::getEcalLogicID("EE_mem_TT", Numbers::iSM(ism, EcalEndcap), itt); 00660 dataset4[ecid] = c4; 00661 } 00662 00663 status = status && val; 00664 00665 } 00666 00667 } 00668 00669 } 00670 00671 if ( econn ) { 00672 try { 00673 if ( verbose_ ) cout << "Inserting MonConsistencyDat ..." << endl; 00674 if ( dataset1.size() != 0 ) econn->insertDataArraySet(&dataset1, moniov); 00675 if ( dataset2.size() != 0 ) econn->insertDataArraySet(&dataset2, moniov); 00676 if ( dataset3.size() != 0 ) econn->insertDataArraySet(&dataset3, moniov); 00677 if ( dataset4.size() != 0 ) econn->insertDataArraySet(&dataset4, moniov); 00678 if ( verbose_ ) cout << "done." << endl; 00679 } catch (runtime_error &e) { 00680 cerr << e.what() << endl; 00681 } 00682 } 00683 00684 if ( ! flag ) this->softReset(true); 00685 00686 return true; 00687 00688 }
friend class EESummaryClient [friend] |
Definition at line 33 of file EEIntegrityClient.h.
const int EEIntegrityClient::chNum [static, private] |
Initial value:
{ { 1, 2, 3, 4, 5}, {10, 9, 8, 7, 6}, {11, 12, 13, 14, 15}, {20, 19, 18, 17, 16}, {21, 22, 23, 24, 25} }
Definition at line 117 of file EEIntegrityClient.h.
bool EEIntegrityClient::cloneME_ [private] |
Definition at line 82 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), and EEIntegrityClient().
bool EEIntegrityClient::debug_ [private] |
Definition at line 85 of file EEIntegrityClient.h.
Referenced by analyze(), beginJob(), beginRun(), EEIntegrityClient(), endJob(), and endRun().
DQMStore* EEIntegrityClient::dqmStore_ [private] |
Definition at line 93 of file EEIntegrityClient.h.
Referenced by analyze(), beginJob(), cleanup(), setup(), and softReset().
bool EEIntegrityClient::enableCleanup_ [private] |
Definition at line 89 of file EEIntegrityClient.h.
Referenced by cleanup(), and EEIntegrityClient().
TH1F* EEIntegrityClient::h00_ [private] |
Definition at line 95 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h01_[18] [private] |
Definition at line 97 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h02_[18] [private] |
Definition at line 98 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h03_[18] [private] |
Definition at line 99 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h04_[18] [private] |
Definition at line 100 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h05_[18] [private] |
Definition at line 101 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h06_[18] [private] |
Definition at line 102 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h07_[18] [private] |
Definition at line 103 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h08_[18] [private] |
Definition at line 104 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h09_[18] [private] |
Definition at line 105 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::h_[18] [private] |
Definition at line 110 of file EEIntegrityClient.h.
Referenced by EESummaryClient::analyze(), analyze(), cleanup(), EEIntegrityClient(), and writeDb().
TH2F* EEIntegrityClient::hmem_[18] [private] |
Definition at line 111 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), and writeDb().
int EEIntegrityClient::ievt_ [private] |
Definition at line 79 of file EEIntegrityClient.h.
Referenced by analyze(), beginJob(), endJob(), and getEvtPerJob().
int EEIntegrityClient::jevt_ [private] |
Definition at line 80 of file EEIntegrityClient.h.
Referenced by analyze(), beginJob(), beginRun(), endRun(), and getEvtPerRun().
MonitorElement* EEIntegrityClient::meg01_[18] [private] |
Definition at line 107 of file EEIntegrityClient.h.
Referenced by EESummaryClient::analyze(), analyze(), cleanup(), EEIntegrityClient(), setup(), and writeDb().
MonitorElement* EEIntegrityClient::meg02_[18] [private] |
Definition at line 108 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), setup(), and writeDb().
std::string EEIntegrityClient::prefixME_ [private] |
Definition at line 87 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), setup(), and softReset().
std::vector<int> EEIntegrityClient::superModules_ [private] |
Definition at line 91 of file EEIntegrityClient.h.
Referenced by analyze(), cleanup(), EEIntegrityClient(), setup(), softReset(), and writeDb().
float EEIntegrityClient::threshCry_ [private] |
Definition at line 115 of file EEIntegrityClient.h.
Referenced by analyze(), EEIntegrityClient(), and writeDb().
bool EEIntegrityClient::verbose_ [private] |
Definition at line 84 of file EEIntegrityClient.h.
Referenced by EEIntegrityClient(), and writeDb().