CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
ContentSigma Class Reference

Check the sigma of each bin against the rest of the chamber by a factor of tolerance/. More...

#include <QTest.h>

Inheritance diagram for ContentSigma:
SimpleTest QCriterion

Public Member Functions

 ContentSigma (const std::string &name)
 
float runTest (const MonitorElement *me) override
 
void setDead (bool dead)
 
void setNoisy (bool noisy)
 
void setNumNeighborsX (unsigned ncx)
 
void setNumNeighborsY (unsigned ncy)
 
void setNumXblocks (unsigned ncx)
 
void setNumYblocks (unsigned ncy)
 
void setToleranceDead (float factorDead)
 
void setToleranceNoisy (float factorNoisy)
 
void setXMax (unsigned xMax)
 
void setXMin (unsigned xMin)
 
void setYMax (unsigned yMax)
 
void setYMin (unsigned yMin)
 
- Public Member Functions inherited from SimpleTest
std::vector< DQMChannelgetBadChannels () const override
 get vector of channels that failed test (not always relevant!) More...
 
void setMinimumEntries (unsigned n)
 set minimum # of entries needed More...
 
 SimpleTest (const std::string &name, bool keepBadChannels=false)
 
- Public Member Functions inherited from QCriterion
std::string algoName () const
 get algorithm name More...
 
std::string getMessage () const
 get message attached to test More...
 
std::string getName () const
 get name of quality test More...
 
int getStatus () const
 get test status More...
 
void init ()
 initialize values More...
 
 QCriterion (std::string qtname)
 
float runTest (const MonitorElement *me, QReport &qr, DQMNet::QValue &qv)
 
void setErrorProb (float prob)
 
void setWarningProb (float prob)
 set probability limit for warning and error (default: 90% and 50%) More...
 
virtual ~QCriterion ()=default
 

Static Public Member Functions

static std::string getAlgoName ()
 

Protected Member Functions

double getNeighborSigma (double average, unsigned groupx, unsigned groupy, unsigned Xblocks, unsigned Yblocks, unsigned neighborsX, unsigned neighborsY, const TH1 *h) const
 
double getNeighborSum (unsigned groupx, unsigned groupy, unsigned Xblocks, unsigned Yblocks, unsigned neighborsX, unsigned neighborsY, const TH1 *h) const
 for each bin get sum of the surrounding neighbors More...
 
- Protected Member Functions inherited from SimpleTest
void setMessage () override
 set status & message after test has run More...
 
- Protected Member Functions inherited from QCriterion
void setAlgoName (std::string name)
 set algorithm name More...
 
void setVerbose (int verbose)
 probability limits for warnings, errors More...
 

Protected Attributes

bool dead_
 
bool noisy_
 
unsigned numNeighborsX_
 
unsigned numNeighborsY_
 
unsigned numXblocks_
 
unsigned numYblocks_
 
bool rangeInitialized_
 
float toleranceDead_
 
float toleranceNoisy_
 
unsigned xMax_
 
unsigned xMin_
 
unsigned yMax_
 
unsigned yMin_
 
- Protected Attributes inherited from SimpleTest
std::vector< DQMChannelbadChannels_
 
bool keepBadChannels_
 
unsigned minEntries_
 
- Protected Attributes inherited from QCriterion
std::string algoName_
 name of quality test More...
 
float errorProb_
 
std::string message_
 quality test status More...
 
float prob_
 name of algorithm More...
 
std::string qtname_
 
int status_
 
int verbose_
 
float warningProb_
 message attached to test More...
 

Additional Inherited Members

- Public Types inherited from QCriterion
typedef dqm::legacy::MonitorElement MonitorElement
 (class should be created by DQMStore class) More...
 
- Static Public Attributes inherited from QCriterion
static const float ERROR_PROB_THRESHOLD = 0.50
 
static const float WARNING_PROB_THRESHOLD = 0.90
 default "probability" values for setting warnings & errors when running tests More...
 

