Belle II Software  release-05-02-19
DQMHistAnalysisExample.cc
1 //+
2 // File : DQMHistAnalysisExample.cc
3 // Description :
4 //
5 // Author : Tomoyuki Konno, Tokyo Metropolitan Univerisity
6 // Date : 25 - Dec - 2015
7 //-
8 
9 
10 #include <dqm/analysis/modules/DQMHistAnalysisExample.h>
11 
12 using namespace std;
13 using namespace Belle2;
14 
15 //-----------------------------------------------------------------
16 // Register the Module
17 //-----------------------------------------------------------------
18 REG_MODULE(DQMHistAnalysisExample)
19 
20 //-----------------------------------------------------------------
21 // Implementation
22 //-----------------------------------------------------------------
23 
26 {
27  //Parameter definition
28  addParam("HistoName", m_histoname, "Name of Histogram (incl dir)", std::string(""));
29  addParam("Function", m_function, "Fit function definition", std::string("gaus"));
30  B2DEBUG(20, "DQMHistAnalysisExample: Constructor done.");
31 }
32 
33 
34 DQMHistAnalysisExampleModule::~DQMHistAnalysisExampleModule() { }
35 
36 void DQMHistAnalysisExampleModule::initialize()
37 {
38  B2DEBUG(20, "DQMHistAnalysisExample: initialized.");
39  TString a = m_histoname;
40  a.ReplaceAll("/", "_");
41  m_c = new TCanvas("c_" + a);
42  m_f = new TF1("f_" + a, TString(m_function), -100, 100);
43 }
44 
45 
46 void DQMHistAnalysisExampleModule::beginRun()
47 {
48  //B2DEBUG(20, "DQMHistAnalysisExample: beginRun called.");
49 }
50 
51 void DQMHistAnalysisExampleModule::event()
52 {
53  TH1* h = findHist(m_histoname);
54  if (h != NULL) {
55  m_c->Clear();
56  m_c->cd();
57  h->Draw();
58  m_c->Modified();
59  TString a = m_histoname;
60  a.ReplaceAll("/", ".");
61  std::string vname = a.Data();
62  setFloatValue(vname + ".mean", m_f->GetParameter(1));
63  setFloatValue(vname + ".sigma", m_f->GetParameter(2));
64  } else {
65  B2DEBUG(20, "Histo " << m_histoname << " not found");
66  }
67 }
68 
69 void DQMHistAnalysisExampleModule::endRun()
70 {
71  B2DEBUG(20, "DQMHistAnalysisExample : endRun called");
72 }
73 
74 
75 void DQMHistAnalysisExampleModule::terminate()
76 {
77  B2DEBUG(20, "terminate called");
78 }
79 
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::DQMHistAnalysisExampleModule
Class definition for the output module of Sequential ROOT I/O.
Definition: DQMHistAnalysisExample.h:23
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::DQMHistAnalysisModule
The base class for the histogram analysis module.
Definition: DQMHistAnalysis.h:27