#include <DQM/EcalEndcapMonitorClient/interface/EEPedestalClient.h>
Public Member Functions | |
void | analyze (void) |
Analyze. | |
void | beginJob (DQMStore *dqmStore) |
begin of job method | |
void | beginRun (void) |
begin of run method | |
void | cleanup (void) |
clean up method | |
EEPedestalClient (const edm::ParameterSet &ps) | |
Constructor. | |
void | endJob (void) |
end of job method | |
void | endRun (void) |
end of run method | |
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) |
create HTML page | |
void | setup (void) |
Setup. | |
void | softReset (bool flag) |
SoftReset. | |
bool | writeDb (EcalCondDBInterface *econn, RunIOV *runiov, MonRunIOV *moniov, bool &status, bool flag) |
Write data to DataBase. | |
virtual | ~EEPedestalClient () |
Destructor. | |
Private Attributes | |
bool | cloneME_ |
bool | debug_ |
float | discrepancyMean_ [3] |
float | discrepancyMeanPn_ [2] |
DQMStore * | dqmStore_ |
bool | enableCleanup_ |
float | expectedMean_ [3] |
float | expectedMeanPn_ [2] |
TProfile2D * | h01_ [18] |
TProfile2D * | h02_ [18] |
TProfile2D * | h03_ [18] |
TProfile * | i01_ [18] |
TProfile * | i02_ [18] |
int | ievt_ |
TProfile2D * | j01_ [18] |
TProfile2D * | j02_ [18] |
TProfile2D * | j03_ [18] |
int | jevt_ |
TProfile2D * | k01_ [18] |
TProfile2D * | k02_ [18] |
TProfile2D * | k03_ [18] |
MonitorElement * | meg01_ [18] |
MonitorElement * | meg02_ [18] |
MonitorElement * | meg03_ [18] |
MonitorElement * | meg04_ [18] |
MonitorElement * | meg05_ [18] |
MonitorElement * | mep01_ [18] |
MonitorElement * | mep02_ [18] |
MonitorElement * | mep03_ [18] |
MonitorElement * | mer01_ [18] |
MonitorElement * | mer02_ [18] |
MonitorElement * | mer03_ [18] |
MonitorElement * | mer04_ [18] |
MonitorElement * | mer05_ [18] |
MonitorElement * | mes01_ [18] |
MonitorElement * | mes02_ [18] |
MonitorElement * | mes03_ [18] |
MonitorElement * | met01_ [18] |
MonitorElement * | met02_ [18] |
MonitorElement * | met03_ [18] |
std::string | prefixME_ |
float | RMSThreshold_ [3] |
float | RMSThresholdInner_ [3] |
float | RMSThresholdPn_ [2] |
std::vector< int > | superModules_ |
bool | verbose_ |
Friends | |
class | EESummaryClient |
Definition at line 31 of file EEPedestalClient.h.
EEPedestalClient::EEPedestalClient | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 45 of file EEPedestalClient.cc.
References cloneME_, debug_, discrepancyMean_, discrepancyMeanPn_, enableCleanup_, expectedMean_, expectedMeanPn_, edm::ParameterSet::getUntrackedParameter(), h01_, h02_, h03_, i, i01_, i02_, j01_, j02_, j03_, k01_, k02_, k03_, meg01_, meg02_, meg03_, meg04_, meg05_, mep01_, mep02_, mep03_, mer01_, mer02_, mer03_, mer04_, mer05_, mes01_, mes02_, mes03_, met01_, met02_, met03_, prefixME_, RMSThreshold_, RMSThresholdInner_, RMSThresholdPn_, superModules_, and verbose_.
00045 { 00046 00047 // cloneME switch 00048 cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true); 00049 00050 // verbose switch 00051 verbose_ = ps.getUntrackedParameter<bool>("verbose", true); 00052 00053 // debug switch 00054 debug_ = ps.getUntrackedParameter<bool>("debug", false); 00055 00056 // prefixME path 00057 prefixME_ = ps.getUntrackedParameter<string>("prefixME", ""); 00058 00059 // enableCleanup_ switch 00060 enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false); 00061 00062 // vector of selected Super Modules (Defaults to all 18). 00063 superModules_.reserve(18); 00064 for ( unsigned int i = 1; i <= 18; i++ ) superModules_.push_back(i); 00065 superModules_ = ps.getUntrackedParameter<vector<int> >("superModules", superModules_); 00066 00067 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00068 00069 int ism = superModules_[i]; 00070 00071 h01_[ism-1] = 0; 00072 h02_[ism-1] = 0; 00073 h03_[ism-1] = 0; 00074 00075 j01_[ism-1] = 0; 00076 j02_[ism-1] = 0; 00077 j03_[ism-1] = 0; 00078 00079 k01_[ism-1] = 0; 00080 k02_[ism-1] = 0; 00081 k03_[ism-1] = 0; 00082 00083 i01_[ism-1] = 0; 00084 i02_[ism-1] = 0; 00085 00086 } 00087 00088 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00089 00090 int ism = superModules_[i]; 00091 00092 meg01_[ism-1] = 0; 00093 meg02_[ism-1] = 0; 00094 meg03_[ism-1] = 0; 00095 00096 meg04_[ism-1] = 0; 00097 meg05_[ism-1] = 0; 00098 00099 mep01_[ism-1] = 0; 00100 mep02_[ism-1] = 0; 00101 mep03_[ism-1] = 0; 00102 00103 mer01_[ism-1] = 0; 00104 mer02_[ism-1] = 0; 00105 mer03_[ism-1] = 0; 00106 00107 mer04_[ism-1] = 0; 00108 mer05_[ism-1] = 0; 00109 00110 mes01_[ism-1] = 0; 00111 mes02_[ism-1] = 0; 00112 mes03_[ism-1] = 0; 00113 00114 met01_[ism-1] = 0; 00115 met02_[ism-1] = 0; 00116 met03_[ism-1] = 0; 00117 00118 } 00119 00120 expectedMean_[0] = 200.0; 00121 expectedMean_[1] = 200.0; 00122 expectedMean_[2] = 200.0; 00123 00124 discrepancyMean_[0] = 25.0; 00125 discrepancyMean_[1] = 25.0; 00126 discrepancyMean_[2] = 25.0; 00127 00128 RMSThreshold_[0] = 1.0; 00129 RMSThreshold_[1] = 1.5; 00130 RMSThreshold_[2] = 2.5; 00131 00132 RMSThresholdInner_[0] = 2.0; 00133 RMSThresholdInner_[1] = 2.5; 00134 RMSThresholdInner_[2] = 3.5; 00135 00136 expectedMeanPn_[0] = 750.0; 00137 expectedMeanPn_[1] = 750.0; 00138 00139 discrepancyMeanPn_[0] = 100.0; 00140 discrepancyMeanPn_[1] = 100.0; 00141 00142 RMSThresholdPn_[0] = 1.0; 00143 RMSThresholdPn_[1] = 3.0; 00144 00145 }
EEPedestalClient::~EEPedestalClient | ( | ) | [virtual] |
Analyze.
Implements EEClient.
Definition at line 655 of file EEPedestalClient.cc.
References cloneME_, GenMuonPlsPt100GeV_cfg::cout, debug_, discrepancyMean_, discrepancyMeanPn_, dqmStore_, EcalEndcap, lat::endl(), expectedMean_, expectedMeanPn_, EcalErrorMask::fetchDataSet(), MonitorElement::Fill(), DQMStore::get(), UtilsClient::getBinStatistics(), LogicID::getEcalLogicID(), EcalLogicID::getLogicID(), EcalErrorDictionary::getMask(), h01_, h02_, h03_, histo, i, i01_, i02_, ievt_, Numbers::indexEE(), Numbers::iSM(), Numbers::iTT(), Numbers::ix0EE(), Numbers::iy0EE(), j, j01_, j02_, j03_, jevt_, k01_, k02_, k03_, m, UtilsClient::maskBinContent(), me, meg01_, meg02_, meg03_, meg04_, meg05_, mep01_, mep02_, mep03_, mer01_, mer02_, mer03_, mer04_, mer05_, mes01_, mes02_, mes03_, met01_, met02_, met03_, prefixME_, MonitorElement::Reset(), RMSThreshold_, RMSThresholdInner_, RMSThresholdPn_, Numbers::sEE(), MonitorElement::setBinContent(), funct::sqrt(), superModules_, and Numbers::validEE().
00655 { 00656 00657 ievt_++; 00658 jevt_++; 00659 if ( ievt_ % 10 == 0 ) { 00660 if ( debug_ ) cout << "EEPedestalClient: ievt/jevt = " << ievt_ << "/" << jevt_ << endl; 00661 } 00662 00663 uint64_t bits01 = 0; 00664 bits01 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_MEAN_WARNING"); 00665 bits01 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_RMS_WARNING"); 00666 bits01 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_MEAN_ERROR"); 00667 bits01 |= EcalErrorDictionary::getMask("PEDESTAL_LOW_GAIN_RMS_ERROR"); 00668 00669 uint64_t bits02 = 0; 00670 bits02 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_MEAN_WARNING"); 00671 bits02 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_RMS_WARNING"); 00672 bits02 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_MEAN_ERROR"); 00673 bits02 |= EcalErrorDictionary::getMask("PEDESTAL_MIDDLE_GAIN_RMS_ERROR"); 00674 00675 uint64_t bits03 = 0; 00676 bits03 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_MEAN_WARNING"); 00677 bits03 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_RMS_WARNING"); 00678 bits03 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_MEAN_ERROR"); 00679 bits03 |= EcalErrorDictionary::getMask("PEDESTAL_HIGH_GAIN_RMS_ERROR"); 00680 00681 map<EcalLogicID, RunCrystalErrorsDat> mask1; 00682 map<EcalLogicID, RunPNErrorsDat> mask2; 00683 map<EcalLogicID, RunTTErrorsDat> mask3; 00684 00685 EcalErrorMask::fetchDataSet(&mask1); 00686 EcalErrorMask::fetchDataSet(&mask2); 00687 EcalErrorMask::fetchDataSet(&mask3); 00688 00689 char histo[200]; 00690 00691 MonitorElement* me; 00692 00693 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00694 00695 int ism = superModules_[i]; 00696 00697 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain01/EEPT pedestal %s G01").c_str(), Numbers::sEE(ism).c_str()); 00698 me = dqmStore_->get(histo); 00699 h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] ); 00700 00701 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain06/EEPT pedestal %s G06").c_str(), Numbers::sEE(ism).c_str()); 00702 me = dqmStore_->get(histo); 00703 h02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h02_[ism-1] ); 00704 00705 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain12/EEPT pedestal %s G12").c_str(), Numbers::sEE(ism).c_str()); 00706 me = dqmStore_->get(histo); 00707 h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h03_[ism-1] ); 00708 00709 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain01/EEPT pedestal 3sum %s G01").c_str(), Numbers::sEE(ism).c_str()); 00710 me = dqmStore_->get(histo); 00711 j01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, j01_[ism-1] ); 00712 00713 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain06/EEPT pedestal 3sum %s G06").c_str(), Numbers::sEE(ism).c_str()); 00714 me = dqmStore_->get(histo); 00715 j02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, j02_[ism-1] ); 00716 00717 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain12/EEPT pedestal 3sum %s G12").c_str(), Numbers::sEE(ism).c_str()); 00718 me = dqmStore_->get(histo); 00719 j03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, j03_[ism-1] ); 00720 00721 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain01/EEPT pedestal 5sum %s G01").c_str(), Numbers::sEE(ism).c_str()); 00722 me = dqmStore_->get(histo); 00723 k01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, k01_[ism-1] ); 00724 00725 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain06/EEPT pedestal 5sum %s G06").c_str(), Numbers::sEE(ism).c_str()); 00726 me = dqmStore_->get(histo); 00727 k02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, k02_[ism-1] ); 00728 00729 sprintf(histo, (prefixME_ + "/EEPedestalTask/Gain12/EEPT pedestal 5sum %s G12").c_str(), Numbers::sEE(ism).c_str()); 00730 me = dqmStore_->get(histo); 00731 k03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, k03_[ism-1] ); 00732 00733 sprintf(histo, (prefixME_ + "/EEPedestalTask/PN/Gain01/EEPDT PNs pedestal %s G01").c_str(), Numbers::sEE(ism).c_str()); 00734 me = dqmStore_->get(histo); 00735 i01_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i01_[ism-1] ); 00736 00737 sprintf(histo, (prefixME_ + "/EEPedestalTask/PN/Gain16/EEPDT PNs pedestal %s G16").c_str(), Numbers::sEE(ism).c_str()); 00738 me = dqmStore_->get(histo); 00739 i02_[ism-1] = UtilsClient::getHisto<TProfile*>( me, cloneME_, i02_[ism-1] ); 00740 00741 if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); 00742 if ( meg02_[ism-1] ) meg02_[ism-1]->Reset(); 00743 if ( meg03_[ism-1] ) meg03_[ism-1]->Reset(); 00744 00745 if ( meg04_[ism-1] ) meg04_[ism-1]->Reset(); 00746 if ( meg05_[ism-1] ) meg05_[ism-1]->Reset(); 00747 00748 if ( mep01_[ism-1] ) mep01_[ism-1]->Reset(); 00749 if ( mep02_[ism-1] ) mep02_[ism-1]->Reset(); 00750 if ( mep03_[ism-1] ) mep03_[ism-1]->Reset(); 00751 00752 if ( mer01_[ism-1] ) mer01_[ism-1]->Reset(); 00753 if ( mer02_[ism-1] ) mer02_[ism-1]->Reset(); 00754 if ( mer03_[ism-1] ) mer03_[ism-1]->Reset(); 00755 00756 if ( mer04_[ism-1] ) mer04_[ism-1]->Reset(); 00757 if ( mer05_[ism-1] ) mer05_[ism-1]->Reset(); 00758 00759 if ( mes01_[ism-1] ) mes01_[ism-1]->Reset(); 00760 if ( mes02_[ism-1] ) mes02_[ism-1]->Reset(); 00761 if ( mes03_[ism-1] ) mes03_[ism-1]->Reset(); 00762 00763 if ( met01_[ism-1] ) met01_[ism-1]->Reset(); 00764 if ( met02_[ism-1] ) met02_[ism-1]->Reset(); 00765 if ( met03_[ism-1] ) met03_[ism-1]->Reset(); 00766 00767 for ( int ix = 1; ix <= 50; ix++ ) { 00768 for ( int iy = 1; iy <= 50; iy++ ) { 00769 00770 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ix, iy, 6.); 00771 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent(ix, iy, 6.); 00772 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ix, iy, 6.); 00773 00774 int jx = ix + Numbers::ix0EE(ism); 00775 int jy = iy + Numbers::iy0EE(ism); 00776 00777 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00778 00779 bool innerCrystals = fabs(jx-50) >= 5 && fabs(jx-50) <= 10 && fabs(jy-50) >= 5 && fabs(jy-50) <= 10; 00780 00781 if ( Numbers::validEE(ism, jx, jy) ) { 00782 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ix, iy, 2.); 00783 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent(ix, iy, 2.); 00784 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ix, iy, 2.); 00785 } 00786 00787 bool update01; 00788 bool update02; 00789 bool update03; 00790 00791 float num01, num02, num03; 00792 float mean01, mean02, mean03; 00793 float rms01, rms02, rms03; 00794 00795 update01 = UtilsClient::getBinStatistics(h01_[ism-1], ix, iy, num01, mean01, rms01); 00796 update02 = UtilsClient::getBinStatistics(h02_[ism-1], ix, iy, num02, mean02, rms02); 00797 update03 = UtilsClient::getBinStatistics(h03_[ism-1], ix, iy, num03, mean03, rms03); 00798 00799 if ( update01 ) { 00800 00801 float val; 00802 00803 val = 1.; 00804 if ( fabs(mean01 - expectedMean_[0]) > discrepancyMean_[0] ) 00805 val = 0.; 00806 if ( (!innerCrystals && rms01 > RMSThreshold_[0]) || 00807 (innerCrystals && rms01 > RMSThresholdInner_[0]) ) 00808 val = 0.; 00809 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ix, iy, val); 00810 00811 if ( mep01_[ism-1] ) mep01_[ism-1]->Fill(mean01); 00812 if ( mer01_[ism-1] ) mer01_[ism-1]->Fill(rms01); 00813 00814 } 00815 00816 if ( update02 ) { 00817 00818 float val; 00819 00820 val = 1.; 00821 if ( fabs(mean02 - expectedMean_[1]) > discrepancyMean_[1] ) 00822 val = 0.; 00823 if ( (!innerCrystals && rms02 > RMSThreshold_[1]) || 00824 (innerCrystals && rms02 > RMSThresholdInner_[1]) ) 00825 val = 0.; 00826 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent(ix, iy, val); 00827 00828 if ( mep02_[ism-1] ) mep02_[ism-1]->Fill(mean02); 00829 if ( mer02_[ism-1] ) mer02_[ism-1]->Fill(rms02); 00830 00831 } 00832 00833 if ( update03 ) { 00834 00835 float val; 00836 00837 val = 1.; 00838 if ( fabs(mean03 - expectedMean_[2]) > discrepancyMean_[2] ) 00839 val = 0.; 00840 if ( (!innerCrystals && rms03 > RMSThreshold_[2]) || 00841 (innerCrystals && rms03 > RMSThresholdInner_[2]) ) 00842 val = 0.; 00843 00844 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ix, iy, val); 00845 00846 if ( mep03_[ism-1] ) mep03_[ism-1]->Fill(mean03); 00847 if ( mer03_[ism-1] ) mer03_[ism-1]->Fill(rms03); 00848 00849 } 00850 00851 // masking 00852 00853 if ( mask1.size() != 0 ) { 00854 map<EcalLogicID, RunCrystalErrorsDat>::const_iterator m; 00855 for (m = mask1.begin(); m != mask1.end(); m++) { 00856 00857 int jx = ix + Numbers::ix0EE(ism); 00858 int jy = iy + Numbers::iy0EE(ism); 00859 00860 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00861 00862 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00863 00864 int ic = Numbers::indexEE(ism, jx, jy); 00865 00866 if ( ic == -1 ) continue; 00867 00868 EcalLogicID ecid = m->first; 00869 00870 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic).getLogicID() ) { 00871 if ( (m->second).getErrorBits() & bits01 ) { 00872 UtilsClient::maskBinContent( meg01_[ism-1], ix, iy ); 00873 } 00874 if ( (m->second).getErrorBits() & bits02 ) { 00875 UtilsClient::maskBinContent( meg02_[ism-1], ix, iy ); 00876 } 00877 if ( (m->second).getErrorBits() & bits03 ) { 00878 UtilsClient::maskBinContent( meg03_[ism-1], ix, iy ); 00879 } 00880 } 00881 00882 } 00883 } 00884 00885 // TT masking 00886 00887 if ( mask3.size() != 0 ) { 00888 map<EcalLogicID, RunTTErrorsDat>::const_iterator m; 00889 for (m = mask3.begin(); m != mask3.end(); m++) { 00890 00891 EcalLogicID ecid = m->first; 00892 00893 int itt = Numbers::iTT(ism, EcalEndcap, ix, iy); 00894 00895 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_readout_tower", Numbers::iSM(ism, EcalEndcap), itt).getLogicID() ) { 00896 if ( (m->second).getErrorBits() & bits01 ) { 00897 UtilsClient::maskBinContent( meg01_[ism-1], ix, iy ); 00898 } 00899 if ( (m->second).getErrorBits() & bits02 ) { 00900 UtilsClient::maskBinContent( meg02_[ism-1], ix, iy ); 00901 } 00902 if ( (m->second).getErrorBits() & bits03 ) { 00903 UtilsClient::maskBinContent( meg03_[ism-1], ix, iy ); 00904 } 00905 } 00906 00907 } 00908 } 00909 00910 } 00911 } 00912 00913 // PN diodes 00914 00915 for ( int i = 1; i <= 10; i++ ) { 00916 00917 if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 2. ); 00918 if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. ); 00919 00920 bool update01; 00921 bool update02; 00922 00923 float num01, num02; 00924 float mean01, mean02; 00925 float rms01, rms02; 00926 00927 update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01); 00928 update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02); 00929 00930 // filling projections 00931 if ( mer04_[ism-1] ) mer04_[ism-1]->Fill(rms01); 00932 if ( mer05_[ism-1] ) mer05_[ism-1]->Fill(rms02); 00933 00934 if ( update01 ) { 00935 00936 float val; 00937 00938 val = 1.; 00939 if ( mean01 < (expectedMeanPn_[0] - discrepancyMeanPn_[0]) 00940 || (expectedMeanPn_[0] + discrepancyMeanPn_[0]) < mean01) 00941 val = 0.; 00942 if ( rms01 > RMSThresholdPn_[0]) 00943 val = 0.; 00944 00945 if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent(i, 1, val); 00946 00947 } 00948 00949 if ( update02 ) { 00950 00951 float val; 00952 00953 val = 1.; 00954 // if ( mean02 < pedestalThresholdPn_ ) 00955 if ( mean02 < (expectedMeanPn_[1] - discrepancyMeanPn_[1]) 00956 || (expectedMeanPn_[1] + discrepancyMeanPn_[1]) < mean02) 00957 val = 0.; 00958 if ( rms02 > RMSThresholdPn_[1]) 00959 val = 0.; 00960 00961 if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent(i, 1, val); 00962 } 00963 00964 // masking 00965 00966 if ( mask2.size() != 0 ) { 00967 map<EcalLogicID, RunPNErrorsDat>::const_iterator m; 00968 for (m = mask2.begin(); m != mask2.end(); m++) { 00969 00970 EcalLogicID ecid = m->first; 00971 00972 if ( ecid.getLogicID() == LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1).getLogicID() ) { 00973 if ( (m->second).getErrorBits() & bits01 ) { 00974 UtilsClient::maskBinContent( meg04_[ism-1], i, 1 ); 00975 } 00976 if ( (m->second).getErrorBits() & bits03 ) { 00977 UtilsClient::maskBinContent( meg05_[ism-1], i, 1 ); 00978 } 00979 } 00980 00981 } 00982 } 00983 00984 } 00985 00986 for ( int ix = 1; ix <= 50; ix++ ) { 00987 for ( int iy = 1; iy <= 50; iy++ ) { 00988 00989 float x3val01; 00990 float x3val02; 00991 float x3val03; 00992 00993 float y3val01; 00994 float y3val02; 00995 float y3val03; 00996 00997 float z3val01; 00998 float z3val02; 00999 float z3val03; 01000 01001 float x5val01; 01002 float x5val02; 01003 float x5val03; 01004 01005 float y5val01; 01006 float y5val02; 01007 float y5val03; 01008 01009 float z5val01; 01010 float z5val02; 01011 float z5val03; 01012 01013 if ( mes01_[ism-1] ) mes01_[ism-1]->setBinContent(ix, iy, -999.); 01014 if ( mes02_[ism-1] ) mes02_[ism-1]->setBinContent(ix, iy, -999.); 01015 if ( mes03_[ism-1] ) mes03_[ism-1]->setBinContent(ix, iy, -999.); 01016 01017 if ( met01_[ism-1] ) met01_[ism-1]->setBinContent(ix, iy, -999.); 01018 if ( met02_[ism-1] ) met02_[ism-1]->setBinContent(ix, iy, -999.); 01019 if ( met03_[ism-1] ) met03_[ism-1]->setBinContent(ix, iy, -999.); 01020 01021 int jx = ix + Numbers::ix0EE(ism); 01022 int jy = iy + Numbers::iy0EE(ism); 01023 01024 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 01025 01026 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 01027 01028 if ( ix >= 2 && ix <= 49 && iy >= 2 && iy <= 49 ) { 01029 01030 x3val01 = 0.; 01031 x3val02 = 0.; 01032 x3val03 = 0.; 01033 for ( int i = -1; i <= +1; i++ ) { 01034 for ( int j = -1; j <= +1; j++ ) { 01035 01036 if ( h01_[ism-1] ) x3val01 = x3val01 + h01_[ism-1]->GetBinError(ix+i, iy+j) * 01037 h01_[ism-1]->GetBinError(ix+i, iy+j); 01038 01039 if ( h02_[ism-1] ) x3val02 = x3val02 + h02_[ism-1]->GetBinError(ix+i, iy+j) * 01040 h02_[ism-1]->GetBinError(ix+i, iy+j); 01041 01042 if ( h03_[ism-1] ) x3val03 = x3val03 + h03_[ism-1]->GetBinError(ix+i, iy+j) * 01043 h03_[ism-1]->GetBinError(ix+i, iy+j); 01044 01045 } 01046 } 01047 x3val01 = x3val01 / (9.*9.); 01048 x3val02 = x3val02 / (9.*9.); 01049 x3val03 = x3val03 / (9.*9.); 01050 01051 y3val01 = 0.; 01052 if ( j01_[ism-1] ) y3val01 = j01_[ism-1]->GetBinError(ix, iy) * 01053 j01_[ism-1]->GetBinError(ix, iy); 01054 01055 y3val02 = 0.; 01056 if ( j02_[ism-1] ) y3val02 = j02_[ism-1]->GetBinError(ix, iy) * 01057 j02_[ism-1]->GetBinError(ix, iy); 01058 01059 y3val03 = 0.; 01060 if ( j03_[ism-1] ) y3val03 = j03_[ism-1]->GetBinError(ix, iy) * 01061 j03_[ism-1]->GetBinError(ix, iy); 01062 01063 z3val01 = -999.; 01064 if ( x3val01 != 0 && y3val01 != 0 ) z3val01 = sqrt(fabs(x3val01 - y3val01)); 01065 if ( (x3val01 - y3val01) < 0 ) z3val01 = -z3val01; 01066 01067 if ( mes01_[ism-1] ) mes01_[ism-1]->setBinContent(ix, iy, z3val01); 01068 01069 z3val02 = -999.; 01070 if ( x3val02 != 0 && y3val02 != 0 ) z3val02 = sqrt(fabs(x3val02 - y3val02)); 01071 if ( (x3val02 - y3val02) < 0 ) z3val02 = -z3val02; 01072 01073 if ( mes02_[ism-1] ) mes02_[ism-1]->setBinContent(ix, iy, z3val02); 01074 01075 z3val03 = -999.; 01076 if ( x3val03 != 0 && y3val03 != 0 ) z3val03 = sqrt(fabs(x3val03 - y3val03)); 01077 if ( (x3val03 - y3val03) < 0 ) z3val03 = -z3val03; 01078 01079 if ( mes03_[ism-1] ) mes03_[ism-1]->setBinContent(ix, iy, z3val03); 01080 01081 } 01082 01083 if ( ix >= 3 && ix <= 48 && iy >= 3 && iy <= 48 ) { 01084 01085 x5val01 = 0.; 01086 x5val02 = 0.; 01087 x5val03 = 0.; 01088 for ( int i = -2; i <= +2; i++ ) { 01089 for ( int j = -2; j <= +2; j++ ) { 01090 01091 if ( h01_[ism-1] ) x5val01 = x5val01 + h01_[ism-1]->GetBinError(ix+i, iy+j) * 01092 h01_[ism-1]->GetBinError(ix+i, iy+j); 01093 01094 if ( h02_[ism-1] ) x5val02 = x5val02 + h02_[ism-1]->GetBinError(ix+i, iy+j) * 01095 h02_[ism-1]->GetBinError(ix+i, iy+j); 01096 01097 if ( h03_[ism-1] ) x5val03 = x5val03 + h03_[ism-1]->GetBinError(ix+i, iy+j) * 01098 h03_[ism-1]->GetBinError(ix+i, iy+j); 01099 01100 } 01101 } 01102 x5val01 = x5val01 / (25.*25.); 01103 x5val02 = x5val02 / (25.*25.); 01104 x5val03 = x5val03 / (25.*25.); 01105 01106 y5val01 = 0.; 01107 if ( k01_[ism-1] ) y5val01 = k01_[ism-1]->GetBinError(ix, iy) * 01108 k01_[ism-1]->GetBinError(ix, iy); 01109 01110 y5val02 = 0.; 01111 if ( k02_[ism-1] ) y5val02 = k02_[ism-1]->GetBinError(ix, iy) * 01112 k02_[ism-1]->GetBinError(ix, iy); 01113 01114 y5val03 = 0.; 01115 if ( k03_[ism-1] ) y5val03 = k03_[ism-1]->GetBinError(ix, iy) * 01116 k03_[ism-1]->GetBinError(ix, iy); 01117 01118 z5val01 = -999.; 01119 if ( x5val01 != 0 && y5val01 != 0 ) z5val01 = sqrt(fabs(x5val01 - y5val01)); 01120 if ( (x5val01 - y5val01) < 0 ) z5val01 = -z5val01; 01121 01122 if ( met01_[ism-1] ) met01_[ism-1]->setBinContent(ix, iy, z5val01); 01123 01124 z5val02 = -999.; 01125 if ( x5val02 != 0 && y5val02 != 0 ) z5val02 = sqrt(fabs(x5val02 - y5val02)); 01126 if ( (x5val02 - y5val02) < 0 ) z5val02 = -z5val02; 01127 01128 if ( met02_[ism-1] ) met02_[ism-1]->setBinContent(ix, iy, z5val02); 01129 01130 z5val03 = -999.; 01131 if ( x5val03 != 0 && y5val03 != 0 ) z5val03 = sqrt(fabs(x5val03 - y5val03)); 01132 if ( (x5val03 - y5val03) < 0 ) z5val03 = -z5val03; 01133 01134 if ( met03_[ism-1] ) met03_[ism-1]->setBinContent(ix, iy, z5val03); 01135 01136 } 01137 01138 } 01139 } 01140 01141 } 01142 01143 }
begin of job method
Implements EEClient.
Definition at line 151 of file EEPedestalClient.cc.
References GenMuonPlsPt100GeV_cfg::cout, debug_, dqmStore_, lat::endl(), ievt_, and jevt_.
00151 { 00152 00153 dqmStore_ = dqmStore; 00154 00155 if ( debug_ ) cout << "EEPedestalClient: beginJob" << endl; 00156 00157 ievt_ = 0; 00158 jevt_ = 0; 00159 00160 }
begin of run method
Implements EEClient.
Definition at line 162 of file EEPedestalClient.cc.
References GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), jevt_, and setup().
00162 { 00163 00164 if ( debug_ ) cout << "EEPedestalClient: beginRun" << endl; 00165 00166 jevt_ = 0; 00167 00168 this->setup(); 00169 00170 }
clean up method
Implements EEClient.
Definition at line 370 of file EEPedestalClient.cc.
References cloneME_, dqmStore_, enableCleanup_, edm::getName(), h01_, h02_, h03_, i, i01_, i02_, j01_, j02_, j03_, k01_, k02_, k03_, meg01_, meg02_, meg03_, meg04_, meg05_, mep01_, mep02_, mep03_, mer01_, mer02_, mer03_, mer04_, mer05_, mes01_, mes02_, mes03_, met01_, met02_, met03_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.
Referenced by endJob(), and endRun().
00370 { 00371 00372 if ( ! enableCleanup_ ) return; 00373 00374 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00375 00376 int ism = superModules_[i]; 00377 00378 if ( cloneME_ ) { 00379 if ( h01_[ism-1] ) delete h01_[ism-1]; 00380 if ( h02_[ism-1] ) delete h02_[ism-1]; 00381 if ( h03_[ism-1] ) delete h03_[ism-1]; 00382 00383 if ( j01_[ism-1] ) delete j01_[ism-1]; 00384 if ( j02_[ism-1] ) delete j02_[ism-1]; 00385 if ( j03_[ism-1] ) delete j03_[ism-1]; 00386 00387 if ( k01_[ism-1] ) delete k01_[ism-1]; 00388 if ( k02_[ism-1] ) delete k02_[ism-1]; 00389 if ( k03_[ism-1] ) delete k03_[ism-1]; 00390 00391 if ( i01_[ism-1] ) delete i01_[ism-1]; 00392 if ( i02_[ism-1] ) delete i02_[ism-1]; 00393 } 00394 00395 h01_[ism-1] = 0; 00396 h02_[ism-1] = 0; 00397 h03_[ism-1] = 0; 00398 00399 j01_[ism-1] = 0; 00400 j02_[ism-1] = 0; 00401 j03_[ism-1] = 0; 00402 00403 k01_[ism-1] = 0; 00404 k02_[ism-1] = 0; 00405 k03_[ism-1] = 0; 00406 00407 i01_[ism-1] = 0; 00408 i02_[ism-1] = 0; 00409 00410 } 00411 00412 dqmStore_->setCurrentFolder( prefixME_ + "/EEPedestalClient" ); 00413 00414 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00415 00416 int ism = superModules_[i]; 00417 00418 if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); 00419 meg01_[ism-1] = 0; 00420 if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() ); 00421 meg02_[ism-1] = 0; 00422 if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() ); 00423 meg03_[ism-1] = 0; 00424 00425 if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() ); 00426 meg04_[ism-1] = 0; 00427 if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() ); 00428 meg05_[ism-1] = 0; 00429 00430 if ( mep01_[ism-1] ) dqmStore_->removeElement( mep01_[ism-1]->getName() ); 00431 mep01_[ism-1] = 0; 00432 if ( mep02_[ism-1] ) dqmStore_->removeElement( mep02_[ism-1]->getName() ); 00433 mep02_[ism-1] = 0; 00434 if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() ); 00435 mep03_[ism-1] = 0; 00436 00437 if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() ); 00438 mer01_[ism-1] = 0; 00439 if ( mer02_[ism-1] ) dqmStore_->removeElement( mer02_[ism-1]->getName() ); 00440 mer02_[ism-1] = 0; 00441 if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() ); 00442 mer03_[ism-1] = 0; 00443 00444 if ( mer04_[ism-1] ) dqmStore_->removeElement( mer04_[ism-1]->getName() ); 00445 mer04_[ism-1] = 0; 00446 if ( mer05_[ism-1] ) dqmStore_->removeElement( mer05_[ism-1]->getName() ); 00447 mer05_[ism-1] = 0; 00448 00449 if ( mes01_[ism-1] ) dqmStore_->removeElement( mes01_[ism-1]->getName() ); 00450 mes01_[ism-1] = 0; 00451 if ( mes02_[ism-1] ) dqmStore_->removeElement( mes02_[ism-1]->getName() ); 00452 mes02_[ism-1] = 0; 00453 if ( mes03_[ism-1] ) dqmStore_->removeElement( mes03_[ism-1]->getName() ); 00454 mes03_[ism-1] = 0; 00455 00456 if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() ); 00457 met01_[ism-1] = 0; 00458 if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() ); 00459 met02_[ism-1] = 0; 00460 if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() ); 00461 met03_[ism-1] = 0; 00462 00463 } 00464 00465 }
end of job method
Implements EEClient.
Definition at line 172 of file EEPedestalClient.cc.
References cleanup(), GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), and ievt_.
00172 { 00173 00174 if ( debug_ ) cout << "EEPedestalClient: endJob, ievt = " << ievt_ << endl; 00175 00176 this->cleanup(); 00177 00178 }
end of run method
Implements EEClient.
Definition at line 180 of file EEPedestalClient.cc.
References cleanup(), GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), and jevt_.
00180 { 00181 00182 if ( debug_ ) cout << "EEPedestalClient: endRun, jevt = " << jevt_ << endl; 00183 00184 this->cleanup(); 00185 00186 }
Get Functions.
Implements EEClient.
Definition at line 74 of file EEPedestalClient.h.
References ievt_.
00074 { return ievt_; }
void EEPedestalClient::htmlOutput | ( | int | run, | |
std::string & | htmlDir, | |||
std::string & | htmlName | |||
) | [virtual] |
create HTML page
run | run number | |
htmlDir | path to HTML file | |
htmlName | HTML file name |
Implements EEClient.
Setup.
Implements EEClient.
Definition at line 188 of file EEPedestalClient.cc.
References DQMStore::book1D(), DQMStore::book2D(), dqmStore_, edm::getName(), histo, i, Numbers::ix0EE(), Numbers::iy0EE(), meg01_, meg02_, meg03_, meg04_, meg05_, mep01_, mep02_, mep03_, mer01_, mer02_, mer03_, mer04_, mer05_, mes01_, mes02_, mes03_, met01_, met02_, met03_, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), superModules_, and Numbers::validEE().
Referenced by beginRun().
00188 { 00189 00190 char histo[200]; 00191 00192 dqmStore_->setCurrentFolder( prefixME_ + "/EEPedestalClient" ); 00193 00194 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00195 00196 int ism = superModules_[i]; 00197 00198 if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); 00199 sprintf(histo, "EEPT pedestal quality G01 %s", Numbers::sEE(ism).c_str()); 00200 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.); 00201 meg01_[ism-1]->setAxisTitle("jx", 1); 00202 meg01_[ism-1]->setAxisTitle("jy", 2); 00203 if ( meg02_[ism-1] ) dqmStore_->removeElement( meg02_[ism-1]->getName() ); 00204 sprintf(histo, "EEPT pedestal quality G06 %s", Numbers::sEE(ism).c_str()); 00205 meg02_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00206 meg02_[ism-1]->setAxisTitle("jx", 1); 00207 meg02_[ism-1]->setAxisTitle("jy", 2); 00208 if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() ); 00209 sprintf(histo, "EEPT pedestal quality G12 %s", Numbers::sEE(ism).c_str()); 00210 meg03_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00211 meg03_[ism-1]->setAxisTitle("jx", 1); 00212 meg03_[ism-1]->setAxisTitle("jy", 2); 00213 00214 if ( meg04_[ism-1] ) dqmStore_->removeElement( meg04_[ism-1]->getName() ); 00215 sprintf(histo, "EEPT pedestal quality PNs G01 %s", Numbers::sEE(ism).c_str()); 00216 meg04_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.); 00217 meg04_[ism-1]->setAxisTitle("pseudo-strip", 1); 00218 meg04_[ism-1]->setAxisTitle("channel", 2); 00219 if ( meg05_[ism-1] ) dqmStore_->removeElement( meg05_[ism-1]->getName() ); 00220 sprintf(histo, "EEPT pedestal quality PNs G16 %s", Numbers::sEE(ism).c_str()); 00221 meg05_[ism-1] = dqmStore_->book2D(histo, histo, 10, 0., 10., 1, 0., 5.); 00222 meg05_[ism-1]->setAxisTitle("pseudo-strip", 1); 00223 meg05_[ism-1]->setAxisTitle("channel", 2); 00224 00225 if ( mep01_[ism-1] ) dqmStore_->removeElement( mep01_[ism-1]->getName() ); 00226 sprintf(histo, "EEPT pedestal mean G01 %s", Numbers::sEE(ism).c_str()); 00227 mep01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.); 00228 mep01_[ism-1]->setAxisTitle("mean", 1); 00229 if ( mep02_[ism-1] ) dqmStore_->removeElement( mep02_[ism-1]->getName() ); 00230 sprintf(histo, "EEPT pedestal mean G06 %s", Numbers::sEE(ism).c_str()); 00231 mep02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.); 00232 mep02_[ism-1]->setAxisTitle("mean", 1); 00233 if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() ); 00234 sprintf(histo, "EEPT pedestal mean G12 %s", Numbers::sEE(ism).c_str()); 00235 mep03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.); 00236 mep03_[ism-1]->setAxisTitle("mean", 1); 00237 00238 if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() ); 00239 sprintf(histo, "EEPT pedestal rms G01 %s", Numbers::sEE(ism).c_str()); 00240 mer01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.); 00241 mer01_[ism-1]->setAxisTitle("rms", 1); 00242 if ( mer02_[ism-1] ) dqmStore_->removeElement( mer02_[ism-1]->getName() ); 00243 sprintf(histo, "EEPT pedestal rms G06 %s", Numbers::sEE(ism).c_str()); 00244 mer02_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.); 00245 mer02_[ism-1]->setAxisTitle("rms", 1); 00246 if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() ); 00247 sprintf(histo, "EEPT pedestal rms G12 %s", Numbers::sEE(ism).c_str()); 00248 mer03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.); 00249 mer03_[ism-1]->setAxisTitle("rms", 1); 00250 00251 if ( mer04_[ism-1] ) dqmStore_->removeElement( mer04_[ism-1]->getName() ); 00252 sprintf(histo, "EEPDT PNs pedestal rms %s G01", Numbers::sEE(ism).c_str()); 00253 mer04_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.); 00254 mer04_[ism-1]->setAxisTitle("rms", 1); 00255 if ( mer05_[ism-1] ) dqmStore_->removeElement( mer05_[ism-1]->getName() ); 00256 sprintf(histo, "EEPDT PNs pedestal rms %s G16", Numbers::sEE(ism).c_str()); 00257 mer05_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.); 00258 mer05_[ism-1]->setAxisTitle("rms", 1); 00259 00260 if ( mes01_[ism-1] ) dqmStore_->removeElement( mes01_[ism-1]->getName() ); 00261 sprintf(histo, "EEPT pedestal 3sum G01 %s", Numbers::sEE(ism).c_str()); 00262 mes01_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00263 mes01_[ism-1]->setAxisTitle("jx", 1); 00264 mes01_[ism-1]->setAxisTitle("jy", 2); 00265 if ( mes02_[ism-1] ) dqmStore_->removeElement( mes02_[ism-1]->getName() ); 00266 sprintf(histo, "EEPT pedestal 3sum G06 %s", Numbers::sEE(ism).c_str()); 00267 mes02_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00268 mes02_[ism-1]->setAxisTitle("jx", 1); 00269 mes02_[ism-1]->setAxisTitle("jy", 2); 00270 if ( mes03_[ism-1] ) dqmStore_->removeElement( mes03_[ism-1]->getName() ); 00271 sprintf(histo, "EEPT pedestal 3sum G12 %s", Numbers::sEE(ism).c_str()); 00272 mes03_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00273 mes03_[ism-1]->setAxisTitle("jx", 1); 00274 mes03_[ism-1]->setAxisTitle("jy", 2); 00275 00276 if ( met01_[ism-1] ) dqmStore_->removeElement( met01_[ism-1]->getName() ); 00277 sprintf(histo, "EEPT pedestal 5sum G01 %s", Numbers::sEE(ism).c_str()); 00278 met01_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00279 met01_[ism-1]->setAxisTitle("jx", 1); 00280 met01_[ism-1]->setAxisTitle("jy", 2); 00281 if ( met02_[ism-1] ) dqmStore_->removeElement( met02_[ism-1]->getName() ); 00282 sprintf(histo, "EEPT pedestal 5sum G06 %s", Numbers::sEE(ism).c_str()); 00283 met02_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00284 met02_[ism-1]->setAxisTitle("jx", 1); 00285 met02_[ism-1]->setAxisTitle("jy", 2); 00286 if ( met03_[ism-1] ) dqmStore_->removeElement( met03_[ism-1]->getName() ); 00287 sprintf(histo, "EEPT pedestal 5sum G12 %s", Numbers::sEE(ism).c_str()); 00288 met03_[ism-1] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.); 00289 met03_[ism-1]->setAxisTitle("jx", 1); 00290 met03_[ism-1]->setAxisTitle("jy", 2); 00291 00292 } 00293 00294 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00295 00296 int ism = superModules_[i]; 00297 00298 if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); 00299 if ( meg02_[ism-1] ) meg02_[ism-1]->Reset(); 00300 if ( meg03_[ism-1] ) meg03_[ism-1]->Reset(); 00301 00302 if ( meg04_[ism-1] ) meg04_[ism-1]->Reset(); 00303 if ( meg05_[ism-1] ) meg05_[ism-1]->Reset(); 00304 00305 for ( int ix = 1; ix <= 50; ix++ ) { 00306 for ( int iy = 1; iy <= 50; iy++ ) { 00307 00308 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 6. ); 00309 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 6. ); 00310 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 6. ); 00311 00312 int jx = ix + Numbers::ix0EE(ism); 00313 int jy = iy + Numbers::iy0EE(ism); 00314 00315 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00316 00317 if ( Numbers::validEE(ism, jx, jy) ) { 00318 if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ix, iy, 2. ); 00319 if ( meg02_[ism-1] ) meg02_[ism-1]->setBinContent( ix, iy, 2. ); 00320 if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent( ix, iy, 2. ); 00321 } 00322 00323 } 00324 } 00325 00326 for ( int i = 1; i <= 10; i++ ) { 00327 00328 if ( meg04_[ism-1] ) meg04_[ism-1]->setBinContent( i, 1, 2. ); 00329 if ( meg05_[ism-1] ) meg05_[ism-1]->setBinContent( i, 1, 2. ); 00330 00331 } 00332 00333 if ( mep01_[ism-1] ) mep01_[ism-1]->Reset(); 00334 if ( mep02_[ism-1] ) mep02_[ism-1]->Reset(); 00335 if ( mep03_[ism-1] ) mep03_[ism-1]->Reset(); 00336 00337 if ( mer01_[ism-1] ) mer01_[ism-1]->Reset(); 00338 if ( mer02_[ism-1] ) mer02_[ism-1]->Reset(); 00339 if ( mer03_[ism-1] ) mer03_[ism-1]->Reset(); 00340 00341 if ( mer04_[ism-1] ) mer04_[ism-1]->Reset(); 00342 if ( mer05_[ism-1] ) mer05_[ism-1]->Reset(); 00343 00344 if ( mes01_[ism-1] ) mes01_[ism-1]->Reset(); 00345 if ( mes02_[ism-1] ) mes02_[ism-1]->Reset(); 00346 if ( mes03_[ism-1] ) mes03_[ism-1]->Reset(); 00347 00348 if ( met01_[ism-1] ) met01_[ism-1]->Reset(); 00349 if ( met02_[ism-1] ) met02_[ism-1]->Reset(); 00350 if ( met03_[ism-1] ) met03_[ism-1]->Reset(); 00351 00352 for ( int ix = 1; ix <= 50; ix++ ) { 00353 for ( int iy = 1; iy <= 50; iy++ ) { 00354 00355 if ( mes01_[ism-1] ) mes01_[ism-1]->setBinContent( ix, iy, -999. ); 00356 if ( mes02_[ism-1] ) mes02_[ism-1]->setBinContent( ix, iy, -999. ); 00357 if ( mes03_[ism-1] ) mes03_[ism-1]->setBinContent( ix, iy, -999. ); 00358 00359 if ( met01_[ism-1] ) met01_[ism-1]->setBinContent( ix, iy, -999. ); 00360 if ( met02_[ism-1] ) met02_[ism-1]->setBinContent( ix, iy, -999. ); 00361 if ( met03_[ism-1] ) met03_[ism-1]->setBinContent( ix, iy, -999. ); 00362 00363 } 00364 } 00365 00366 } 00367 00368 }
bool EEPedestalClient::writeDb | ( | EcalCondDBInterface * | econn, | |
RunIOV * | runiov, | |||
MonRunIOV * | moniov, | |||
bool & | status, | |||
bool | flag | |||
) | [virtual] |
Write data to DataBase.
econn | DB interface | |
moniov | IOV interface | |
status | good or bad | |
flag | run with softReset or not |
Implements EEClient.
Definition at line 467 of file EEPedestalClient.cc.
References TestMuL1L2Filter_cff::cerr, GenMuonPlsPt100GeV_cfg::cout, e, EcalEndcap, lat::endl(), UtilsClient::getBinQuality(), UtilsClient::getBinStatistics(), UtilsClient::getBinStatus(), LogicID::getEcalLogicID(), h01_, h02_, h03_, i, i01_, i02_, Numbers::icEE(), Numbers::indexEE(), EcalCondDBInterface::insertDataArraySet(), Numbers::iSM(), Numbers::ix0EE(), Numbers::iy0EE(), meg01_, meg02_, meg03_, meg04_, meg05_, p, UtilsClient::printBadChannels(), Numbers::sEE(), MonPedestalsDat::setPedMeanG1(), MonPNPedDat::setPedMeanG1(), MonPedestalsDat::setPedMeanG12(), MonPNPedDat::setPedMeanG16(), MonPedestalsDat::setPedMeanG6(), MonPedestalsDat::setPedRMSG1(), MonPNPedDat::setPedRMSG1(), MonPedestalsDat::setPedRMSG12(), MonPNPedDat::setPedRMSG16(), MonPedestalsDat::setPedRMSG6(), MonPNPedDat::setTaskStatus(), MonPedestalsDat::setTaskStatus(), superModules_, Numbers::validEE(), and verbose_.
00467 { 00468 00469 status = true; 00470 00471 if ( ! flag ) return false; 00472 00473 EcalLogicID ecid; 00474 00475 MonPedestalsDat p; 00476 map<EcalLogicID, MonPedestalsDat> dataset1; 00477 00478 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00479 00480 int ism = superModules_[i]; 00481 00482 if ( verbose_ ) { 00483 cout << " " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00484 cout << endl; 00485 UtilsClient::printBadChannels(meg01_[ism-1], h01_[ism-1]); 00486 UtilsClient::printBadChannels(meg02_[ism-1], h02_[ism-1]); 00487 UtilsClient::printBadChannels(meg03_[ism-1], h03_[ism-1]); 00488 } 00489 00490 for ( int ix = 1; ix <= 50; ix++ ) { 00491 for ( int iy = 1; iy <= 50; iy++ ) { 00492 00493 int jx = ix + Numbers::ix0EE(ism); 00494 int jy = iy + Numbers::iy0EE(ism); 00495 00496 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx; 00497 00498 if ( ! Numbers::validEE(ism, jx, jy) ) continue; 00499 00500 bool update01; 00501 bool update02; 00502 bool update03; 00503 00504 float num01, num02, num03; 00505 float mean01, mean02, mean03; 00506 float rms01, rms02, rms03; 00507 00508 update01 = UtilsClient::getBinStatistics(h01_[ism-1], ix, iy, num01, mean01, rms01); 00509 update02 = UtilsClient::getBinStatistics(h02_[ism-1], ix, iy, num02, mean02, rms02); 00510 update03 = UtilsClient::getBinStatistics(h03_[ism-1], ix, iy, num03, mean03, rms03); 00511 00512 if ( update01 || update02 || update03 ) { 00513 00514 if ( Numbers::icEE(ism, jx, jy) == 1 ) { 00515 00516 if ( verbose_ ) { 00517 cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00518 cout << "G01 (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num01 << " " << mean01 << " " << rms01 << endl; 00519 cout << "G06 (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num02 << " " << mean02 << " " << rms02 << endl; 00520 cout << "G12 (" << Numbers::ix0EE(i+1)+ix << "," << Numbers::iy0EE(i+1)+iy << ") " << num03 << " " << mean03 << " " << rms03 << endl; 00521 cout << endl; 00522 } 00523 00524 } 00525 00526 p.setPedMeanG1(mean01); 00527 p.setPedRMSG1(rms01); 00528 00529 p.setPedMeanG6(mean02); 00530 p.setPedRMSG6(rms02); 00531 00532 p.setPedMeanG12(mean03); 00533 p.setPedRMSG12(rms03); 00534 00535 if ( UtilsClient::getBinStatus(meg01_[ism-1], ix, iy) && 00536 UtilsClient::getBinStatus(meg02_[ism-1], ix, iy) && 00537 UtilsClient::getBinStatus(meg03_[ism-1], ix, iy) ) { 00538 p.setTaskStatus(true); 00539 } else { 00540 p.setTaskStatus(false); 00541 } 00542 00543 status = status && UtilsClient::getBinQuality(meg01_[ism-1], ix, iy) && 00544 UtilsClient::getBinQuality(meg02_[ism-1], ix, iy) && 00545 UtilsClient::getBinQuality(meg03_[ism-1], ix, iy); 00546 00547 int ic = Numbers::indexEE(ism, jx, jy); 00548 00549 if ( ic == -1 ) continue; 00550 00551 if ( econn ) { 00552 ecid = LogicID::getEcalLogicID("EE_crystal_number", Numbers::iSM(ism, EcalEndcap), ic); 00553 dataset1[ecid] = p; 00554 } 00555 00556 } 00557 00558 } 00559 } 00560 00561 } 00562 00563 if ( econn ) { 00564 try { 00565 if ( verbose_ ) cout << "Inserting MonPedestalsDat ..." << endl; 00566 if ( dataset1.size() != 0 ) econn->insertDataArraySet(&dataset1, moniov); 00567 if ( verbose_ ) cout << "done." << endl; 00568 } catch (runtime_error &e) { 00569 cerr << e.what() << endl; 00570 } 00571 } 00572 00573 if ( verbose_ ) cout << endl; 00574 00575 MonPNPedDat pn; 00576 map<EcalLogicID, MonPNPedDat> dataset2; 00577 00578 for ( unsigned int i=0; i<superModules_.size(); i++ ) { 00579 00580 int ism = superModules_[i]; 00581 00582 if ( verbose_ ) { 00583 cout << " " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00584 cout << endl; 00585 UtilsClient::printBadChannels(meg04_[ism-1], i01_[ism-1]); 00586 UtilsClient::printBadChannels(meg05_[ism-1], i02_[ism-1]); 00587 } 00588 00589 for ( int i = 1; i <= 10; i++ ) { 00590 00591 bool update01; 00592 bool update02; 00593 00594 float num01, num02; 00595 float mean01, mean02; 00596 float rms01, rms02; 00597 00598 update01 = UtilsClient::getBinStatistics(i01_[ism-1], i, 0, num01, mean01, rms01); 00599 update02 = UtilsClient::getBinStatistics(i02_[ism-1], i, 0, num02, mean02, rms02); 00600 00601 if ( update01 || update02 ) { 00602 00603 if ( i == 1 ) { 00604 00605 if ( verbose_ ) { 00606 cout << "Preparing dataset for " << Numbers::sEE(ism) << " (ism=" << ism << ")" << endl; 00607 cout << "PNs (" << i << ") G01 " << num01 << " " << mean01 << " " << rms01 << endl; 00608 cout << "PNs (" << i << ") G16 " << num01 << " " << mean01 << " " << rms01 << endl; 00609 cout << endl; 00610 } 00611 00612 } 00613 00614 pn.setPedMeanG1(mean01); 00615 pn.setPedRMSG1(rms01); 00616 00617 pn.setPedMeanG16(mean02); 00618 pn.setPedRMSG16(rms02); 00619 00620 if ( UtilsClient::getBinStatus(meg04_[ism-1], i, 1) && 00621 UtilsClient::getBinStatus(meg05_[ism-1], i, 1) ) { 00622 pn.setTaskStatus(true); 00623 } else { 00624 pn.setTaskStatus(false); 00625 } 00626 00627 status = status && UtilsClient::getBinQuality(meg04_[ism-1], i, 1) && 00628 UtilsClient::getBinQuality(meg05_[ism-1], i, 1); 00629 00630 if ( econn ) { 00631 ecid = LogicID::getEcalLogicID("EE_LM_PN", Numbers::iSM(ism, EcalEndcap), i-1); 00632 dataset2[ecid] = pn; 00633 } 00634 00635 } 00636 00637 } 00638 00639 } 00640 00641 if ( econn ) { 00642 try { 00643 if ( verbose_ ) cout << "Inserting MonPNPedDat ..." << endl; 00644 if ( dataset2.size() != 0 ) econn->insertDataArraySet(&dataset2, moniov); 00645 if ( verbose_ ) cout << "done." << endl; 00646 } catch (runtime_error &e) { 00647 cerr << e.what() << endl; 00648 } 00649 } 00650 00651 return true; 00652 00653 }
friend class EESummaryClient [friend] |
Definition at line 33 of file EEPedestalClient.h.
bool EEPedestalClient::cloneME_ [private] |
Definition at line 82 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
bool EEPedestalClient::debug_ [private] |
Definition at line 85 of file EEPedestalClient.h.
Referenced by analyze(), beginJob(), beginRun(), EEPedestalClient(), endJob(), and endRun().
float EEPedestalClient::discrepancyMean_[3] [private] |
float EEPedestalClient::discrepancyMeanPn_[2] [private] |
DQMStore* EEPedestalClient::dqmStore_ [private] |
Definition at line 93 of file EEPedestalClient.h.
Referenced by analyze(), beginJob(), cleanup(), and setup().
bool EEPedestalClient::enableCleanup_ [private] |
float EEPedestalClient::expectedMean_[3] [private] |
float EEPedestalClient::expectedMeanPn_[2] [private] |
TProfile2D* EEPedestalClient::h01_[18] [private] |
Definition at line 95 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and writeDb().
TProfile2D* EEPedestalClient::h02_[18] [private] |
Definition at line 96 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and writeDb().
TProfile2D* EEPedestalClient::h03_[18] [private] |
Definition at line 97 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and writeDb().
TProfile* EEPedestalClient::i01_[18] [private] |
Definition at line 133 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and writeDb().
TProfile* EEPedestalClient::i02_[18] [private] |
Definition at line 134 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and writeDb().
int EEPedestalClient::ievt_ [private] |
Definition at line 79 of file EEPedestalClient.h.
Referenced by analyze(), beginJob(), endJob(), and getEvtPerJob().
TProfile2D* EEPedestalClient::j01_[18] [private] |
Definition at line 99 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
TProfile2D* EEPedestalClient::j02_[18] [private] |
Definition at line 100 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
TProfile2D* EEPedestalClient::j03_[18] [private] |
Definition at line 101 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
int EEPedestalClient::jevt_ [private] |
Definition at line 80 of file EEPedestalClient.h.
Referenced by analyze(), beginJob(), beginRun(), endRun(), and getEvtPerRun().
TProfile2D* EEPedestalClient::k01_[18] [private] |
Definition at line 103 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
TProfile2D* EEPedestalClient::k02_[18] [private] |
Definition at line 104 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
TProfile2D* EEPedestalClient::k03_[18] [private] |
Definition at line 105 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), and EEPedestalClient().
MonitorElement* EEPedestalClient::meg01_[18] [private] |
Definition at line 107 of file EEPedestalClient.h.
Referenced by analyze(), EESummaryClient::analyze(), cleanup(), EEPedestalClient(), setup(), and writeDb().
MonitorElement* EEPedestalClient::meg02_[18] [private] |
Definition at line 108 of file EEPedestalClient.h.
Referenced by analyze(), EESummaryClient::analyze(), cleanup(), EEPedestalClient(), setup(), and writeDb().
MonitorElement* EEPedestalClient::meg03_[18] [private] |
Definition at line 109 of file EEPedestalClient.h.
Referenced by analyze(), EESummaryClient::analyze(), cleanup(), EEPedestalClient(), setup(), and writeDb().
MonitorElement* EEPedestalClient::meg04_[18] [private] |
Definition at line 111 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), setup(), and writeDb().
MonitorElement* EEPedestalClient::meg05_[18] [private] |
Definition at line 112 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), setup(), and writeDb().
MonitorElement* EEPedestalClient::mep01_[18] [private] |
Definition at line 114 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mep02_[18] [private] |
Definition at line 115 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mep03_[18] [private] |
Definition at line 116 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mer01_[18] [private] |
Definition at line 118 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mer02_[18] [private] |
Definition at line 119 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mer03_[18] [private] |
Definition at line 120 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mer04_[18] [private] |
Definition at line 122 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mer05_[18] [private] |
Definition at line 123 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mes01_[18] [private] |
Definition at line 125 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mes02_[18] [private] |
Definition at line 126 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::mes03_[18] [private] |
Definition at line 127 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::met01_[18] [private] |
Definition at line 129 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::met02_[18] [private] |
Definition at line 130 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
MonitorElement* EEPedestalClient::met03_[18] [private] |
Definition at line 131 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
std::string EEPedestalClient::prefixME_ [private] |
Definition at line 87 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), and setup().
float EEPedestalClient::RMSThreshold_[3] [private] |
float EEPedestalClient::RMSThresholdInner_[3] [private] |
float EEPedestalClient::RMSThresholdPn_[2] [private] |
std::vector<int> EEPedestalClient::superModules_ [private] |
Definition at line 91 of file EEPedestalClient.h.
Referenced by analyze(), cleanup(), EEPedestalClient(), setup(), and writeDb().
bool EEPedestalClient::verbose_ [private] |