Detailed Description

Check the sigma of each bin against the rest of the chamber by a factor of tolerance/.

Definition at line 267 of file QTest.h.

Constructor & Destructor Documentation

◆ ContentSigma()

ContentSigma::ContentSigma ( const std::string &  name)
inline

Definition at line 269 of file QTest.h.

References getAlgoName(), numNeighborsX_, numNeighborsY_, numXblocks_, numYblocks_, rangeInitialized_, and QCriterion::setAlgoName().

269  : SimpleTest(name, true) {
270  rangeInitialized_ = false;
271  numXblocks_ = 1;
272  numYblocks_ = 1;
273  numNeighborsX_ = 1;
274  numNeighborsY_ = 1;
276  }
unsigned numYblocks_
Definition: QTest.h:351
void setAlgoName(std::string name)
set algorithm name
Definition: QTest.h:96
SimpleTest(const std::string &name, bool keepBadChannels=false)
Definition: QTest.h:124
unsigned numXblocks_
Definition: QTest.h:350
bool rangeInitialized_
Definition: QTest.h:356
unsigned numNeighborsY_
Definition: QTest.h:354
unsigned numNeighborsX_
Definition: QTest.h:352
static std::string getAlgoName()
Definition: QTest.h:277

Member Function Documentation

◆ getAlgoName()

static std::string ContentSigma::getAlgoName ( )
inlinestatic

Definition at line 277 of file QTest.h.

Referenced by ContentSigma(), and QualityTester::makeQCriterion().

277 { return "ContentSigma"; }

◆ getNeighborSigma()

double ContentSigma::getNeighborSigma ( double  average,
unsigned  groupx,
unsigned  groupy,
unsigned  Xblocks,
unsigned  Yblocks,
unsigned  neighborsX,
unsigned  neighborsY,
const TH1 *  h 
) const
protected

Definition at line 775 of file QTest.cc.

References h, hlt_dqm_clientPB-live_cfg::nbinsX, L1THistDefinitions_cff::nbinsY, multiplicitycorr_cfi::xMax, photonAnalyzer_cfi::xMin, multiplicitycorr_cfi::yMax, and photonAnalyzer_cfi::yMin.

782  {
783  double sigma = 0;
784  unsigned nbinsX = h->GetXaxis()->GetNbins();
785  unsigned nbinsY = h->GetYaxis()->GetNbins();
786  unsigned xMin = 1;
787  unsigned yMin = 1;
788  unsigned xMax = nbinsX;
789  unsigned yMax = nbinsY;
790  unsigned Xbinnum = 1;
791  unsigned Ybinnum = 1;
792  double block_sum;
793 
794  if (xMin_ != 0 && xMax_ != 0) {
795  if ((xMax_ <= nbinsX) && (xMin_ <= xMax_)) {
796  nbinsX = xMax_ - xMin_ + 1;
797  xMax = xMax_;
798  xMin = xMin_;
799  }
800  }
801  if (yMin_ != 0 && yMax_ != 0) {
802  if ((yMax_ <= nbinsY) && (yMin_ <= yMax_)) {
803  nbinsY = yMax_ - yMin_ + 1;
804  yMax = yMax_;
805  yMin = yMin_;
806  }
807  }
808  if (Xblocks == 999) {
809  Xblocks = nbinsX;
810  }
811  if (Yblocks == 999) {
812  Yblocks = nbinsY;
813  }
814 
815  Xbinnum = nbinsX / Xblocks;
816  Ybinnum = nbinsY / Yblocks;
817 
818  unsigned xLow, xHi, yLow, yHi;
819  for (unsigned x_block_count = 0; x_block_count <= 2 * neighborsX; ++x_block_count) {
820  for (unsigned y_block_count = 0; y_block_count <= 2 * neighborsY; ++y_block_count) {
821  //Sum over blocks. Need to find standard deviation of average of blocksums. Set up low and hi values similar to sum but for blocks now.
822  if (groupx + x_block_count > neighborsX) {
823  xLow = (groupx + x_block_count - neighborsX) * Xbinnum + xMin;
824  if (xLow < xMin) {
825  xLow = xMin;
826  }
827  } else {
828  xLow = xMin;
829  }
830  xHi = xLow + Xbinnum;
831  if (xHi > xMax) {
832  xHi = xMax;
833  }
834  if (groupy + y_block_count > neighborsY) {
835  yLow = (groupy + y_block_count - neighborsY) * Ybinnum + yMin;
836  if (yLow < yMin) {
837  yLow = yMin;
838  }
839  } else {
840  yLow = yMin;
841  }
842  yHi = yLow + Ybinnum;
843  if (yHi > yMax) {
844  yHi = yMax;
845  }
846  block_sum = 0;
847  for (unsigned x_block_bin = xLow; x_block_bin <= xHi; ++x_block_bin) {
848  for (unsigned y_block_bin = yLow; y_block_bin <= yHi; ++y_block_bin) {
849  block_sum += h->GetBinContent(x_block_bin, y_block_bin);
850  }
851  }
852  sigma += (average - block_sum) * (average - block_sum); //will sqrt and divide by sqrt(N-1) outside of function
853  }
854  }
855  return sigma;
856 }
unsigned yMax_
Definition: QTest.h:360
unsigned yMin_
Definition: QTest.h:359
unsigned xMin_
Definition: QTest.h:357
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
unsigned xMax_
Definition: QTest.h:358

