22 #ifdef WITH_ECAL_COND_DB
156 name =
"EEIT data integrity quality " +
Numbers::sEE(ism);
163 name =
"EEIT data integrity quality MEM " +
Numbers::sEE(ism);
177 for (
int ix = 1; ix <= 50; ix++ ) {
178 for (
int iy = 1; iy <= 50; iy++ ) {
185 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
194 for (
int ie = 1; ie <= 10; ie++ ) {
195 for (
int ip = 1; ip <= 5; ip++ ) {
200 if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) )
continue;
201 if ( (ism >= 12 && ism <= 3) || (ism >= 16 && ism <= 18) )
continue;
227 if (
h_[ism-1] )
delete h_[ism-1];
230 if (
h01_[ism-1] )
delete h01_[ism-1];
231 if (
h02_[ism-1] )
delete h02_[ism-1];
232 if (
h03_[ism-1] )
delete h03_[ism-1];
233 if (
h04_[ism-1] )
delete h04_[ism-1];
234 if (
h05_[ism-1] )
delete h05_[ism-1];
235 if (
h06_[ism-1] )
delete h06_[ism-1];
236 if (
h07_[ism-1] )
delete h07_[ism-1];
237 if (
h08_[ism-1] )
delete h08_[ism-1];
238 if (
h09_[ism-1] )
delete h09_[ism-1];
272 #ifdef WITH_ECAL_COND_DB
280 std::map<EcalLogicID, MonCrystalConsistencyDat> dataset1;
282 std::map<EcalLogicID, MonTTConsistencyDat> dataset2;
284 std::map<EcalLogicID, MonMemChConsistencyDat> dataset3;
286 std::map<EcalLogicID, MonMemTTConsistencyDat> dataset4;
292 if (
h00_ &&
h00_->GetBinContent(ism) != 0 ) {
294 std::cerr <<
" DCC failed " <<
h00_->GetBinContent(ism) <<
" times" << std::endl;
317 bool update0 =
false;
320 num00 =
h00_->GetBinContent(ism);
321 if ( num00 > 0 ) update0 =
true;
324 float num01, num02, num03;
326 for (
int ix = 1; ix <= 50; ix++ ) {
327 for (
int iy = 1; iy <= 50; iy++ ) {
332 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
336 num01 = num02 = num03 = 0.;
338 bool update1 =
false;
342 if (
h_[ism-1] ) numTot =
h_[ism-1]->GetBinContent(ix, iy);
345 num01 =
h01_[ism-1]->GetBinContent(ix, iy);
346 if ( num01 > 0 ) update1 =
true;
350 num02 =
h02_[ism-1]->GetBinContent(ix, iy);
351 if ( num02 > 0 ) update1 =
true;
355 num03 =
h03_[ism-1]->GetBinContent(ix, iy);
356 if ( num03 > 0 ) update1 =
true;
359 if ( update0 || update1 ) {
381 float errorRate1 = num00 / ( numTot + num01 + num02 + num03 );
384 errorRate1 = ( num01 + num02 + num03 ) / ( numTot + num01 + num02 + num03 ) / 3.;
390 if ( ( num01 + num02 + num03 ) > 0 )
397 if ( ic == -1 )
continue;
404 status = status && !val;
413 for (
int ixt = 1; ixt <= 10; ixt++ ) {
414 for (
int iyt = 1; iyt <= 10; iyt++ ) {
419 if ( ism >= 1 && ism <= 9 ) jxt = 101 - jxt;
423 bool update1 =
false;
429 for (
int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) {
430 for (
int iy = 1 + 5*(iyt-1); iy <= 5*iyt; iy++ ) {
433 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
435 numTot +=
h_[ism-1]->GetBinContent(ix, iy);
441 for (
int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) {
442 for (
int iy = 1 + 5*(iyt-1); iy <= 5*iyt; iy++ ) {
445 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
447 num04 =
h04_[ism-1]->GetBinContent(ix, iy);
448 if ( num04 > 0 ) update1 =
true;
454 for (
int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) {
455 for (
int iy = 1 + 5*(iyt-1); iy <= 5*iyt; iy++ ) {
458 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
460 num05 =
h05_[ism-1]->GetBinContent(ix, iy);
461 if ( num05 > 0 ) update1 =
true;
466 if ( update0 || update1 ) {
489 float errorRate2 = num00 / ( numTot + num04 + num05 );
492 errorRate2 = ( num04 + num05 ) / ( numTot + num04 + num05 ) / 2.;
498 if ( ( num04 + num05 ) > 0 )
505 if ( itt == -1 )
continue;
512 status = status && !val;
521 for (
int ix = 1; ix <= 10; ix++ ) {
522 for (
int iy = 1; iy <= 5; iy++ ) {
526 bool update1 =
false;
530 if (
hmem_[ism-1] ) numTot =
hmem_[ism-1]->GetBinContent(ix, iy);
533 num06 =
h06_[ism-1]->GetBinContent(ix, iy);
534 if ( num06 > 0 ) update1 =
true;
538 num07 =
h07_[ism-1]->GetBinContent(ix, iy);
539 if ( num07 > 0 ) update1 =
true;
542 if ( update0 || update1 ) {
544 if ( ix ==1 && iy == 1 ) {
547 std::cout <<
"Preparing dataset for mem of SM=" << ism << std::endl;
548 std::cout <<
"(" << ix <<
"," << iy <<
") " << num06 <<
" " << num07 << std::endl;
564 float errorRate1 = num00 / ( numTot + num06 + num07 );
567 errorRate1 = ( num06 + num07 ) / ( numTot + num06 + num07 ) / 2.;
573 if ( ( num06 + num07 ) > 0 )
576 c3. setTaskStatus(val);
585 status = status && !val;
594 for (
int ixt = 1; ixt <= 2; ixt++ ) {
598 bool update1 =
false;
602 if (
hmem_[ism-1] ) {
604 for (
int ix = 1 + 5*(ixt-1); ix <= 5*ixt; ix++ ) {
605 for (
int iy = 1 ; iy <= 5; iy++ ) {
606 numTot +=
hmem_[ism-1]->GetBinContent(ix, iy);
612 num08 =
h08_[ism-1]->GetBinContent(ixt, 1);
613 if ( num08 > 0 ) update1 =
true;
617 num09 =
h09_[ism-1]->GetBinContent(ixt, 1);
618 if ( num09 > 0 ) update1 =
true;
621 if ( update0 || update1 ) {
627 std::cout <<
"(" << ixt <<
") " << num08 <<
" " << num09 << std::endl;
644 float errorRate2 = num00 / ( numTot + num08 + num09 );
647 errorRate2 = ( num08 + num09 ) / ( numTot/25. + num08 + num09 ) / 2.;
653 if ( ( num08 + num09 ) > 0 )
665 status = status && !val;
681 }
catch (std::runtime_error &e) {
695 if (
ievt_ % 10 == 0 ) {
756 bool update0 =
false;
760 num00 =
h00_->GetBinContent(ism);
764 float num01, num02, num03, num04, num05;
766 for (
int ix = 1; ix <= 50; ix++ ) {
767 for (
int iy = 1; iy <= 50; iy++ ) {
769 num01 = num02 = num03 = num04 = num05 = 0.;
773 bool update1 =
false;
774 bool update2 =
false;
778 if (
h_[ism-1] ) numTot =
h_[ism-1]->GetBinContent(ix, iy);
781 num01 =
h01_[ism-1]->GetBinContent(ix, iy);
786 num02 =
h02_[ism-1]->GetBinContent(ix, iy);
791 num03 =
h03_[ism-1]->GetBinContent(ix, iy);
796 num04 =
h04_[ism-1]->GetBinContent(ix, iy);
801 num05 =
h05_[ism-1]->GetBinContent(ix, iy);
805 if ( update0 || update1 || update2 ) {
812 float errorRate1 = num00 / ( numTot + num01 + num02 + num03 );
815 errorRate1 = ( num01 + num02 + num03 ) / ( numTot + num01 + num02 + num03 ) / 3.;
818 float errorRate2 = ( num04 + num05 ) / ( numTot + num04 + num05 ) / 2.;
825 if ( ( num01 + num02 + num03 ) > 0 )
827 if ( ( num04 + num05 ) > 0 )
834 if ( ism >= 1 && ism <= 9 ) jx = 101 - jx;
849 float num06, num07, num08, num09;
851 for (
int ie = 1; ie <= 10; ie++ ) {
852 for (
int ip = 1; ip <= 5; ip++ ) {
854 num06 = num07 = num08 = num09 = 0.;
860 if ( (ism >= 3 && ism <= 4) || (ism >= 7 && ism <= 9) )
continue;
861 if ( (ism >= 12 && ism <= 13) || (ism >= 16 && ism <= 18) )
continue;
865 bool update1 =
false;
866 bool update2 =
false;
868 float numTotmem = -1.;
870 if (
hmem_[ism-1] ) numTotmem =
hmem_[ism-1]->GetBinContent(ie, ip);
873 num06 =
h06_[ism-1]->GetBinContent(ie, ip);
878 num07 =
h07_[ism-1]->GetBinContent(ie, ip);
882 int iet = 1 + ((ie-1)/5);
886 num08 =
h08_[ism-1]->GetBinContent(iet, ipt);
891 num09 =
h09_[ism-1]->GetBinContent(iet, ipt);
895 if ( update0 || update1 || update2 ) {
901 if ( numTotmem > 0 ) {
902 float errorRate1 = ( num06 + num07 ) / ( numTotmem + num06 + num07 )/ 2.;
905 float errorRate2 = ( num08 + num09 ) / ( numTotmem/25. + num08 + num09 ) / 2.;
910 if ( ( num06 + num07 ) > 0 )
912 if ( ( num08 + num09 ) > 0 )
933 {11, 12, 13, 14, 15},
934 {20, 19, 18, 17, 16},
Cache logicID vector from database.
void setProblematicEvents(int prob)
T getUntrackedParameter(std::string const &, T const &) const
void setBinContent(int binx, double content)
set content of bin (1-D)
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
static int iSC(const EcalScDetId &id)
void setProblematicEvents(int prob)
static int iy0EE(const int ism)
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
Some "id" conversions.
void setProcessedEvents(int proc)
static std::string sEE(const int ism)
void setProblemsID(int id)
void setProblemsLV1(int LV1)
static const int TT_SIZE_ERROR
static const int CH_GAIN_SWITCH_ERROR
void setProblemsSize(int size)
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
static int indexEE(const int ism, const int ix, const int iy)
void cleanup(void)
Cleanup.
static bool maskPn(int ism, int i1, uint32_t bits, const EcalSubdetector subdet)
void setProblematicEvents(int prob)
MonitorElement * meg02_[18]
void setProcessedEvents(int proc)
std::vector< int > superModules_
virtual ~EEIntegrityClient()
Destructor.
static int iSM(const int ism, const EcalSubdetector subdet)
static int icEE(const int ism, const int ix, const int iy)
void removeElement(const std::string &name)
void setProblematicEvents(int prob)
void setProblemsID(int id)
void setProblemsID(int id)
void setTaskStatus(bool status)
std::string getName(Reflex::Type &cc)
void setProblemsBunchX(int bunchX)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
void setProblemsGainSwitch(int prob)
Ecal Monitor Utils for Client.
void beginRun(void)
BeginRun.
void setProblemsID(int id)
static const int CH_GAIN_ZERO_ERROR
void analyze(void)
Analyze.
void beginJob(void)
BeginJob.
void setTaskStatus(bool status)
void setProcessedEvents(int proc)
void setTaskStatus(bool status)
void setProcessedEvents(int proc)
static int ix0EE(const int ism)
static const int chNum[5][5]
void setProblemsGainZero(int prob)
static const int TT_ID_ERROR
void setProblemsGainZero(int prob)
void insertDataArraySet(const std::map< EcalLogicID, DATT > *data, IOVT *iov)
void setProblemsSize(int size)
EEIntegrityClient(const edm::ParameterSet &ps)
Constructor.
MonitorElement * meg01_[18]
static bool validEE(const int ism, const int ix, const int iy)
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
static EcalLogicID getEcalLogicID(const char *name, const int id1=EcalLogicID::NULLID, const int id2=EcalLogicID::NULLID, const int id3=EcalLogicID::NULLID)
static const int CH_ID_ERROR
int ism(int ieta, int iphi)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
static void printBadChannels(const MonitorElement *me, TH1 *hi, bool positive_only=false)
Print the bad channels.
void setCurrentFolder(const std::string &fullpath)