Belle II Software  release-06-01-15
DQMHistAnalysisPXDTrackCharge.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 //+
9 // File : DQMHistAnalysisPXDTrackCharge.h
10 // Description : DQM Analysis for PXD Tracked Cluster Charges
11 //-
12 
13 #pragma once
14 
15 #ifdef _BELLE2_EPICS
16 // EPICS
17 #include "cadef.h"
18 #endif
19 
20 #include <dqm/analysis/modules/DQMHistAnalysis.h>
21 #include <vxd/dataobjects/VxdID.h>
22 
23 #include <vector>
24 #include <array>
25 #include <TF1.h>
26 #include "TF1Convolution.h"
27 #include <TCanvas.h>
28 #include <TLine.h>
29 #include <TGraphErrors.h>
30 #include <TFile.h>
31 #include <TH2.h>
32 
33 #include <RooRealVar.h>
34 #include <RooWorkspace.h>
35 
36 namespace Belle2 {
44 
45  // Public functions
46  public:
47 
52 
57 
61  void initialize(void) override final;
62 
66  void beginRun(void) override final;
67 
71  void event(void) override final;
72 
76  void endRun(void) override final;
77 
81  void terminate(void) override final;
82 
83  private:
84 
90  TH1* GetHisto(TString histoname);
91 
92  // Data members
93 
97  std::string m_pvPrefix;
99  double m_rangeLow;
101  double m_rangeHigh;
102 
104  std::vector<VxdID> m_PXDModules;
105 
107  RooWorkspace* m_rfws{};
109  RooRealVar* m_x{};
110 
112  TF1* m_fMean = nullptr;
114  TGraphErrors* m_gCharge = nullptr;
116  TCanvas* m_cCharge = nullptr;
118  std::map<VxdID, TCanvas*> m_cChargeMod {};
120  std::map<VxdID, std::array<std::array<TCanvas*, 4>, 6>> m_cChargeModASIC {};
122  TH1F* m_hTrackedClusters = nullptr;
124  TCanvas* m_cTrackedClusters = nullptr;
126  std::map<VxdID, TH2F*> m_hChargeModASIC2d {};
128  std::map<VxdID, TCanvas*> m_cChargeModASIC2d {};
129 
131  TLine* m_line_up{};
133  TLine* m_line_mean{};
135  TLine* m_line_low{};
136 
138  std::string m_refFileName;
140  TFile* m_refFile = nullptr;
142  bool m_color = true;
143 
146 
149 
150 #ifdef _BELLE2_EPICS
152  std::vector <chid> mychid;
153 #endif
154  };
156 } // end namespace Belle2
157 
The base class for the histogram analysis module.
DQM Histogram Analysis for PXD Cluster Charge.
void terminate(void) override final
This method is called at the end of the event processing.
std::string m_refFileName
Reference Histogram Root file name.
bool m_color
Whether to use the color code for warnings and errors.
std::map< VxdID, std::array< std::array< TCanvas *, 4 >, 6 > > m_cChargeModASIC
Final Canvases for Fit and Ref per ASIC.
std::map< VxdID, TH2F * > m_hChargeModASIC2d
Final Canvas Fit and Ref per ASIC.
void initialize(void) override final
Initializer.
void endRun(void) override final
This method is called if the current run ends.
TLine * m_line_up
TLine object for upper limit of track cluster charge.
TGraphErrors * m_gCharge
Graph covering all modules.
std::vector< VxdID > m_PXDModules
IDs of all PXD Modules to iterate over.
std::string m_histogramDirectoryName
name of histogram directory
TH1 * GetHisto(TString histoname)
Get histogram by its name.
TLine * m_line_mean
TLine object for mean of track cluster charge.
TLine * m_line_low
TLine object for lower limit of track cluster charge.
TH1F * m_hTrackedClusters
Histogram for TrackedClusters.
TCanvas * m_cTrackedClusters
Final Canvas for TrackedClusters.
std::map< VxdID, TCanvas * > m_cChargeMod
Final Canvases for Fit and Ref.
void beginRun(void) override final
Called when entering a new run.
void event(void) override final
This method is called for each event.
std::map< VxdID, TCanvas * > m_cChargeModASIC2d
Final Canvas Fit and Ref per ASIC.
TFile * m_refFile
The pointer to the reference file.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.