◆ getNeighborSum()

double ContentSigma::getNeighborSum ( unsigned  groupx,
unsigned  groupy,
unsigned  Xblocks,
unsigned  Yblocks,
unsigned  neighborsX,
unsigned  neighborsY,
const TH1 *  h 
) const
protected

for each bin get sum of the surrounding neighbors

Definition at line 695 of file QTest.cc.

References h, hlt_dqm_clientPB-live_cfg::nbinsX, L1THistDefinitions_cff::nbinsY, multiplicitycorr_cfi::xMax, photonAnalyzer_cfi::xMin, multiplicitycorr_cfi::yMax, and photonAnalyzer_cfi::yMin.

701  {
702  double sum = 0;
703  unsigned nbinsX = h->GetXaxis()->GetNbins();
704  unsigned nbinsY = h->GetYaxis()->GetNbins();
705  unsigned xMin = 1;
706  unsigned yMin = 1;
707  unsigned xMax = nbinsX;
708  unsigned yMax = nbinsY;
709  unsigned Xbinnum = 1;
710  unsigned Ybinnum = 1;
711 
712  //give users option for automatic mininum and maximum selection by inputting 0 to any of the parameters
713  // check that user's parameters are completely in agreement with histogram
714  // for instance, if inputted xMax is out of range xMin will automatically be ignored
715  if (xMin_ != 0 && xMax_ != 0) {
716  if ((xMax_ <= nbinsX) && (xMin_ <= xMax_)) {
717  nbinsX = xMax_ - xMin_ + 1;
718  xMax = xMax_; // do NOT use overflow bin
719  xMin = xMin_; // do NOT use underflow bin
720  }
721  }
722  if (yMin_ != 0 && yMax_ != 0) {
723  if ((yMax_ <= nbinsY) && (yMin_ <= yMax_)) {
724  nbinsY = yMax_ - yMin_ + 1;
725  yMax = yMax_;
726  yMin = yMin_;
727  }
728  }
729 
730  if (Xblocks == 999) { //Check to see if blocks should be ignored
731  Xblocks = nbinsX;
732  }
733  if (Yblocks == 999) {
734  Yblocks = nbinsY;
735  }
736 
737  Xbinnum = nbinsX / Xblocks;
738  Ybinnum = nbinsY / Yblocks;
739 
740  unsigned xLow, xHi, yLow, yHi; //Define the neighbor blocks edges to be summed
741  if (groupx > neighborsX) {
742  xLow = (groupx - neighborsX) * Xbinnum + xMin;
743  if (xLow < xMin) {
744  xLow = xMin; //If the neigbor block would go outside the histogram edge, set it the edge
745  }
746  } else {
747  xLow = xMin;
748  }
749  xHi = (groupx + 1 + neighborsX) * Xbinnum + xMin;
750  if (xHi > xMax) {
751  xHi = xMax;
752  }
753  if (groupy > neighborsY) {
754  yLow = (groupy - neighborsY) * Ybinnum + yMin;
755  if (yLow < yMin) {
756  yLow = yMin;
757  }
758  } else {
759  yLow = yMin;
760  }
761  yHi = (groupy + 1 + neighborsY) * Ybinnum + yMin;
762  if (yHi > yMax) {
763  yHi = yMax;
764  }
765 
766  for (unsigned xbin = xLow; xbin <= xHi; ++xbin) { //now sum over all the bins
767  for (unsigned ybin = yLow; ybin <= yHi; ++ybin) {
768  sum += h->GetBinContent(xbin, ybin);
769  }
770  }
771  return sum;
772 }
unsigned yMax_
Definition: QTest.h:360
unsigned yMin_
Definition: QTest.h:359
unsigned xMin_
Definition: QTest.h:357
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
unsigned xMax_
Definition: QTest.h:358

