#include <AddReference.h>
Inherits Algorithm.
Inherited by dqm_algorithms::AddReference_All_Bins_Filled, dqm_algorithms::AddReference_BinContentComp, dqm_algorithms::AddReference_Bins_Diff_FromAvg, dqm_algorithms::AddReference_Bins_Equal_Threshold, dqm_algorithms::AddReference_Bins_GreaterThan_Threshold, dqm_algorithms::AddReference_Bins_GreaterThanEqual_Threshold, dqm_algorithms::AddReference_Bins_LessThan_Threshold, dqm_algorithms::AddReference_Bins_LessThanEqual_Threshold, and dqm_algorithms::AddReference_Bins_NotEqual_Threshold.
Definition at line 18 of file AddReference.h.
◆ AddReference()
dqm_algorithms::AddReference::AddReference |
( |
const std::string & |
name | ) |
|
◆ clone()
◆ execute()
Definition at line 40 of file AddReference.cxx.
44 if(
object.
IsA()->InheritsFrom(
"TH1" ) ) {
47 throw dqm_core::BadConfig( ERS_HERE,
name,
"does not inherit from TH1" );
52 if (
histogram->GetEffectiveEntries() < minstat ) {
54 result->tags_[
"InsufficientEffectiveEntries"] =
histogram->GetEffectiveEntries();
61 TObject* ro =
config.getReference();
62 const TObject* firstReference = 0;
63 TObject* secondReference= 0;
67 catch ( dqm_core::Exception& ex ) {
68 throw dqm_core::BadRefHist(ERS_HERE,
name,
" Could not retreive reference");
71 const TH1* refhist =
dynamic_cast<const TH1*
>(firstReference);
74 throw dqm_core::BadRefHist(ERS_HERE,
name,
" Could not retreive reference");
77 if ((
histogram->GetDimension() != refhist->GetDimension()) ||
78 (
histogram->GetNbinsX() != refhist->GetNbinsX()) ||
79 (
histogram->GetNbinsY() != refhist->GetNbinsY()) ||
80 refhist->GetNbinsZ() !=
histogram->GetNbinsZ() ) {
81 throw dqm_core::BadRefHist( ERS_HERE,
"number of bins",
name );
83 ERS_DEBUG(2,
"Doing: histogram + ("<<
coeff<<
")*reference");
87 ERS_DEBUG(2,
"Running algorithm: "<<
m_name);
88 dqm_core::Algorithm* subalgorithm;
92 catch ( dqm_core::AlgorithmNotFound& ex )
94 ERS_DEBUG(2,
"Cannot find algorithm:"+
m_name);
95 throw dqm_core::BadConfig(ERS_HERE,
name,
"Cannot Find sub-algorithm:"+
m_name);
98 ERS_DEBUG(2,
"Sub algorithm returns:"<<*
result);
100 TObject* robject =
result->getObject();
103 ERS_DEBUG(2,
"Adding modified histogram in result");
108 ERS_DEBUG(2,
"Result already have an associated TObject, appending modified histogram");
109 if ( robject->IsA()->InheritsFrom(
"TObjArray") )
111 static_cast<TObjArray*
>(robject)->Add(
histogram );
113 result->object_.reset( robject );
117 TObjArray*
array =
new TObjArray( 2 );
118 array->AddAt( robject , 0 );
123 ERS_DEBUG(2,
"Result now have a TObjArray of size:"<<
static_cast<TObjArray*
>(
result->getObject())->GetEntries());
◆ printDescription()
void dqm_algorithms::AddReference::printDescription |
( |
std::ostream & |
out | ) |
|
Definition at line 129 of file AddReference.cxx.
130 out<<
"AddReference_"+
m_name+
" : Performst the "+
m_name+
" algorithm after adding to the input histogram the reference. I.e. performing: histogram += c*Reference. Adds to the output TObject list the modified input histogram."<<std::endl;
131 out<<
"Optional Parameter : MinStat : Minimum histogram statistics needed to perform Algorithm"<<std::endl;
132 out<<
"Optional Parameter : Coeff : The multiplication coefficient c, for reference. Default c=+1"<<std::endl;
◆ m_name
std::string dqm_algorithms::AddReference::m_name |
|
private |
The documentation for this struct was generated from the following files: