ATLAS Offline Software
Loading...
Searching...
No Matches
BlackBin1D.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("BlackBin1D", this);
27}
28
31{
32
33 return new BlackBin1D();
34}
35
36
37dqm_core::Result *
38dqm_algorithms::BlackBin1D::execute(const std::string & name,
39 const TObject & object,
40 const dqm_core::AlgorithmConfig & config)
41{
42 const TH1 * histogram;
43
44 if( object.IsA()->InheritsFrom( "TH1" ) ) {
45 histogram = static_cast<const TH1*>(&object);
46 if (histogram->GetDimension() > 2 ){
47 throw dqm_core::BadConfig( ERS_HERE, name, "dimension > 2 " );
48 }
49 } else {
50 throw dqm_core::BadConfig( ERS_HERE, name, "does not inherit from TH1" );
51 }
52
53 //Unused so commented out:
54 //double bin_threshold;
55 //double gthreshold;
56 //double rthreshold;
57 int xbin;
58
59 try {
60 xbin = (int)dqm_algorithms::tools::GetFirstFromMap( "XBin", config.getParameters());
61
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);
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 1D: 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
92}
93
static dqm_algorithms::BinContentComp myInstance
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 &)
void printDescription(std::ostream &out)
#define IsA
Declare the TObject style functions.