◆ runTest()

float ContentSigma::runTest ( const MonitorElement me)
overridevirtual

Reimplemented from QCriterion.

Definition at line 488 of file QTest.cc.

References funct::abs(), gather_cfg::cout, h, hlt_dqm_clientPB-live_cfg::me, hlt_dqm_clientPB-live_cfg::nbinsX, L1THistDefinitions_cff::nbinsY, mathSSE::sqrt(), MonitorElementData::TH1D, MonitorElementData::TH1F, MonitorElementData::TH1S, MonitorElementData::TH2D, MonitorElementData::TH2F, MonitorElementData::TH2S, multiplicitycorr_cfi::xMax, photonAnalyzer_cfi::xMin, multiplicitycorr_cfi::yMax, and photonAnalyzer_cfi::yMin.

488  {
489  badChannels_.clear();
490  if (!me)
491  return -1;
492  if (!me->getRootObject())
493  return -1;
494  TH1* h = nullptr; //initialize histogram pointer
495 
496  if (verbose_ > 1)
497  std::cout << "QTest:" << getAlgoName() << "::runTest called on " << me->getFullname() << "\n";
498 
499  unsigned nbinsX;
500  unsigned nbinsY;
501 
502  //-- TH1F
503  if (me->kind() == MonitorElement::Kind::TH1F) {
504  nbinsX = me->getTH1F()->GetXaxis()->GetNbins();
505  nbinsY = me->getTH1F()->GetYaxis()->GetNbins();
506  h = me->getTH1F(); // access Test histo
507  }
508  //-- TH1S
509  else if (me->kind() == MonitorElement::Kind::TH1S) {
510  nbinsX = me->getTH1S()->GetXaxis()->GetNbins();
511  nbinsY = me->getTH1S()->GetYaxis()->GetNbins();
512  h = me->getTH1S(); // access Test histo
513  }
514  //-- TH1D
515  else if (me->kind() == MonitorElement::Kind::TH1D) {
516  nbinsX = me->getTH1D()->GetXaxis()->GetNbins();
517  nbinsY = me->getTH1D()->GetYaxis()->GetNbins();
518  h = me->getTH1D(); // access Test histo
519  }
520  //-- TH2
521  else if (me->kind() == MonitorElement::Kind::TH2F) {
522  nbinsX = me->getTH2F()->GetXaxis()->GetNbins();
523  nbinsY = me->getTH2F()->GetYaxis()->GetNbins();
524  h = me->getTH2F(); // access Test histo
525  }
526  //-- TH2
527  else if (me->kind() == MonitorElement::Kind::TH2S) {
528  nbinsX = me->getTH2S()->GetXaxis()->GetNbins();
529  nbinsY = me->getTH2S()->GetYaxis()->GetNbins();
530  h = me->getTH2S(); // access Test histo
531  }
532  //-- TH2
533  else if (me->kind() == MonitorElement::Kind::TH2D) {
534  nbinsX = me->getTH2D()->GetXaxis()->GetNbins();
535  nbinsY = me->getTH2D()->GetYaxis()->GetNbins();
536  h = me->getTH2D(); // access Test histo
537  } else {
538  if (verbose_ > 0)
539  std::cout << "QTest:ContentSigma"
540  << " ME " << me->getFullname() << " does not contain TH1F/TH1S/TH1D or TH2F/TH2S/TH2D, exiting\n";
541  return -1;
542  }
543 
544  //-- QUALITY TEST itself
545 
546  if (!rangeInitialized_ || !h->GetXaxis())
547  return 1; // all channels are accepted if tolerance has not been set
548 
549  int fail = 0; // initialize bin failure count
550  unsigned xMin = 1; //initialize minimums and maximums with expected values
551  unsigned yMin = 1;
552  unsigned xMax = nbinsX;
553  unsigned yMax = nbinsY;
554  unsigned XBlocks = numXblocks_; //Initialize xml inputs blocks and neighbors
555  unsigned YBlocks = numYblocks_;
556  unsigned neighborsX = numNeighborsX_;
557  unsigned neighborsY = numNeighborsY_;
558  unsigned Xbinnum = 1;
559  unsigned Ybinnum = 1;
560  unsigned XWidth = 0;
561  unsigned YWidth = 0;
562 
563  if (neighborsX == 999) {
564  neighborsX = 0;
565  }
566  if (neighborsY == 999) {
567  neighborsY = 0;
568  }
569 
570  //give users option for automatic mininum and maximum selection by inputting 0 to any of the parameters
571  // check that user's parameters are completely in agreement with histogram
572  // for instance, if inputted xMax is out of range xMin will automatically be ignored
573  if (xMin_ != 0 && xMax_ != 0) {
574  if ((xMax_ <= nbinsX) && (xMin_ <= xMax_)) { // rescale area of histogram being analyzed
575  nbinsX = xMax_ - xMin_ + 1;
576  xMax = xMax_; // do NOT use overflow bin
577  xMin = xMin_; // do NOT use underflow bin
578  }
579  }
580  //give users option for automatic mininum and maximum selection by inputting 0 to any of the parameters
581  if (yMin_ != 0 && yMax_ != 0) {
582  if ((yMax_ <= nbinsY) && (yMin_ <= yMax_)) {
583  nbinsY = yMax_ - yMin_ + 1;
584  yMax = yMax_;
585  yMin = yMin_;
586  }
587  }
588 
589  if (neighborsX * 2 >= nbinsX) { //make sure neighbor check does not overlap with bin under consideration
590  if (nbinsX % 2 == 0) {
591  neighborsX = nbinsX / 2 - 1; //set neighbors for no overlap
592  } else {
593  neighborsX = (nbinsX - 1) / 2;
594  }
595  }
596 
597  if (neighborsY * 2 >= nbinsY) {
598  if (nbinsY % 2 == 0) {
599  neighborsY = nbinsY / 2 - 1;
600  } else {
601  neighborsY = (nbinsY - 1) / 2;
602  }
603  }
604 
605  if (XBlocks == 999) { //Setting 999 prevents blocks and does quality tests by bins only
606  XBlocks = nbinsX;
607  }
608  if (YBlocks == 999) {
609  YBlocks = nbinsY;
610  }
611 
612  Xbinnum = nbinsX / XBlocks;
613  Ybinnum = nbinsY / YBlocks;
614  for (unsigned groupx = 0; groupx < XBlocks; ++groupx) { //Test over all the blocks
615  for (unsigned groupy = 0; groupy < YBlocks; ++groupy) {
616  double blocksum = 0;
617  for (unsigned binx = 0; binx < Xbinnum; ++binx) { //Sum the contents of the block in question
618  for (unsigned biny = 0; biny < Ybinnum; ++biny) {
619  if (groupx * Xbinnum + xMin + binx <= xMax && groupy * Ybinnum + yMin + biny <= yMax) {
620  blocksum += abs(h->GetBinContent(groupx * Xbinnum + xMin + binx, groupy * Ybinnum + yMin + biny));
621  }
622  }
623  }
624 
625  double sum = getNeighborSum(groupx, groupy, XBlocks, YBlocks, neighborsX, neighborsY, h);
626  sum -= blocksum; //remove center block to test
627 
628  if (neighborsX > groupx) { //Find correct average at the edges
629  XWidth = neighborsX + groupx + 1;
630  } else if (neighborsX > (XBlocks - (groupx + 1))) {
631  XWidth = (XBlocks - groupx) + neighborsX;
632  } else {
633  XWidth = 2 * neighborsX + 1;
634  }
635  if (neighborsY > groupy) {
636  YWidth = neighborsY + groupy + 1;
637  } else if (neighborsY > (YBlocks - (groupy + 1))) {
638  YWidth = (YBlocks - groupy) + neighborsY;
639  } else {
640  YWidth = 2 * neighborsY + 1;
641  }
642 
643  double average = sum / (XWidth * YWidth - 1);
644  double sigma = getNeighborSigma(average, groupx, groupy, XBlocks, YBlocks, neighborsX, neighborsY, h);
645  //get rid of block being tested just like we did with the average
646  sigma -= (average - blocksum) * (average - blocksum);
647  double sigma_2 = sqrt(sigma) / sqrt(XWidth * YWidth - 2); //N-1 where N=XWidth*YWidth - 1
648  double sigma_real = sigma_2 / (XWidth * YWidth - 1);
649  //double avg_uncrt = average*sqrt(sum)/sum;//Obsolete now(Chad Freer)
650  double avg_uncrt = 3 * sigma_real;
651 
652  double probNoisy = ROOT::Math::poisson_cdf_c(blocksum - 1, average + avg_uncrt);
653  double probDead = ROOT::Math::poisson_cdf(blocksum, average - avg_uncrt);
654  double thresholdNoisy = ROOT::Math::normal_cdf_c(toleranceNoisy_);
655  double thresholdDead = ROOT::Math::normal_cdf(-1 * toleranceDead_);
656 
657  int failureNoisy = 0;
658  int failureDead = 0;
659 
660  if (average != 0) {
661  if (noisy_ && dead_) {
662  if (blocksum > average) {
663  failureNoisy = probNoisy < thresholdNoisy;
664  } else {
665  failureDead = probDead < thresholdDead;
666  }
667  } else if (noisy_) {
668  if (blocksum > average) {
669  failureNoisy = probNoisy < thresholdNoisy;
670  }
671  } else if (dead_) {
672  if (blocksum < average) {
673  failureDead = probDead < thresholdDead;
674  }
675  } else {
676  std::cout << "No test type selected!\n";
677  }
678  //Following lines useful for debugging using verbose (Chad Freer)
679  //string histName = h->GetName();
680  //if (histName == "emtfTrackBX") {
681  // std::printf("Chad says: %i XBlocks, %i XBlocks, %f Blocksum, %f Average", XBlocks,YBlocks,blocksum,average);}
682  }
683 
684  if (failureNoisy || failureDead) {
685  ++fail;
686  //DQMChannel chan(groupx*Xbinnum+xMin+binx, 0, 0, blocksum, h->GetBinError(groupx*Xbinnum+xMin+binx));
687  //badChannels_.push_back(chan);
688  }
689  }
690  }
691  return 1. * ((XBlocks * YBlocks) - fail) / (XBlocks * YBlocks);
692 }
unsigned numYblocks_
Definition: QTest.h:351
int verbose_
Definition: QTest.h:110
unsigned yMax_
Definition: QTest.h:360
double getNeighborSigma(double average, unsigned groupx, unsigned groupy, unsigned Xblocks, unsigned Yblocks, unsigned neighborsX, unsigned neighborsY, const TH1 *h) const
Definition: QTest.cc:775
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
unsigned numXblocks_
Definition: QTest.h:350
float toleranceNoisy_
Definition: QTest.h:348
bool rangeInitialized_
Definition: QTest.h:356
unsigned numNeighborsY_
Definition: QTest.h:354
bool dead_
Definition: QTest.h:347
float toleranceDead_
Definition: QTest.h:349
unsigned numNeighborsX_
Definition: QTest.h:352
unsigned yMin_
Definition: QTest.h:359
std::vector< DQMChannel > badChannels_
Definition: QTest.h:139
unsigned xMin_
Definition: QTest.h:357
double getNeighborSum(unsigned groupx, unsigned groupy, unsigned Xblocks, unsigned Yblocks, unsigned neighborsX, unsigned neighborsY, const TH1 *h) const
for each bin get sum of the surrounding neighbors
Definition: QTest.cc:695
static std::string getAlgoName()
Definition: QTest.h:277
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
unsigned xMax_
Definition: QTest.h:358
bool noisy_
Definition: QTest.h:346

