ATLAS Offline Software
Loading...
Searching...
No Matches
BlackBin.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
8
9#include <dqm_core/AlgorithmConfig.h>
12#include <TH1.h>
13#include <TH2.h>
14#include <TF1.h>
15#include <TClass.h>
16#include <ers/ers.h>
17
18
19#include <dqm_core/AlgorithmManager.h>
20
22
24
25{
26 dqm_core::AlgorithmManager::instance().registerAlgorithm("BlackBin", this);
27}
28
31{
32
33 return new BlackBin();
34}
35
36
37dqm_core::Result *
38dqm_algorithms::BlackBin::execute(const std::string & name,
39 const TObject & object,
40 const dqm_core::AlgorithmConfig & config)
41{
42 const TH2 * histogram;
43
44 if( object.IsA()->InheritsFrom( "TH2" ) ) {
45 histogram = static_cast<const TH2*>(&object);
46 if (histogram->GetDimension() > 3 ){
47 throw dqm_core::BadConfig( ERS_HERE, name, "dimension > 3 " );
48 }
49 } else {
50 throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TH2" );
51 }
52
53 // Unused, so commented out: (Why does this algorithm not take a threshold?)
54 // double bin_threshold;
55 // double gthreshold;
56 // double rthreshold;
57 int xbin;
58 int ybin;
59 try {
60 xbin = (int)dqm_algorithms::tools::GetFirstFromMap( "XBin", config.getParameters());
61 ybin = (int)dqm_algorithms::tools::GetFirstFromMap( "YBin", config.getParameters());
62 }
63 catch ( dqm_core::Exception & ex ) {
64 //out << "Some of the parameters are missing!" << std::endl;
65 throw dqm_core::BadConfig( ERS_HERE, name, ex.what(), ex );
66 }
67
68 //Get the bin content of the histogram
69 double binContents= histogram -> GetBinContent(xbin,ybin);
70
71 dqm_core::Result* result = new dqm_core::Result();
72 result->tags_["BinContent"] = binContents;
73 if(binContents>0){
74 result->status_ = dqm_core::Result::Disabled;
75 }
76 else {
77 result->status_ = dqm_core::Result::Green;
78 }
79
80 return result;
81}
82
83void
85{
86
87 out<<"Black bin: Returns status -1 (black) if bin has no contents\n" << std::endl;
88
89 out<<"Mandatory parameter: XBin: The label of the X bin that you would like to check\n"<<std::endl;
90
91 out<<"Mandatory parameter: YBin: The label of the Y bin that you would like to check\n"<<std::endl;
92
93}
94
static dqm_algorithms::BinContentComp myInstance
file declares the dqm_algorithms::BlackBin class.
std::string histogram
Definition chains.cxx:52
double GetFirstFromMap(const std::string &paramName, const std::map< std::string, double > &params)
dqm_core::Result * execute(const std::string &, const TObject &, const dqm_core::AlgorithmConfig &)
Definition BlackBin.cxx:38
void printDescription(std::ostream &out)
Definition BlackBin.cxx:84
#define IsA
Declare the TObject style functions.