CMS 3D CMS Logo

QTest.h
Go to the documentation of this file.
1 #ifndef DQMSERVICES_CORE_Q_CRITERION_H
2 # define DQMSERVICES_CORE_Q_CRITERION_H
3 
5 # include "TProfile2D.h"
6 # include "TProfile.h"
7 # include "TH2F.h"
8 # include "TH1F.h"
9 # include <sstream>
10 # include <string>
11 # include <map>
12 
13 //#include "DQMServices/Core/interface/DQMStore.h"
14 
24 //class AllContentWithinFixedRange; typedef AllContentWithinFixedRange RuleAllContentWithinFixedRange; typedef AllContentWithinFixedRange AllContentWithinFixedRangeROOT;
25 //class AllContentWithinFloatingRange; typedef AllContentWithinFloatingRange RuleAllContentWithinFloatingRange; typedef AllContentWithinFloatingRange AllContentWithinFloatingRangeROOT;
26 class FlatOccupancy1d; typedef FlatOccupancy1d RuleFlatOccupancy1d; typedef FlatOccupancy1d FlatOccupancy1dROOT;
28 class CSC01; typedef CSC01 RuleCSC01; typedef CSC01 CSC01ROOT;
29 class AllContentAlongDiagonal; typedef AllContentAlongDiagonal RuleAllContentAlongDiagonal; typedef AllContentAlongDiagonal AllContentAlongDiagonalROOT;
33 
47 {
49 
50 public:
51 
53  int getStatus(void) const { return status_; }
55  std::string getMessage(void) const { return message_; }
57  std::string getName(void) const { return qtname_; }
59  std::string algoName(void) const { return algoName_; }
61  void setWarningProb(float prob) { warningProb_ = prob; }
62  void setErrorProb(float prob) { errorProb_ = prob; }
65  virtual std::vector<DQMChannel> getBadChannels(void) const
66  { return std::vector<DQMChannel>(); }
67 
68 protected:
69  QCriterion(std::string qtname) { qtname_ = qtname; init(); }
71  void init(void);
72 
73  virtual ~QCriterion(void) {}
74 
75  virtual float runTest(const MonitorElement *me);
78 
79  float runTest(const MonitorElement *me, QReport &qr, DQMNet::QValue &qv) {
80  assert(qr.qcriterion_ == this);
81  assert(qv.qtname == qtname_);
82 
83  prob_ = runTest(me); // this runTest goes to SimpleTest derivates
84 
88 
89  setMessage(); // this goes to SimpleTest derivates
90 
91  if (verbose_==2) std::cout << " Message = " << message_ << std::endl;
92  if (verbose_==2) std::cout << " Name = " << qtname_ <<
93  " / Algorithm = " << algoName_ <<
94  " / Status = " << status_ <<
95  " / Prob = " << prob_ << std::endl;
96 
97  qv.code = status_;
98  qv.message = message_;
99  qv.qtname = qtname_;
100  qv.algorithm = algoName_;
101  qv.qtresult = prob_;
103 
104  return prob_;
105  }
106 
108  virtual void setMessage(void) = 0;
109 
112  float prob_;
113  int status_;
117  int verbose_;
118 
119 private:
121  static const float WARNING_PROB_THRESHOLD;
122  static const float ERROR_PROB_THRESHOLD;
123 
125  friend class DQMStore;
127  friend class MonitorElement;
128 };
129 
133 
134 class SimpleTest : public QCriterion
135 {
136 public:
137  SimpleTest(const std::string &name, bool keepBadChannels = false) : QCriterion(name),
138  minEntries_ (0),
139  keepBadChannels_ (keepBadChannels)
140  {}
141 
143  void setMinimumEntries(unsigned n) { minEntries_ = n; }
145  virtual std::vector<DQMChannel> getBadChannels(void) const
146  {
147  return keepBadChannels_ ? badChannels_ : QCriterion::getBadChannels();
148  }
149 
150 protected:
151 
153  virtual void setMessage(void)
154  {
155  message_.clear();
156  }
157 
158  unsigned minEntries_; //< minimum # of entries needed
159  std::vector<DQMChannel> badChannels_;
161  };
162 
163 
164 //===============================================================//
165 //========= Classes for particular QUALITY TESTS ================//
166 //===============================================================//
167 
168 //===================== Comp2RefEqualH ===================//
169 //== Algorithm for comparing equality of histograms ==//
171 {
172 public:
174  {
175  setAlgoName( getAlgoName() );
176  }
177  static std::string getAlgoName(void) { return "Comp2RefEqualH"; }
178  float runTest(const MonitorElement*me);
179 };
180 
181 //===================== Comp2RefChi2 ===================//
182 // comparison to reference using the chi^2 algorithm
183 class Comp2RefChi2 : public SimpleTest
184 {
185 public:
187  {
188  setAlgoName(getAlgoName());
189  }
190  static std::string getAlgoName(void) { return "Comp2RefChi2"; }
191  float runTest(const MonitorElement*me);
192 
193 protected:
194 
195  void setMessage(void)
196  {
197  std::ostringstream message;
198  message << "chi2/Ndof = " << chi2_ << "/" << Ndof_
199  << ", minimum needed statistics = " << minEntries_
200  << " warning threshold = " << this->warningProb_
201  << " error threshold = " << this->errorProb_;
202  message_ = message.str();
203  }
204 
205  // # of degrees of freedom and chi^2 for test
206  int Ndof_; double chi2_;
207 };
208 
209 //===================== Comp2RefKolmogorov ===================//
212 {
213 public:
215  {
216  setAlgoName(getAlgoName());
217  }
218  static std::string getAlgoName(void) { return "Comp2RefKolmogorov"; }
219 
220  float runTest(const MonitorElement *me);
221 };
222 
223 //==================== ContentsXRange =========================//
224 //== Check that histogram contents are between [Xmin, Xmax] ==//
226 {
227 public:
229  {
230  rangeInitialized_ = false;
231  setAlgoName(getAlgoName());
232  }
233  static std::string getAlgoName(void) { return "ContentsXRange"; }
234  float runTest(const MonitorElement *me) ;
235 
237  virtual void setAllowedXRange(double xmin, double xmax)
238  {
239  xmin_ = xmin; xmax_ = xmax;
240  rangeInitialized_ = true;
241  }
242 
243 protected:
244  double xmin_;double xmax_;
246 };
247 
248 //==================== ContentsYRange =========================//
249 //== Check that histogram contents are between [Ymin, Ymax] ==//
251 {
252 public:
254  {
255  rangeInitialized_ = false;
256  setAlgoName(getAlgoName());
257  }
258  static std::string getAlgoName(void) { return "ContentsYRange"; }
259  float runTest(const MonitorElement *me);
260 
261  void setUseEmptyBins(unsigned int useEmptyBins) { useEmptyBins_ = useEmptyBins; }
262  virtual void setAllowedYRange(double ymin, double ymax)
263  {
264  ymin_ = ymin; ymax_ = ymax;
265  rangeInitialized_ = true;
266  }
267 
268 protected:
269  double ymin_; double ymax_;
271  unsigned int useEmptyBins_;
272 
273 };
274 
275 //============================== DeadChannel =================================//
277 class DeadChannel : public SimpleTest
278 {
279 public:
281  {
282  rangeInitialized_ = false;
283  setAlgoName(getAlgoName());
284  }
285  static std::string getAlgoName(void) { return "DeadChannel"; }
286  float runTest(const MonitorElement *me);
287 
289  void setThreshold(double ymin)
290  {
291  ymin_ = ymin;
292  rangeInitialized_ = true;
293  }
294 
295 protected:
296  double ymin_;
298 };
299 
300 
301 //==================== NoisyChannel =========================//
303 class NoisyChannel : public SimpleTest
304 {
305 public:
307  {
308  rangeInitialized_ = false;
309  numNeighbors_ = 1;
310  setAlgoName(getAlgoName());
311  }
312  static std::string getAlgoName(void) { return "NoisyChannel"; }
313  float runTest(const MonitorElement*me);
314 
322  void setNumNeighbors(unsigned n) { if (n > 0) numNeighbors_ = n; }
323 
328  void setTolerance(float percentage)
329  {
330  if (percentage >=0)
331  {
332  tolerance_ = percentage;
333  rangeInitialized_ = true;
334  }
335  }
336 
337 protected:
340  double getAverage(int bin, const TH1 *h) const;
341 
342  float tolerance_; /*< tolerance for considering a channel noisy */
343  unsigned numNeighbors_; /*< # of neighboring channels for calculating average to be used
344  for comparison with channel under consideration */
345  bool rangeInitialized_; /*< init-flag for tolerance */
346 };
347 
348 //==================== ContentsWithinExpected =========================//
349 // Check that every TH2 channel has mean, RMS within allowed range.
351 {
352 public:
354  {
355  checkMean_ = checkRMS_ = false;
356  minMean_ = maxMean_ = minRMS_ = maxRMS_ = 0.0;
357  checkMeanTolerance_ = false;
358  toleranceMean_ = -1.0;
359  setAlgoName(getAlgoName());
360  }
361  static std::string getAlgoName(void) { return "ContentsWithinExpected"; }
362  float runTest(const MonitorElement *me);
363 
364  void setUseEmptyBins(unsigned int useEmptyBins) {
365  useEmptyBins_ = useEmptyBins;
366  }
367  void setMeanRange(double xmin, double xmax);
368  void setRMSRange(double xmin, double xmax);
369 
371  void setMeanTolerance(float fracTolerance)
372  {
373  if (fracTolerance >= 0.0)
374  {
375  toleranceMean_ = fracTolerance;
376  checkMeanTolerance_ = true;
377  }
378  }
379 
380 protected:
381  bool checkMean_; //< if true, check the mean value
382  bool checkRMS_; //< if true, check the RMS value
383  bool checkMeanTolerance_; //< if true, check mean tolerance
384  float toleranceMean_; //< fractional tolerance on mean (use only if checkMeanTolerance_ = true)
385  float minMean_, maxMean_; //< allowed range for mean (use only if checkMean_ = true)
386  float minRMS_, maxRMS_; //< allowed range for mean (use only if checkRMS_ = true)
387  unsigned int useEmptyBins_;
388 
389 };
390 
391 //==================== MeanWithinExpected =========================//
394 {
395 public:
397  {
398  setAlgoName(getAlgoName());
399  }
400  static std::string getAlgoName(void) { return "MeanWithinExpected"; }
401  float runTest(const MonitorElement*me);
402 
403  void setExpectedMean(double mean) { expMean_ = mean; }
404  void useRange(double xmin, double xmax);
405  void useSigma(double expectedSigma);
406  void useRMS(void) ;
407 
408 protected:
409  bool useRMS_; //< if true, will use RMS of distribution
410  bool useSigma_; //< if true, will use expected_sigma
411  bool useRange_; //< if true, will use allowed range
412  double sigma_; //< sigma to be used in probability calculation (use only if useSigma_ = true)
413  double expMean_; //< expected mean value (used only if useSigma_ = true or useRMS_ = true)
414  double xmin_, xmax_; //< allowed range for mean (use only if useRange_ = true)
415 
416 };
417 
418 //==================== AllContentWithinFixedRange =========================//
419 /*class AllContentWithinFixedRange : public SimpleTest
420 {
421 public:
422  AllContentWithinFixedRange(const std::string &name) : SimpleTest(name)
423  {
424  setAlgoName(getAlgoName());
425  }
426  static std::string getAlgoName(void) { return "RuleAllContentWithinFixedRange"; }
427  float runTest(const MonitorElement *me);
428 
429  void set_x_min(double x) { x_min = x; }
430  void set_x_max(double x) { x_max = x; }
431  void set_epsilon_max(double epsilon) { epsilon_max = epsilon; }
432  void set_S_fail(double S) { S_fail = S; }
433  void set_S_pass(double S) { S_pass = S; }
434  double get_epsilon_obs(void) { return epsilon_obs; }
435  double get_S_fail_obs(void) { return S_fail_obs; }
436  double get_S_pass_obs(void) { return S_pass_obs; }
437  int get_result(void) { return result; }
438 
439 protected:
440  TH1F *histogram ; //define Test histo
441  double x_min, x_max;
442  double epsilon_max;
443  double S_fail, S_pass;
444  double epsilon_obs;
445  double S_fail_obs, S_pass_obs;
446  int result;
447 };
448 */
449 //==================== AllContentWithinFloatingRange =========================//
450 /*class AllContentWithinFloatingRange : public SimpleTest
451 {
452 public:
453  AllContentWithinFloatingRange(const std::string &name) : SimpleTest(name)
454  {
455  setAlgoName(getAlgoName());
456  }
457  static std::string getAlgoName(void) { return "RuleAllContentWithinFloatingRange"; }
458 
459  void set_Nrange(int N) { Nrange = N; }
460  void set_epsilon_max(double epsilon) { epsilon_max = epsilon; }
461  void set_S_fail(double S) { S_fail = S; }
462  void set_S_pass(double S) { S_pass = S; }
463  double get_epsilon_obs(void) { return epsilon_obs; }
464  double get_S_fail_obs(void) { return S_fail_obs; }
465  double get_S_pass_obs(void) { return S_pass_obs; }
466  int get_result(void) { return result; }
467 
468  float runTest(const MonitorElement *me );
469 
470 protected:
471  TH1F *histogram ; //define Test histo
472  int Nrange;
473  double epsilon_max;
474  double S_fail, S_pass;
475  double epsilon_obs;
476  double S_fail_obs, S_pass_obs;
477  int result;
478 };*/
479 
480 //==================== FlatOccupancy1d =========================//
481 #if 0 // FIXME: need to know what parameters to set before runTest!
482 class FlatOccupancy1d : public SimpleTest
483 {
484 public:
485  FlatOccupancy1d(const std::string &name) : SimpleTest(name)
486  {
487  Nbins = 0;
488  FailedBins[0] = 0;
489  FailedBins[1] = 0;
490  setAlgoName(getAlgoName());
491  }
492 
493  ~FlatOccupancy1d(void)
494  {
495  delete [] FailedBins[0];
496  delete [] FailedBins[1];
497  }
498 
499  static std::string getAlgoName(void) { return "RuleFlatOccupancy1d"; }
500 
501  void set_ExclusionMask(double *mask) { ExclusionMask = mask; }
502  void set_epsilon_min(double epsilon) { epsilon_min = epsilon; }
503  void set_epsilon_max(double epsilon) { epsilon_max = epsilon; }
504  void set_S_fail(double S) { S_fail = S; }
505  void set_S_pass(double S) { S_pass = S; }
506  double get_FailedBins(void) { return *FailedBins[1]; } // FIXME: WRONG! OFF BY ONE!?
507  int get_result() { return result; }
508 
509  float runTest(const MonitorElement*me);
510 
511 protected:
512  double *ExclusionMask;
513  double epsilon_min, epsilon_max;
514  double S_fail, S_pass;
515  double *FailedBins[2];
516  int Nbins;
517  int result;
518 };
519 #endif
520 
521 //==================== FixedFlatOccupancy1d =========================//
523 {
524 public:
526  {
527  Nbins = 0;
528  FailedBins[0] = 0;
529  FailedBins[1] = 0;
530  setAlgoName(getAlgoName());
531  }
532 
534  {
535  if( Nbins > 0 )
536  {
537  delete [] FailedBins[0];
538  delete [] FailedBins[1];
539  }
540  }
541 
542  static std::string getAlgoName(void) { return "RuleFixedFlatOccupancy1d"; }
543 
544  void set_Occupancy(double level) { b = level; }
545  void set_ExclusionMask(double *mask) { ExclusionMask = mask; }
546  void set_epsilon_min(double epsilon) { epsilon_min = epsilon; }
547  void set_epsilon_max(double epsilon) { epsilon_max = epsilon; }
548  void set_S_fail(double S) { S_fail = S; }
549  void set_S_pass(double S) { S_pass = S; }
550  double get_FailedBins(void) { return *FailedBins[1]; } // FIXME: WRONG! OFF BY ONE!?
551  int get_result() { return result; }
552 
553  float runTest(const MonitorElement*me);
554 
555 protected:
556  double b;
557  double *ExclusionMask;
558  double epsilon_min, epsilon_max;
559  double S_fail, S_pass;
560  double *FailedBins[2];
561  int Nbins;
562  int result;
563 };
564 
565 //==================== CSC01 =========================//
566 class CSC01 : public SimpleTest
567 {
568 public:
570  {
571  setAlgoName(getAlgoName());
572  }
573  static std::string getAlgoName(void) { return "RuleCSC01"; }
574 
575  void set_epsilon_max(double epsilon) { epsilon_max = epsilon; }
576  void set_S_fail(double S) { S_fail = S; }
577  void set_S_pass(double S) { S_pass = S; }
578  double get_epsilon_obs() { return epsilon_obs; }
579  double get_S_fail_obs() { return S_fail_obs; }
580  double get_S_pass_obs() { return S_pass_obs; }
581  int get_result() { return result; }
582 
583  float runTest(const MonitorElement*me);
584 
585 protected:
586  double epsilon_max;
587  double S_fail, S_pass;
588  double epsilon_obs;
589  double S_fail_obs, S_pass_obs;
590  int result;
591 };
592 
593 //======================== CompareToMedian ====================//
595 {
596 public:
597  //Initialize for TProfile, colRings
599  this->_min = 0.2;
600  this->_max = 3.0;
601  this->_emptyBins = 0;
602  this->_maxMed = 10;
603  this->_minMed = 0;
604  this->nBins = 0;
605  this->_statCut = 0;
606  reset();
607  setAlgoName( getAlgoName() );
608  };
609 
611 
612  static std::string getAlgoName(void) { return "CompareToMedian"; }
613 
614  float runTest(const MonitorElement *me);
615  void setMin(float min){_min = min;};
616  void setMax(float max){_max = max;};
617  void setEmptyBins(int eB){eB > 0 ? _emptyBins = 1 : _emptyBins = 0;};
618  void setMaxMedian(float max){_maxMed = max;};
619  void setMinMedian(float min){_minMed = min;};
620  void setStatCut(float cut){_statCut = (cut > 0) ? cut : 0;};
621 
622 protected :
623  void setMessage(void){
624  std::ostringstream message;
625  message << "Test " << qtname_ << " (" << algoName_
626  << "): Entry fraction within range = " << prob_;
627  message_ = message.str();
628  }
629 
630 private :
631  float _min, _max; //Test values
632  int _emptyBins; //use empty bins
633  float _maxMed,_minMed; //Global max for median&mean
634  float _statCut; //Minimal number of non zero entries needed for the quality test
635 
636  int nBinsX, nBinsY; //Dimensions of hystogram
637 
638  int nBins; //Number of (non empty) bins
639 
640  //Vector contain bin values
641  std::vector<float> binValues;
642 
643  void reset(){binValues.clear();};
644 
645 };
646 //======================== CompareLastFilledBin ====================//
648 {
649 public:
650  //Initialize for TProfile, colRings
652  this->_min = 0.0;
653  this->_max = 1.0;
654  this->_average = 0.0;
655  setAlgoName( getAlgoName() );
656  };
657 
659 
660  static std::string getAlgoName(void) { return "CompareLastFilledBin"; }
661 
662  float runTest(const MonitorElement *me);
663  void setAverage(float average){_average = average;};
664  void setMin(float min){_min = min;};
665  void setMax(float max){_max = max;};
666 
667 
668 protected :
669  void setMessage(void){
670  std::ostringstream message;
671  message << "Test " << qtname_ << " (" << algoName_
672  << "): Last Bin filled with desired value = " << prob_;
673  message_ = message.str();
674  }
675 
676 private :
677  float _min, _max; //Test values
678  float _average;
679 };
680 
681 //==================== AllContentAlongDiagonal =========================//
682 #if 0 // FIXME: need to know what parameters to set before runTest!
683 class AllContentAlongDiagonal : public SimpleTest
684 
685 public:
686  AllContentAlongDiagonal(const std::string &name) : SimpleTest(name)
687  {
688  setAlgoName(getAlgoName());
689  }
690  static std::string getAlgoName(void) { return "RuleAllContentAlongDiagonal"; }
691 
692  void set_epsilon_max(double epsilon) { epsilon_max = epsilon; }
693  void set_S_fail(double S) { S_fail = S; }
694  void set_S_pass(double S) { S_pass = S; }
695  double get_epsilon_obs() { return epsilon_obs; }
696  double get_S_fail_obs() { return S_fail_obs; }
697  double get_S_pass_obs() { return S_pass_obs; }
698  int get_result() { return result; }
699 
700  //public:
701  //using SimpleTest::runTest;
702  float runTest(const MonitorElement*me);
703 
704 protected:
705  double epsilon_max;
706  double S_fail, S_pass;
707  double epsilon_obs;
708  double S_fail_obs, S_pass_obs;
709  int result;
710 };
711 #endif
712 //==================== CheckVariance =========================//
713 //== Check the variance of a TProfile//
714 class CheckVariance : public SimpleTest
715 {
716  public:
718  {
719  setAlgoName(getAlgoName());
720  }
722  static std::string getAlgoName(void) { return "CheckVariance"; }
723  float runTest(const MonitorElement *me) ;
724 };
725 #endif // DQMSERVICES_CORE_Q_CRITERION_H
ContentsWithinExpected ContentsWithinExpectedROOT
Definition: QTest.h:22
void setErrorProb(float prob)
Definition: QTest.h:62
std::string getMessage(void) const
get message attached to test
Definition: QTest.h:55
void set_epsilon_min(double epsilon)
Definition: QTest.h:546
FixedFlatOccupancy1d FixedFlatOccupancy1dROOT
Definition: QTest.h:27
static std::string getAlgoName(void)
get algorithm name
Definition: QTest.h:722
QCriterion * qcriterion_
Definition: QReport.h:51
void setStatCut(float cut)
Definition: QTest.h:620
double get_S_pass_obs()
Definition: QTest.h:580
static std::string getAlgoName(void)
Definition: QTest.h:312
double xmin_
Definition: QTest.h:414
Comp2RefEqualH(const std::string &name)
Definition: QTest.h:173
void setAlgoName(std::string name)
set algorithm name
Definition: QTest.h:77
std::string getName(void) const
get name of quality test
Definition: QTest.h:57
test that histogram contents are above Ymin
Definition: QTest.h:277
double ymin_
ymin - threshold
Definition: QTest.h:296
double epsilon_max
Definition: QTest.h:586
CSC01(const std::string &name)
Definition: QTest.h:569
SimpleTest(const std::string &name, bool keepBadChannels=false)
Definition: QTest.h:137
std::string algorithm
Definition: DQMNet.h:93
bool verbose
void set_ExclusionMask(double *mask)
Definition: QTest.h:545
void setUseEmptyBins(unsigned int useEmptyBins)
Definition: QTest.h:261
void setMin(float min)
Definition: QTest.h:615
double epsilon_obs
Definition: QTest.h:588
int verbose_
Definition: QTest.h:117
static std::string getAlgoName(void)
Definition: QTest.h:361
FlatOccupancy1d FlatOccupancy1dROOT
Definition: QTest.h:26
float _statCut
Definition: QTest.h:634
int status_
Definition: QTest.h:113
virtual void setAllowedXRange(double xmin, double xmax)
set allowed range in X-axis (default values: histogram&#39;s X-range)
Definition: QTest.h:237
float runTest(const MonitorElement *me, QReport &qr, DQMNet::QValue &qv)
Definition: QTest.h:79
FlatOccupancy1d RuleFlatOccupancy1d
Definition: QTest.h:26
double * ExclusionMask
Definition: QTest.h:557
std::string algoName_
name of quality test
Definition: QTest.h:111
Comp2RefChi2 Comp2RefChi2ROOT
Definition: QTest.h:15
static const int WARNING
static std::string getAlgoName(void)
Definition: QTest.h:233
int get_result()
Definition: QTest.h:581
CSC01 CSC01ROOT
Definition: QTest.h:28
double S_pass
Definition: QTest.h:587
int _emptyBins
Definition: QTest.h:632
double S_pass_obs
Definition: QTest.h:589
void setMax(float max)
Definition: QTest.h:616
virtual std::vector< DQMChannel > getBadChannels(void) const
get vector of channels that failed test (not always relevant!)
Definition: QTest.h:145
void setMin(float min)
Definition: QTest.h:664
NoisyChannel NoisyChannelROOT
Definition: QTest.h:20
std::string qtname_
Definition: QTest.h:110
void setNumNeighbors(unsigned n)
Definition: QTest.h:322
static std::string getAlgoName(void)
Definition: QTest.h:285
Algorithm for testing if histogram&#39;s mean value is near expected value.
Definition: QTest.h:393
CheckVariance(const std::string &name)
Definition: QTest.h:717
static std::string getAlgoName(void)
Definition: QTest.h:612
DeadChannel(const std::string &name)
Definition: QTest.h:280
ContentsXRange(const std::string &name)
Definition: QTest.h:228
Check if any channels are noisy compared to neighboring ones.
Definition: QTest.h:303
AllContentAlongDiagonal RuleAllContentAlongDiagonal
Definition: QTest.h:29
double epsilon_min
Definition: QTest.h:558
int Ndof_
Definition: QTest.h:206
bool rangeInitialized_
Definition: QTest.h:245
Comp2RefEqualH Comp2RefEqualHROOT
Definition: QTest.h:17
ContentsXRange ContentsXRangeROOT
Definition: QTest.h:18
CompareToMedian CompareToMedianROOT
Definition: QTest.h:30
float errorProb_
Definition: QTest.h:115
virtual void setMessage(void)
set status & message after test has run
Definition: QTest.h:153
CompareLastFilledBin CompareLastFilledBinROOT
Definition: QTest.h:31
double get_S_fail_obs()
Definition: QTest.h:579
FixedFlatOccupancy1d RuleFixedFlatOccupancy1d
Definition: QTest.h:27
CheckVariance CheckVarianceROOT
Definition: QTest.h:32
float _minMed
Definition: QTest.h:633
FixedFlatOccupancy1d(const std::string &name)
Definition: QTest.h:525
void setEmptyBins(int eB)
Definition: QTest.h:617
Comp2RefKolmogorov Comp2RefKolmogorovROOT
Definition: QTest.h:16
void set_Occupancy(double level)
Definition: QTest.h:544
static std::string getAlgoName(void)
Definition: QTest.h:573
void set_epsilon_max(double epsilon)
Definition: QTest.h:575
static std::string getAlgoName(void)
Definition: QTest.h:218
float prob_
name of algorithm
Definition: QTest.h:112
~CompareToMedian()
Definition: QTest.h:610
std::string algoName(void) const
get algorithm name
Definition: QTest.h:59
CompareLastFilledBin(const std::string &name)
Definition: QTest.h:651
static const float ERROR_PROB_THRESHOLD
Definition: QTest.h:122
void setTolerance(float percentage)
Definition: QTest.h:328
unsigned int useEmptyBins_
Definition: QTest.h:387
CSC01 RuleCSC01
Definition: QTest.h:28
T min(T a, T b)
Definition: MathUtil.h:58
static std::string getAlgoName(void)
Definition: QTest.h:258
void setMinimumEntries(unsigned n)
set minimum # of entries needed
Definition: QTest.h:143
MeanWithinExpected MeanWithinExpectedROOT
Definition: QTest.h:23
virtual std::vector< DQMChannel > getBadChannels(void) const
Definition: QTest.h:65
void reset()
Definition: QTest.h:643
bool checkMeanTolerance_
Definition: QTest.h:383
ContentsWithinExpected(const std::string &name)
Definition: QTest.h:353
void setExpectedMean(double mean)
Definition: QTest.h:403
bool keepBadChannels_
Definition: QTest.h:160
double xmin_
Definition: QTest.h:244
std::string qtname
Definition: DQMNet.h:92
AllContentAlongDiagonal AllContentAlongDiagonalROOT
Definition: QTest.h:29
void setUseEmptyBins(unsigned int useEmptyBins)
Definition: QTest.h:364
double sigma_
Definition: QTest.h:412
void setMaxMedian(float max)
Definition: QTest.h:618
std::string message_
quality test status
Definition: QTest.h:114
bin
set the eta bin as selection string.
int result
Definition: QTest.h:590
static std::string getAlgoName(void)
Definition: QTest.h:177
void set_epsilon_max(double epsilon)
Definition: QTest.h:547
int getStatus(void) const
(class should be created by DQMStore class)
Definition: QTest.h:53
std::vector< float > binValues
Definition: QTest.h:641
NoisyChannel(const std::string &name)
Definition: QTest.h:306
CompareToMedian(const std::string &name)
Definition: QTest.h:598
virtual float runTest(const MonitorElement *me)
Definition: QTest.cc:27
double ymin_
Definition: QTest.h:269
void set_S_pass(double S)
Definition: QTest.h:549
std::vector< DQMChannel > badChannels_
Definition: QTest.h:159
double b
Definition: hdecay.h:120
void setWarningProb(float prob)
set probability limit for warning and error (default: 90% and 50%)
Definition: QTest.h:61
double S(const TLorentzVector &, const TLorentzVector &)
Definition: Particle.cc:99
MeanWithinExpected(const std::string &name)
Definition: QTest.h:396
double get_epsilon_obs()
Definition: QTest.h:578
Comparison to reference using the Kolmogorov algorithm.
Definition: QTest.h:211
static std::string getAlgoName(void)
Definition: QTest.h:542
float tolerance_
Definition: QTest.h:342
void init(void)
initialize values
Definition: QTest.cc:17
void setVerbose(int verbose)
probability limits for warnings, errors
Definition: QTest.h:116
void setMax(float max)
Definition: QTest.h:665
void setMessage(void)
set status & message after test has run
Definition: QTest.h:623
static std::string getAlgoName(void)
Definition: QTest.h:190
void set_S_fail(double S)
Definition: QTest.h:548
bool rangeInitialized_
Definition: QTest.h:270
double expMean_
Definition: QTest.h:413
DeadChannel DeadChannelROOT
Definition: QTest.h:21
QCriterion(std::string qtname)
Definition: QTest.h:69
std::vector< DQMChannel > badChannels_
Definition: QReport.h:52
std::string message
Definition: DQMNet.h:91
static const int STATUS_OK
ContentsYRange(const std::string &name)
Definition: QTest.h:253
ContentsYRange ContentsYRangeROOT
Definition: QTest.h:19
unsigned minEntries_
Definition: QTest.h:158
virtual ~QCriterion(void)
Definition: QTest.h:73
void setMeanTolerance(float fracTolerance)
set (fractional) tolerance for mean
Definition: QTest.h:371
Comp2RefChi2(const std::string &name)
Definition: QTest.h:186
void setThreshold(double ymin)
set Ymin (inclusive) threshold for "dead" channel (default: 0)
Definition: QTest.h:289
void setMessage(void)
set status & message after test has run
Definition: QTest.h:195
void set_S_fail(double S)
Definition: QTest.h:576
bool rangeInitialized_
Definition: QTest.h:297
void setAverage(float average)
Definition: QTest.h:663
~FixedFlatOccupancy1d(void)
Definition: QTest.h:533
virtual void setAllowedYRange(double ymin, double ymax)
Definition: QTest.h:262
float qtresult
Definition: DQMNet.h:90
void reset(double vett[256])
Definition: TPedValues.cc:11
void set_S_pass(double S)
Definition: QTest.h:577
unsigned int useEmptyBins_
Definition: QTest.h:271
float warningProb_
message attached to test
Definition: QTest.h:115
bool rangeInitialized_
Definition: QTest.h:345
Definition: QTest.h:566
double get_FailedBins(void)
Definition: QTest.h:550
virtual void setMessage(void)=0
set message after test has run
float _min
Definition: QTest.h:631
static std::string getAlgoName(void)
Definition: QTest.h:660
static const int ERROR
static std::string getAlgoName(void)
Definition: QTest.h:400
void setMinMedian(float min)
Definition: QTest.h:619
static const float WARNING_PROB_THRESHOLD
default "probability" values for setting warnings & errors when running tests
Definition: QTest.h:121
unsigned numNeighbors_
Definition: QTest.h:343
Comp2RefKolmogorov(const std::string &name)
Definition: QTest.h:214
void setMessage(void)
set status & message after test has run
Definition: QTest.h:669