◆ setDead()

void ContentSigma::setDead ( bool  dead)
inline

Definition at line 320 of file QTest.h.

References dead_.

320 { dead_ = dead; }
bool dead_
Definition: QTest.h:347

◆ setNoisy()

void ContentSigma::setNoisy ( bool  noisy)
inline

Definition at line 319 of file QTest.h.

References noisy_.

319 { noisy_ = noisy; }
bool noisy_
Definition: QTest.h:346

◆ setNumNeighborsX()

void ContentSigma::setNumNeighborsX ( unsigned  ncx)
inline

Definition at line 295 of file QTest.h.

References numNeighborsX_.

295  {
296  if (ncx > 0)
297  numNeighborsX_ = ncx;
298  }
unsigned numNeighborsX_
Definition: QTest.h:352

◆ setNumNeighborsY()

void ContentSigma::setNumNeighborsY ( unsigned  ncy)
inline

Definition at line 299 of file QTest.h.

References numNeighborsY_.

299  {
300  if (ncy > 0)
301  numNeighborsY_ = ncy;
302  }
unsigned numNeighborsY_
Definition: QTest.h:354

◆ setNumXblocks()

void ContentSigma::setNumXblocks ( unsigned  ncx)
inline

set # of neighboring channels for calculating average to be used for comparison with channel under consideration; use 1 for considering bin+1 and bin-1 (default), use 2 for considering bin+1,bin-1, bin+2,bin-2, etc; Will use rollover when bin+i or bin-i is beyond histogram limits (e.g. for histogram with N bins, bin N+1 corresponds to bin 1, and bin -1 corresponds to bin N)

