ATLAS Offline Software
Loading...
Searching...
No Matches
dqm_algorithms::CountsBinsGreaterThan Class Reference

#include <CountsBinsGreaterThan.h>

Inheritance diagram for dqm_algorithms::CountsBinsGreaterThan:
Collaboration diagram for dqm_algorithms::CountsBinsGreaterThan:

Public Member Functions

 CountsBinsGreaterThan ()
virtual ~CountsBinsGreaterThan ()
virtual dqm_core::Algorithm * clone ()
virtual dqm_core::Result * execute (const std::string &name, const TObject &object, const dqm_core::AlgorithmConfig &config)
virtual void printDescription (std::ostream &out)

Private Attributes

std::string m_name

Detailed Description

Constructor & Destructor Documentation

◆ CountsBinsGreaterThan()

dqm_algorithms::CountsBinsGreaterThan::CountsBinsGreaterThan ( )

Definition at line 32 of file DataQuality/dqm_algorithms/src/CountsBinsGreaterThan.cxx.

34 : m_name("AlgCountsBinsGreaterThan")
35 {
36 dqm_core::AlgorithmManager::instance().registerAlgorithm( m_name, this );
37 }

◆ ~CountsBinsGreaterThan()

dqm_algorithms::CountsBinsGreaterThan::~CountsBinsGreaterThan ( )
virtual

Definition at line 40 of file DataQuality/dqm_algorithms/src/CountsBinsGreaterThan.cxx.

42 {
43 }

Member Function Documentation

◆ clone()

dqm_core::Algorithm * dqm_algorithms::CountsBinsGreaterThan::clone ( )
virtual

◆ execute()

dqm_core::Result * dqm_algorithms::CountsBinsGreaterThan::execute ( const std::string & name,
const TObject & object,
const dqm_core::AlgorithmConfig & config )
virtual

Definition at line 55 of file DataQuality/dqm_algorithms/src/CountsBinsGreaterThan.cxx.

57 {
58 const TH1 * histogram;
59
60 if( object.IsA()->InheritsFrom( "TH1" ) ) {
61 histogram = static_cast<const TH1*>(&object);
62 if (histogram->GetDimension() > 2 ){
63 throw dqm_core::BadConfig( ERS_HERE, name, "dimension > 2 " );
64 }
65 } else {
66 throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TH1" );
67 }
68
69 int binStart, binEnd;
70 int CountsTh;
71 double gmin;
72 double rmin;
73 try {
74 binStart = (int) dqm_algorithms::tools::GetFirstFromMap("BinStart", config.getParameters() );
75 binEnd = (int) dqm_algorithms::tools::GetFirstFromMap("BinEnd" , config.getParameters() );
76 CountsTh = (int) dqm_algorithms::tools::GetFirstFromMap("CountsTh", config.getParameters() );
77 rmin = dqm_algorithms::tools::GetFromMap( "NEntries", config.getRedThresholds());
78 gmin = dqm_algorithms::tools::GetFromMap( "NEntries", config.getGreenThresholds() );
79 }
80 catch ( dqm_core::Exception & ex ) {
81 throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex );
82 }
83
84
85 double count = 0;
86
87 int nbiny = histogram -> GetNbinsY();
88 if(binStart>binEnd) {
89 binStart= 1;
90 binEnd = histogram -> GetNbinsX();
91 }
92 int binSize = binEnd-binStart+1;
93
94 std::vector<double> contents;
95 contents.resize(binSize);
96 for(int i=0;i<binSize;i++) {
97 int binx = binStart+i;
98 contents[i]=0;
99 for ( int j = 1; j <= nbiny; ++j ) {
100 double content= histogram -> GetBinContent(binx,j);
102 if(content>CountsTh)count++;
103 }
104 }
105
106
107 ERS_DEBUG(1,"Number of entries for bins is "<< count );
108 ERS_DEBUG(1,"Green: "<< gmin << " entries; Red: " << rmin << " entries ");
109
110 dqm_core::Result* result = new dqm_core::Result();
111
112
113
114 if ( count >= gmin ) {
115 result->status_ = dqm_core::Result::Green;
116 } else if ( count > rmin ) {
117 result->status_ = dqm_core::Result::Yellow;
118 } else {
119 result->status_ = dqm_core::Result::Red;
120 }
121 result->tags_["BinsAboveTh"] = count;
122
123
124 return result;
125 }
std::string histogram
Definition chains.cxx:52
void contents(std::vector< std::string > &keys, TDirectory *td, const std::string &directory, const std::string &pattern, const std::string &path)
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
double GetFirstFromMap(const std::string &paramName, const std::map< std::string, double > &params)
const T & GetFromMap(const std::string &pname, const std::map< std::string, T > &params)
str content
Definition grepfile.py:56
#define IsA
Declare the TObject style functions.

◆ printDescription()

void dqm_algorithms::CountsBinsGreaterThan::printDescription ( std::ostream & out)
virtual

Definition at line 129 of file DataQuality/dqm_algorithms/src/CountsBinsGreaterThan.cxx.

131 {
132 std::string message;
133 message += "\n";
134 message += "Algorithm: \"" + m_name + "\"\n";
135 message += "Description: Counts the number of listed bins with entries above CountsTh\n";
136 message += "Parameters: BinStart first bin to be checked (1=first bin)\n";
137 message += " BinEnd last bin to be checked (nbin=last bin)\n";
138 message += " CountsTh thresholds on bin counts \n";
139 message += " Nentries Red/Green";
140 message += "\n";
141
142 out << message;
143 }

Member Data Documentation

◆ m_name

std::string dqm_algorithms::CountsBinsGreaterThan::m_name
private

The documentation for this class was generated from the following files: