ATLAS Offline Software
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 
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 
21 static dqm_algorithms::BlackBin myInstance;
22 
24 
25 {
26  dqm_core::AlgorithmManager::instance().registerAlgorithm("BlackBin", this);
27 }
28 
31 {
32 
33  return new BlackBin();
34 }
35 
36 
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 
72  result->tags_["BinContent"] = binContents;
73  if(binContents>0){
74  result->status_ = dqm_core::Result::Disabled;
75  }
76  else {
78  }
79 
80  return result;
81 }
82 
83 void
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 
get_generator_info.result
result
Definition: get_generator_info.py:21
IsA
#define IsA
Declare the TObject style functions.
Definition: xAODTEventBranch.h:59
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
dqm_algorithms::BlackBin::BlackBin
BlackBin()
Definition: BlackBin.cxx:23
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
dqm_algorithms::BlackBin
Definition: BlackBin.h:19
dqm_algorithms::BlackBin::printDescription
void printDescription(std::ostream &out)
Definition: BlackBin.cxx:84
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
instance
std::map< std::string, double > instance
Definition: Run_To_Get_Tags.h:8
Result
ICscStripFitter::Result Result
Definition: CalibCscStripFitter.cxx:13
python.handimod.Green
int Green
Definition: handimod.py:524
dqm_algorithms::BlackBin::execute
dqm_core::Result * execute(const std::string &, const TObject &, const dqm_core::AlgorithmConfig &)
Definition: BlackBin.cxx:38
TH2
Definition: rootspy.cxx:373
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
BlackBin.h
dqm_algorithms::BlackBin::clone
BlackBin * clone()
Definition: BlackBin.cxx:30
AlgorithmHelper.h
pickleTool.object
object
Definition: pickleTool.py:30
dqm_algorithms::tools::GetFirstFromMap
double GetFirstFromMap(const std::string &paramName, const std::map< std::string, double > &params)
Definition: AlgorithmHelper.cxx:339
histogram
std::string histogram
Definition: chains.cxx:52