Definition at line 287 of file QTest.h.

References numXblocks_.

287  {
288  if (ncx > 0)
289  numXblocks_ = ncx;
290  }
unsigned numXblocks_
Definition: QTest.h:350

◆ setNumYblocks()

void ContentSigma::setNumYblocks ( unsigned  ncy)
inline

Definition at line 291 of file QTest.h.

References numYblocks_.

291  {
292  if (ncy > 0)
293  numYblocks_ = ncy;
294  }
unsigned numYblocks_
Definition: QTest.h:351

◆ setToleranceDead()

void ContentSigma::setToleranceDead ( float  factorDead)
inline

Definition at line 313 of file QTest.h.

References rangeInitialized_, and toleranceDead_.

313  {
314  if (factorDead >= 0) {
315  toleranceDead_ = factorDead;
316  rangeInitialized_ = true;
317  }
318  }
bool rangeInitialized_
Definition: QTest.h:356
float toleranceDead_
Definition: QTest.h:349

◆ setToleranceNoisy()

void ContentSigma::setToleranceNoisy ( float  factorNoisy)
inline

set factor tolerance for considering a channel noisy or dead; eg. if tolerance = 1, channel will be noisy if (content - 1 x sigma) > chamber_avg or channel will be dead if (content - 1 x sigma) < chamber_avg

