Belle II Software development
TOPDQMModule.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#pragma once
10
11// TOP headers.
12#include <top/dataobjects/TOPDigit.h>
13#include <top/dataobjects/TOPRecBunch.h>
14#include <top/dataobjects/TOPTimeZero.h>
15#include <top/dbobjects/TOPCalCommonT0.h>
16
17// Basf2 headers.
18#include <framework/core/HistoModule.h>
19#include <framework/datastore/StoreArray.h>
20#include <framework/datastore/StoreObjPtr.h>
21#include <rawdata/dataobjects/RawFTSW.h>
22#include <mdst/dataobjects/Track.h>
23
24// ROOT headers.
25#include <TH1F.h>
26#include <TH1D.h>
27#include <TH2F.h>
28#include <TProfile.h>
29#include <TProfile2D.h>
30
31// C++ headers.
32#include <string>
33#include <vector>
34
35namespace Belle2 {
40
44 class TOPDQMModule : public HistoModule {
45
46 public:
47
52
56 virtual ~TOPDQMModule();
57
62 virtual void defineHisto() override;
63
68 virtual void initialize() override;
69
74 virtual void beginRun() override;
75
79 virtual void event() override;
80
81 private:
82
88 int getModuleID(const Track& track) const;
89
90 // module parameters
93
94 // histograms
95 TH1D* m_BoolEvtMonitor = 0;
96 TH2F* m_window_vs_slot = 0;
97 TH1F* m_eventT0 = 0;
98 TH1F* m_bunchOffset = 0;
99 TH1F* m_time = 0;
100 TH1F* m_timeBG = 0;
101 TProfile* m_signalHits = 0;
102 TProfile* m_backgroundHits = 0;
103 TH2F* m_trackHits = 0;
104
107 TH1F* m_goodTDCAll = 0;
108 TH1F* m_badTDCAll = 0;
109
114
115 TProfile2D* m_nhitInjLER = 0;
116 TProfile2D* m_nhitInjHER = 0;
117 TProfile2D* m_nhitInjLERcut = 0;
118 TProfile2D* m_nhitInjHERcut = 0;
119 TH2F* m_eventInjLER = 0;
120 TH2F* m_eventInjHER = 0;
123
124 std::vector<TH2F*> m_window_vs_asic;
125 std::vector<TH2F*> m_goodHitsXY;
126 std::vector<TH2F*> m_badHitsXY;
127 std::vector<TH2F*> m_goodHitsAsics;
128 std::vector<TH2F*> m_badHitsAsics;
129 std::vector<TH1F*> m_goodTDC;
130 std::vector<TH1F*> m_badTDC;
131 std::vector<TH1F*> m_goodTiming;
132 std::vector<TH1F*> m_goodTimingBG;
133 std::vector<TH1F*> m_goodChannelHits;
134 std::vector<TH1F*> m_badChannelHits;
135 std::vector<TProfile*> m_pulseHeights;
136
137 // other
138 int m_numModules = 0;
139 double m_bunchTimeSep = 0;
140
141 // dataobjects
147
148 // dbobjects
150
151 };
152
154} // Belle2 namespace
155
Class for accessing objects in the database.
Definition DBObjPtr.h:21
HistoModule()
Constructor.
Definition HistoModule.h:32
Accessor to arrays stored in the data store.
Definition StoreArray.h:113
Type-safe access to single objects in the data store.
Definition StoreObjPtr.h:96
std::vector< TH2F * > m_window_vs_asic
Histograms window w.r.t reference vs.
std::vector< TH1F * > m_badChannelHits
Histograms for bad channel hits.
int m_numModules
number of TOP modules
std::vector< TH2F * > m_goodHitsXY
Histograms (2D) for good hits in pixels.
std::vector< TH2F * > m_goodHitsAsics
Histograms (2D) for good hits in asic channels.
StoreObjPtr< TOPRecBunch > m_recBunch
reconstructed bunch and event T0
TH2F * m_eventInjHER
event distribution (HER injection)
DBObjPtr< TOPCalCommonT0 > m_commonT0
common T0 calibration constants
double m_momentumCut
momentum cut
std::vector< TH2F * > m_badHitsXY
Histograms (2D) for bad hits in pixels.
TH1F * m_bunchOffset
reconstructed bunch: current offset
TProfile2D * m_nhitInjLER
average number of good digits (LER injection)
TProfile * m_backgroundHits
number of hits in the background time window vs.
std::vector< TH1F * > m_badTDC
Histograms for TDC distribution of bad hits.
std::vector< TH1F * > m_goodChannelHits
Histograms for good channel hits.
TH1F * m_eventT0
reconstructed event T0
TH2F * m_eventInjLERcut
event distribution after cut (LER injection)
TH2F * m_window_vs_slot
Histogram window w.r.t reference vs.
std::vector< TH1F * > m_goodTDC
Histograms for TDC distribution of good hits.
std::vector< TH1F * > m_goodTimingBG
Histograms for timing distribution of good hits (background)
TH1F * m_timeBG
time distribution of good hits (background)
TH2F * m_eventInjLER
event distribution (LER injection)
StoreArray< RawFTSW > m_rawFTSWs
Input array for DAQ Status.
TH1F * m_TOPEOccAfterInjHER
Histogram for Nr Entries (=Triggrs) for normalization after HER injection.
std::string m_histogramDirectoryName
histogram directory in ROOT file
TProfile2D * m_nhitInjLERcut
average number of good digits after cut (LER injection)
StoreArray< Track > m_tracks
collection of tracks
TH1F * m_badHitsPerEventAll
Number of bad hits per event (all slots)
TH1F * m_TOPEOccAfterInjLER
Histogram for Nr Entries (=Triggrs) for normalization after LER injection.
std::vector< TH1F * > m_goodTiming
Histograms for timing distribution of good hits.
TH1F * m_time
time distribution of good hits
TH1F * m_goodTDCAll
TDC distribution of good hits (all slots)
TProfile2D * m_nhitInjHER
average number of good digits (HER injection)
TH1F * m_TOPOccAfterInjLER
Histogram Ndigits after LER injection.
StoreArray< TOPDigit > m_digits
collection of digits
std::vector< TProfile * > m_pulseHeights
Pulse heights of good hits.
TH2F * m_eventInjHERcut
event distribution after cut (HER injection)
StoreArray< TOPTimeZero > m_timeZeros
reconstructed event T0 in case of cosmics
TProfile * m_signalHits
number of hits in the signal time window vs.
TH2F * m_trackHits
counting events w/ and w/o track in the slot vs.
double m_bunchTimeSep
bunch separation time
TH1D * m_BoolEvtMonitor
Event desynchronization monitoring.
TProfile2D * m_nhitInjHERcut
average number of good digits after cut (HER injection)
std::vector< TH2F * > m_badHitsAsics
Histograms (2D) for bad hits in asic channels.
TH1F * m_TOPOccAfterInjHER
Histogram Ndigits after HER injection.
TH1F * m_badTDCAll
TDC distribution of bad hits (all slots)
TH1F * m_goodHitsPerEventAll
Number of good hits per event (all slots)
Class that bundles various TrackFitResults.
Definition Track.h:25
TOPDQMModule()
Constructor.
virtual void initialize() override
Initialize the Module.
virtual void event() override
Event processor.
virtual ~TOPDQMModule()
Destructor.
virtual void beginRun() override
Called when entering a new run.
int getModuleID(const Track &track) const
Returns slot ID of the module that is hit by the track.
virtual void defineHisto() override
Histogram definitions such as TH1(), TH2(), TNtuple(), TTree()....
Abstract base class for different kinds of events.