22 #ifdef WITH_ECAL_COND_DB
154 name =
"EBIT data integrity quality " +
Numbers::sEB(ism);
160 name =
"EBIT data integrity quality MEM " +
Numbers::sEB(ism);
174 for (
int ie = 1; ie <= 85; ie++ ) {
175 for (
int ip = 1; ip <= 20; ip++ ) {
182 for (
int ie = 1; ie <= 10; ie++ ) {
183 for (
int ip = 1; ip <= 5; ip++ ) {
209 if (
h_[ism-1] )
delete h_[ism-1];
212 if (
h01_[ism-1] )
delete h01_[ism-1];
213 if (
h02_[ism-1] )
delete h02_[ism-1];
214 if (
h03_[ism-1] )
delete h03_[ism-1];
215 if (
h04_[ism-1] )
delete h04_[ism-1];
216 if (
h05_[ism-1] )
delete h05_[ism-1];
217 if (
h06_[ism-1] )
delete h06_[ism-1];
218 if (
h07_[ism-1] )
delete h07_[ism-1];
219 if (
h08_[ism-1] )
delete h08_[ism-1];
220 if (
h09_[ism-1] )
delete h09_[ism-1];
254 #ifdef WITH_ECAL_COND_DB
262 std::map<EcalLogicID, MonCrystalConsistencyDat> dataset1;
264 std::map<EcalLogicID, MonTTConsistencyDat> dataset2;
266 std::map<EcalLogicID, MonMemChConsistencyDat> dataset3;
268 std::map<EcalLogicID, MonMemTTConsistencyDat> dataset4;
274 if (
h00_ &&
h00_->GetBinContent(ism) != 0 ) {
275 std::cerr <<
" DCC failed " <<
h00_->GetBinContent(ism) <<
" times" << std::endl;
298 bool update0 =
false;
301 num00 =
h00_->GetBinContent(ism);
302 if ( num00 > 0 ) update0 =
true;
305 float num01, num02, num03;
307 for (
int ie = 1; ie <= 85; ie++ ) {
308 for (
int ip = 1; ip <= 20; ip++ ) {
310 num01 = num02 = num03 = 0.;
312 bool update1 =
false;
316 if (
h_[ism-1] ) numTot =
h_[ism-1]->GetBinContent(ie, ip);
319 num01 =
h01_[ism-1]->GetBinContent(ie, ip);
320 if ( num01 > 0 ) update1 =
true;
324 num02 =
h02_[ism-1]->GetBinContent(ie, ip);
325 if ( num02 > 0 ) update1 =
true;
329 num03 =
h03_[ism-1]->GetBinContent(ie, ip);
330 if ( num03 > 0 ) update1 =
true;
333 if ( update0 || update1 ) {
339 std::cout <<
"(" << ie <<
"," << ip <<
") " << num00 <<
" " << num01 <<
" " << num02 <<
" " << num03 << std::endl;
355 float errorRate1 = num00 / ( numTot + num01 + num02 + num03 );
358 errorRate1 = ( num01 + num02 + num03 ) / ( numTot + num01 + num02 + num03 ) / 3.;
364 if ( ( num01 + num02 + num03 ) > 0 )
376 status = status && !val;
385 for (
int iet = 1; iet <= 17; iet++ ) {
386 for (
int ipt = 1; ipt <= 4; ipt++ ) {
390 bool update1 =
false;
396 for (
int ie = 1 + 5*(iet-1); ie <= 5*iet; ie++ ) {
397 for (
int ip = 1 + 5*(ipt-1); ip <= 5*ipt; ip++ ) {
398 numTot +=
h_[ism-1]->GetBinContent(ie, ip);
404 num04 =
h04_[ism-1]->GetBinContent(iet, ipt);
405 if ( num04 > 0 ) update1 =
true;
409 num05 =
h05_[ism-1]->GetBinContent(iet, ipt);
410 if ( num05 > 0 ) update1 =
true;
413 if ( update0 || update1 ) {
419 std::cout <<
"(" << iet <<
"," << ipt <<
") " << num00 <<
" " << num04 <<
" " << num05 << std::endl;
436 float errorRate2 = num00 / ( numTot/25. + num04 + num05 );
439 errorRate2 = ( num04 + num05 ) / ( numTot/25. + num04 + num05 ) / 2.;
445 if ( ( num04 + num05 ) > 0 )
457 status = status && !val;
466 for (
int ie = 1; ie <= 10; ie++ ) {
467 for (
int ip = 1; ip <= 5; ip++ ) {
471 bool update1 =
false;
475 if (
hmem_[ism-1] ) numTot =
hmem_[ism-1]->GetBinContent(ie, ip);
478 num06 =
h06_[ism-1]->GetBinContent(ie, ip);
479 if ( num06 > 0 ) update1 =
true;
483 num07 =
h07_[ism-1]->GetBinContent(ie, ip);
484 if ( num07 > 0 ) update1 =
true;
487 if ( update0 || update1 ) {
489 if ( ie ==1 && ip == 1 ) {
492 std::cout <<
"Preparing dataset for mem of SM=" << ism << std::endl;
493 std::cout <<
"(" << ie <<
"," << ip <<
") " << num06 <<
" " << num07 << std::endl;
509 float errorRate1 = num00 / ( numTot + num06 + num07 );
512 errorRate1 = ( num06 + num07 ) / ( numTot + num06 + num07 ) / 2.;
518 if ( ( num06 + num07 ) > 0 )
521 c3. setTaskStatus(val);
530 status = status && !val;
539 for (
int iet = 1; iet <= 2; iet++ ) {
543 bool update1 =
false;
547 if (
hmem_[ism-1] ) {
549 for (
int ie = 1 + 5*(iet-1); ie <= 5*iet; ie++ ) {
550 for (
int ip = 1 ; ip <= 5; ip++ ) {
551 numTot +=
hmem_[ism-1]->GetBinContent(ie, ip);
557 num08 =
h08_[ism-1]->GetBinContent(iet, 1);
558 if ( num08 > 0 ) update1 =
true;
562 num09 =
h09_[ism-1]->GetBinContent(iet, 1);
563 if ( num09 > 0 ) update1 =
true;
566 if ( update0 || update1 ) {
572 std::cout <<
"(" << iet <<
") " << num08 <<
" " << num09 << std::endl;
589 float errorRate2 = num00 / ( numTot/25. + num08 + num09 );
592 errorRate2 = ( num08 + num09 ) / ( numTot/25. + num08 + num09 ) / 2.;
598 if ( ( num08 + num09 ) > 0 )
610 status = status && !val;
626 }
catch (std::runtime_error &e) {
640 if (
ievt_ % 10 == 0 ) {
702 bool update0 =
false;
706 num00 =
h00_->GetBinContent(ism);
710 float num01, num02, num03, num04, num05;
712 for (
int ie = 1; ie <= 85; ie++ ) {
713 for (
int ip = 1; ip <= 20; ip++ ) {
715 num01 = num02 = num03 = num04 = num05 = 0.;
719 bool update1 =
false;
720 bool update2 =
false;
724 if (
h_[ism-1] ) numTot =
h_[ism-1]->GetBinContent(ie, ip);
727 num01 =
h01_[ism-1]->GetBinContent(ie, ip);
732 num02 =
h02_[ism-1]->GetBinContent(ie, ip);
737 num03 =
h03_[ism-1]->GetBinContent(ie, ip);
741 int iet = 1 + ((ie-1)/5);
742 int ipt = 1 + ((ip-1)/5);
745 num04 =
h04_[ism-1]->GetBinContent(iet, ipt);
750 num05 =
h05_[ism-1]->GetBinContent(iet, ipt);
754 if ( update0 || update1 || update2 ) {
761 float errorRate1 = num00 / ( numTot + num01 + num02 + num03 );
764 errorRate1 = ( num01 + num02 + num03 ) / ( numTot + num01 + num02 + num03 ) / 3.;
767 float errorRate2 = ( num04 + num05 ) / ( numTot/25. + num04 + num05 ) / 2.;
774 if ( ( num01 + num02 + num03 ) > 0 )
776 if ( ( num04 + num05 ) > 0 )
791 float num06, num07, num08, num09;
793 for (
int ie = 1; ie <= 10; ie++ ) {
794 for (
int ip = 1; ip <= 5; ip++ ) {
796 num06 = num07 = num08 = num09 = 0.;
801 bool update1 =
false;
802 bool update2 =
false;
804 float numTotmem = -1.;
806 if (
hmem_[ism-1] ) numTotmem =
hmem_[ism-1]->GetBinContent(ie, ip);
809 num06 =
h06_[ism-1]->GetBinContent(ie, ip);
814 num07 =
h07_[ism-1]->GetBinContent(ie, ip);
818 int iet = 1 + ((ie-1)/5);
822 num08 =
h08_[ism-1]->GetBinContent(iet, ipt);
827 num09 =
h09_[ism-1]->GetBinContent(iet, ipt);
831 if ( update0 || update1 || update2 ) {
837 if ( numTotmem > 0 ) {
838 float errorRate1 = ( num06 + num07 ) / ( numTotmem + num06 + num07 ) / 2.;
841 float errorRate2 = ( num08 + num09 ) / ( numTotmem/25. + num08 + num09 ) / 2.;
846 if ( ( num06 + num07 ) > 0 )
848 if ( ( num08 + num09 ) > 0 )
869 {11, 12, 13, 14, 15},
870 {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 std::string sEB(const int ism)
static int iSC(const EcalScDetId &id)
void setProblematicEvents(int prob)
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
EBIntegrityClient(const edm::ParameterSet &ps)
Constructor.
virtual ~EBIntegrityClient()
Destructor.
Some "id" conversions.
void setProcessedEvents(int proc)
void analyze(void)
Analyze.
void setProblemsID(int id)
void cleanup(void)
Cleanup.
void beginRun(void)
BeginRun.
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 icEB(const int ism, const int ix, const int iy)
static bool maskPn(int ism, int i1, uint32_t bits, const EcalSubdetector subdet)
std::vector< int > superModules_
void setProblematicEvents(int prob)
void setProcessedEvents(int proc)
static int indexEB(const int ism, const int ie, const int ip)
MonitorElement * meg01_[36]
static int iSM(const int ism, const EcalSubdetector subdet)
void removeElement(const std::string &name)
void setProblematicEvents(int prob)
void setProblemsID(int id)
static const int chNum[5][5]
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 setProblemsID(int id)
void beginJob(void)
BeginJob.
static const int CH_GAIN_ZERO_ERROR
void setTaskStatus(bool status)
void setProcessedEvents(int proc)
void setTaskStatus(bool status)
void setProcessedEvents(int proc)
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)
MonitorElement * meg02_[36]
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)