Definition at line 307 of file QTest.h.

References rangeInitialized_, and toleranceNoisy_.

307  {
308  if (factorNoisy >= 0) {
309  toleranceNoisy_ = factorNoisy;
310  rangeInitialized_ = true;
311  }
312  }
float toleranceNoisy_
Definition: QTest.h:348
bool rangeInitialized_
Definition: QTest.h:356

◆ setXMax()

void ContentSigma::setXMax ( unsigned  xMax)
inline

Definition at line 323 of file QTest.h.

References multiplicitycorr_cfi::xMax, and xMax_.

◆ setXMin()

void ContentSigma::setXMin ( unsigned  xMin)
inline

Definition at line 322 of file QTest.h.

References photonAnalyzer_cfi::xMin, and xMin_.

322 { xMin_ = xMin; }
unsigned xMin_
Definition: QTest.h:357

◆ setYMax()

void ContentSigma::setYMax ( unsigned  yMax)
inline

Definition at line 325 of file QTest.h.

References multiplicitycorr_cfi::yMax, and yMax_.

◆ setYMin()

void ContentSigma::setYMin ( unsigned  yMin)
inline

Definition at line 324 of file QTest.h.

References photonAnalyzer_cfi::yMin, and yMin_.

324 { yMin_ = yMin; }
unsigned yMin_
Definition: QTest.h:359

