Belle II Software  release-05-02-19
BKLMDigitAnalyzerModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Giacomo De Pietro *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* KLM headers. */
14 #include <klm/dataobjects/KLMDigit.h>
15 #include <klm/dataobjects/KLMDigitEventInfo.h>
16 #include <klm/dataobjects/KLMDigitRaw.h>
17 
18 /* Belle 2 headers. */
19 #include <framework/core/Module.h>
20 #include <framework/datastore/StoreArray.h>
21 
22 /* ROOT headers. */
23 #include <TFile.h>
24 #include <TH1F.h>
25 #include <TH2F.h>
26 #include <TList.h>
27 #include <TTree.h>
28 
29 /* C++ headers. */
30 #include <ctime>
31 #include <sstream>
32 #include <string>
33 
34 namespace Belle2 {
46  class BKLMDigitAnalyzerModule : public Module {
47 
48  public:
49 
54 
58  virtual ~BKLMDigitAnalyzerModule() override;
59 
63  virtual void initialize() override;
64 
68  virtual void beginRun() override;
69 
73  virtual void event() override;
74 
78  virtual void endRun() override;
79 
83  virtual void terminate() override;
84 
85 
86  private:
87 
89  int m_runNumber;
90 
93 
96 
99 
102 
104  std::string m_outputRootName;
105 
107  TFile* m_outputRootFile;
108 
110  TTree* m_extraInfo = nullptr;
111 
113  TList* m_histoList;
114 
116  TH2F* m_histoLayerVsSector[2];
117 
119  TH2F* m_histoLayerVsSectorPerPlane[2][2];
120 
122  TH1F* m_histoLayer[2][8];
123 
125  TH2F* m_histoChannel[2][8][2];
126 
128  TH2F* m_histoStrip[2][8][2];
129 
131  TH1F* m_histoTdc[2][8][2];
132 
134  TH1F* m_histoCTimeDiff[2][8][2];
135 
137  template <typename T>
138  std::string toString(T val)
139  {
140  std::ostringstream stream;
141  stream << val;
142  return stream.str();
143  }
144 
146  TH1F* createTH1(const char* name, const char* title, Int_t nBinsX, Double_t minX, Double_t maxX, const char* titleX,
147  const char* titleY, bool drawStat, TList* histoList = nullptr);
148 
150  TH2F* createTH2(const char* name, const char* title, Int_t nBinsX, Double_t minX, Double_t maxX, const char* titleX, Int_t nBinsY,
151  Double_t minY, Double_t maxY, const char* titleY, bool drawStat, TList* histoList = nullptr);
152  };
153 
155 }
Belle2::BKLMDigitAnalyzerModule::m_digitOutOfRange
StoreArray< KLMDigit > m_digitOutOfRange
Input BKLMDigits whose time is out of range.
Definition: BKLMDigitAnalyzerModule.h:106
Belle2::BKLMDigitAnalyzerModule::m_outputRootName
std::string m_outputRootName
Output filename.
Definition: BKLMDigitAnalyzerModule.h:112
Belle2::BKLMDigitAnalyzerModule::beginRun
virtual void beginRun() override
Called when entering a new run.
Definition: BKLMDigitAnalyzerModule.cc:67
Belle2::BKLMDigitAnalyzerModule::m_histoLayerVsSectorPerPlane
TH2F * m_histoLayerVsSectorPerPlane[2][2]
Pointer to occupancy 2D histogram of layer vs sector for each view (=plane)
Definition: BKLMDigitAnalyzerModule.h:127
Belle2::BKLMDigitAnalyzerModule::m_histoStrip
TH2F * m_histoStrip[2][8][2]
Pointer to occupancy 2D histogram of each strip.
Definition: BKLMDigitAnalyzerModule.h:136
Belle2::BKLMDigitAnalyzerModule::BKLMDigitAnalyzerModule
BKLMDigitAnalyzerModule()
Constructor.
Definition: BKLMDigitAnalyzerModule.cc:27
Belle2::BKLMDigitAnalyzerModule::createTH2
TH2F * createTH2(const char *name, const char *title, Int_t nBinsX, Double_t minX, Double_t maxX, const char *titleX, Int_t nBinsY, Double_t minY, Double_t maxY, const char *titleY, bool drawStat, TList *histoList=nullptr)
Create a ROOT 2D histogram.
Definition: BKLMDigitAnalyzerModule.cc:257
Belle2::BKLMDigitAnalyzerModule::~BKLMDigitAnalyzerModule
virtual ~BKLMDigitAnalyzerModule() override
Destructor.
Definition: BKLMDigitAnalyzerModule.cc:55
Belle2::BKLMDigitAnalyzerModule::initialize
virtual void initialize() override
Initializer.
Definition: BKLMDigitAnalyzerModule.cc:59
Belle2::BKLMDigitAnalyzerModule::m_digit
StoreArray< KLMDigit > m_digit
Input KLMDigits.
Definition: BKLMDigitAnalyzerModule.h:100
Belle2::BKLMDigitAnalyzerModule::event
virtual void event() override
This method is called for each event.
Definition: BKLMDigitAnalyzerModule.cc:180
Belle2::BKLMDigitAnalyzerModule::m_histoLayer
TH1F * m_histoLayer[2][8]
Pointer to occupancy 1D histogram of each layer for each sector.
Definition: BKLMDigitAnalyzerModule.h:130
Belle2::BKLMDigitAnalyzerModule::m_runNumber
int m_runNumber
Run number of the current data set.
Definition: BKLMDigitAnalyzerModule.h:97
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BKLMDigitAnalyzerModule::m_histoChannel
TH2F * m_histoChannel[2][8][2]
Pointer to occupancy 2D histogram of each channel.
Definition: BKLMDigitAnalyzerModule.h:133
Belle2::BKLMDigitAnalyzerModule::createTH1
TH1F * createTH1(const char *name, const char *title, Int_t nBinsX, Double_t minX, Double_t maxX, const char *titleX, const char *titleY, bool drawStat, TList *histoList=nullptr)
Create a ROOT 1D histogram.
Definition: BKLMDigitAnalyzerModule.cc:241
Belle2::BKLMDigitAnalyzerModule::m_histoList
TList * m_histoList
Pointer to ROOT list of histograms.
Definition: BKLMDigitAnalyzerModule.h:121
Belle2::BKLMDigitAnalyzerModule::m_histoTdc
TH1F * m_histoTdc[2][8][2]
Pointer to TDC 1D histogram of each channel for each sector and view.
Definition: BKLMDigitAnalyzerModule.h:139
Belle2::BKLMDigitAnalyzerModule::m_outputRootFile
TFile * m_outputRootFile
Pointer to ROOT output file.
Definition: BKLMDigitAnalyzerModule.h:115
Belle2::BKLMDigitAnalyzerModule::m_digitEventInfo
StoreArray< KLMDigitEventInfo > m_digitEventInfo
Output data array of analyzed KLMDigit information.
Definition: BKLMDigitAnalyzerModule.h:109
Belle2::BKLMDigitAnalyzerModule::m_histoLayerVsSector
TH2F * m_histoLayerVsSector[2]
Pointer to occupancy 2D histograms (numerator, denominator) of layer vs sector.
Definition: BKLMDigitAnalyzerModule.h:124
Belle2::BKLMDigitAnalyzerModule::toString
std::string toString(T val)
Convert a number of type T into a string.
Definition: BKLMDigitAnalyzerModule.h:146
Belle2::BKLMDigitAnalyzerModule::endRun
virtual void endRun() override
This method is called if the current run ends.
Definition: BKLMDigitAnalyzerModule.cc:219
Belle2::BKLMDigitAnalyzerModule::m_histoCTimeDiff
TH1F * m_histoCTimeDiff[2][8][2]
Pointer to TDC-difference 1D histogram of each channel for each sector and view.
Definition: BKLMDigitAnalyzerModule.h:142
Belle2::BKLMDigitAnalyzerModule::terminate
virtual void terminate() override
This method is called at the end of the event processing.
Definition: BKLMDigitAnalyzerModule.cc:237
Belle2::BKLMDigitAnalyzerModule::m_digitRaw
StoreArray< KLMDigitRaw > m_digitRaw
Input raw BLMDigits.
Definition: BKLMDigitAnalyzerModule.h:103
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::BKLMDigitAnalyzerModule::m_extraInfo
TTree * m_extraInfo
Pointer to ROOT tree with extra info.
Definition: BKLMDigitAnalyzerModule.h:118