Belle II Software  release-08-01-08
DQMHistAnalysisEventT0.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 : DQMHistAnalysisEventT0.h
10 // Description : module for DQM histogram analysis of trigger jitter
11 //-
12 
13 #pragma once
14 
15 #include <dqm/core/DQMHistAnalysis.h>
16 #include <TEfficiency.h>
17 
18 namespace Belle2 {
26 
27  // Public functions
28  public:
29 
34 
36  void initialize() override final;
37 
39  void beginRun() override final;
40 
42  void event() override final;
43 
45  void endRun() override final;
46 
48  void terminate() override final;
49 
50  private:
51 
53  std::string m_prefixCanvas;
57  uint m_nEntriesMin = 100;
65  bool processHistogram(TH1* h, TString tag);
66 
71  static double fDoubleGaus(double* x, double* par);
72 
73  TCanvas* m_cTOPTimeForECLTRG = nullptr;
74  TCanvas* m_cTOPTimeForCDCTRG = nullptr;
75  TCanvas* m_cSVDTimeForECLTRG = nullptr;
76  TCanvas* m_cSVDTimeForCDCTRG = nullptr;
78  TPad* m_topPad1ECLTRG = nullptr;
79  TPad* m_topPad2ECLTRG = nullptr;
80  TPad* m_topPad3ECLTRG = nullptr;
82  TPad* m_topPad1CDCTRG = nullptr;
83  TPad* m_topPad2CDCTRG = nullptr;
84  TPad* m_topPad3CDCTRG = nullptr;
86  TPad* m_svdPad1ECLTRG = nullptr;
87  TPad* m_svdPad2ECLTRG = nullptr;
88  TPad* m_svdPad3ECLTRG = nullptr;
90  TPad* m_svdPad1CDCTRG = nullptr;
91  TPad* m_svdPad2CDCTRG = nullptr;
92  TPad* m_svdPad3CDCTRG = nullptr;
96  TCanvas* m_cT0FractionsForHadrons = nullptr;
97  TCanvas* m_cT0FractionsForBhaBhas = nullptr;
98  TCanvas* m_cT0FractionsForMuMus = nullptr;
100  TPad* m_pHadronECLTRG = nullptr;
101  TPad* m_pHadronCDCTRG = nullptr;
102  TPad* m_pHadronTOPTRG = nullptr;
104  TPad* m_pBhaBhaECLTRG = nullptr;
105  TPad* m_pBhaBhaCDCTRG = nullptr;
106  TPad* m_pBhaBhaTOPTRG = nullptr;
108  TPad* m_pMuMuECLTRG = nullptr;
109  TPad* m_pMuMuCDCTRG = nullptr;
110  TPad* m_pMuMuTOPTRG = nullptr;
113  const char* c_eventT0Algorithms[6] = {"ECL", "SVD", "CDC HitBased", "CDC FullGrid #chi^{2}", "TOP", "Any"};
133  bool FillEfficiencyHistogram(const std::string& histname, TEfficiency* eff);
134  };
136 } // end namespace Belle2
137 
TCanvas * m_cTOPTimeForECLTRG
TOP EventT0 for ECLTRG plots canvas.
TEfficiency * m_eAlgorithmSourceFractionsMuMuL1ECLTRG
Fraction of events with EventT0 from a given algorithm, HLT mumu events, L1 time by ECL trigger.
TCanvas * m_cSVDTimeForECLTRG
SVD EventT0 for ECLTRG plots canvas.
void initialize() override final
create TCanvas and MonitoringObject
TEfficiency * m_eAlgorithmSourceFractionsBhaBhaL1ECLTRG
Fraction of events with EventT0 from a given algorithm, HLT bhabha events, L1 time by ECL trigger.
TCanvas * m_cT0FractionsForMuMus
EventT0 fractions plots canvas for MuMu events.
static double fDoubleGaus(double *x, double *par)
double gaussian fitting function for the jitter distribution
const char * c_eventT0Algorithms[6]
EventT0 algorithms for which to calculate fractions of abundance.
TPad * m_pBhaBhaTOPTRG
pad for time fractions for TOPTRG bhabhas
TPad * m_pMuMuTOPTRG
pad for time fractions for TOPTRG mumu
bool FillEfficiencyHistogram(const std::string &histname, TEfficiency *eff)
Fill the TEfficiency plots.
TPad * m_svdPad1CDCTRG
pad for SVD time CDCTRG hadrons
TPad * m_svdPad3CDCTRG
pad for SVD time CDCTRG mumu
TPad * m_pMuMuCDCTRG
pad for time fractions for CDCTRG mumu
TPad * m_pHadronTOPTRG
pad for time fractions for TOPTRG hadrons
TCanvas * m_cT0FractionsForBhaBhas
EventT0 fractions plots canvas for BhaBha events.
std::string m_prefixCanvas
prefix to be added to canvas name when saved as pdf
TPad * m_pMuMuECLTRG
pad for time fractions for ECLTRG mumu
TPad * m_svdPad2ECLTRG
pad for SVD time ECLTRG bhabhas
MonitoringObject * m_monObj
MonitoringObject to be produced by this module.
void terminate() override final
delete pointers
TEfficiency * m_eAlgorithmSourceFractionsBhaBhaL1CDCTRG
Fraction of events with EventT0 from a given algorithm, HLT bhabha events, L1 time by CDC trigger.
TCanvas * m_cT0FractionsForHadrons
EventT0 fractions plots canvas for hadron events.
bool m_printCanvas
if true print the pdf of the canvases
TPad * m_svdPad2CDCTRG
pad for SVD time CDCTRG bhabhas
TPad * m_pHadronECLTRG
pad for time fractions for ECLTRG hadrons
TPad * m_topPad1CDCTRG
pad for TOP time CDCTRG hadrons
uint m_nEntriesMin
minimum number of entries to process the histogram
TEfficiency * m_eAlgorithmSourceFractionsHadronL1ECLTRG
Fraction of events with EventT0 from a given algorithm, HLT hadronic events, L1 time by ECL trigger.
void endRun() override final
fit the histograms
TPad * m_topPad3CDCTRG
pad for TOP time CDCTRG mumu
TPad * m_svdPad1ECLTRG
pad for SVD time ECLTRG hadrons
TEfficiency * m_eAlgorithmSourceFractionsHadronL1CDCTRG
Fraction of events with EventT0 from a given algorithm, HLT hadronic events, L1 time by CDC trigger.
bool processHistogram(TH1 *h, TString tag)
process the EventT0 distribution fitting with two gaussians filling the MonitoringObject
void beginRun() override final
clear TCanvas
TPad * m_topPad2CDCTRG
pad for TOP time CDCTRG bhabhas
TPad * m_pHadronCDCTRG
pad for time fractions for CDCTRG hadrons
TPad * m_topPad3ECLTRG
pad for TOP time ECLTRG mumu
TPad * m_topPad2ECLTRG
pad for TOP time ECLTRG bhabhas
TEfficiency * m_eAlgorithmSourceFractionsMuMuL1TOPTRG
Fraction of events with EventT0 from a given algorithm, HLT mumu events, L1 time by TOP trigger.
TCanvas * m_cTOPTimeForCDCTRG
TOP EventT0 for CDCTRG plots canvas.
TCanvas * m_cSVDTimeForCDCTRG
SVD EventT0 for CDCTRG plots canvas.
TPad * m_topPad1ECLTRG
pad for TOP time ECLTRG hadrons
TEfficiency * m_eAlgorithmSourceFractionsMuMuL1CDCTRG
Fraction of events with EventT0 from a given algorithm, HLT mumu events, L1 time by CDC trigger.
TEfficiency * m_eAlgorithmSourceFractionsBhaBhaL1TOPTRG
Fraction of events with EventT0 from a given algorithm, HLT bhabha events, L1 time by TOP trigger.
TPad * m_svdPad3ECLTRG
pad for SVD time ECLTRG mumu
TPad * m_pBhaBhaCDCTRG
pad for time fractions for CDCTRG bhabhas
TEfficiency * m_eAlgorithmSourceFractionsHadronL1TOPTRG
Fraction of events with EventT0 from a given algorithm, HLT hadronic events, L1 time by TOP trigger.
TPad * m_pBhaBhaECLTRG
pad for time fractions for ECLTRG bhabhas
The base class for the histogram analysis module.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
Abstract base class for different kinds of events.