Member Data Documentation

◆ dead_

bool ContentSigma::dead_
protected

Definition at line 347 of file QTest.h.

Referenced by setDead().

◆ noisy_

bool ContentSigma::noisy_
protected

Definition at line 346 of file QTest.h.

Referenced by setNoisy().

◆ numNeighborsX_

unsigned ContentSigma::numNeighborsX_
protected

Definition at line 352 of file QTest.h.

Referenced by ContentSigma(), and setNumNeighborsX().

◆ numNeighborsY_

unsigned ContentSigma::numNeighborsY_
protected

Definition at line 354 of file QTest.h.

Referenced by ContentSigma(), and setNumNeighborsY().

◆ numXblocks_

unsigned ContentSigma::numXblocks_
protected

Definition at line 350 of file QTest.h.

Referenced by ContentSigma(), and setNumXblocks().

◆ numYblocks_

unsigned ContentSigma::numYblocks_
protected

Definition at line 351 of file QTest.h.

Referenced by ContentSigma(), and setNumYblocks().

◆ rangeInitialized_

bool ContentSigma::rangeInitialized_
protected

Definition at line 356 of file QTest.h.

Referenced by ContentSigma(), setToleranceDead(), and setToleranceNoisy().

◆ toleranceDead_

float ContentSigma::toleranceDead_
protected

Definition at line 349 of file QTest.h.

Referenced by setToleranceDead().

◆ toleranceNoisy_

float ContentSigma::toleranceNoisy_
protected

Definition at line 348 of file QTest.h.

Referenced by setToleranceNoisy().

◆ xMax_

unsigned ContentSigma::xMax_
protected

Definition at line 358 of file QTest.h.

Referenced by setXMax().

◆ xMin_

unsigned ContentSigma::xMin_
protected

Definition at line 357 of file QTest.h.

Referenced by setXMin().

◆ yMax_

unsigned ContentSigma::yMax_
protected

Definition at line 360 of file QTest.h.

Referenced by setYMax().

◆ yMin_

unsigned ContentSigma::yMin_
protected

Definition at line 359 of file QTest.h.

Referenced by setYMin().