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/dataobjects/TOPProductionEventDebug.h>
16#include <top/dbobjects/TOPCalCommonT0.h>
17
18// Basf2 headers.
19#include <framework/core/HistoModule.h>
20#include <framework/datastore/StoreArray.h>
21#include <framework/datastore/StoreObjPtr.h>
22#include <rawdata/dataobjects/RawFTSW.h>
23#include <mdst/dataobjects/Track.h>
24
25// ROOT headers.
26#include <TH1F.h>
27#include <TH1D.h>
28#include <TH2F.h>
29#include <TProfile.h>
30#include <TProfile2D.h>
31
32// C++ headers.
33#include <string>
34#include <vector>
35
36namespace Belle2 {
41
45 class TOPDQMModule : public HistoModule {
46
47 public:
48
53
58 virtual void defineHisto() override;
59
64 virtual void initialize() override;
65
70 virtual void beginRun() override;
71
75 virtual void event() override;
76
77 private:
78
84 int getModuleID(const Track& track) const;
85
86 // module parameters
89
90 // histograms
91 TH1D* m_BoolEvtMonitor = 0;
92 TH2F* m_window_vs_slot = 0;
93 TH1F* m_eventT0 = 0;
94 TH1F* m_bunchOffset = 0;
95 TH1F* m_time = 0;
96 TH1F* m_timeBG = 0;
97 TProfile* m_signalHits = 0;
98 TProfile* m_backgroundHits = 0;
99 TH2F* m_trackHits = 0;
100
103 TH1F* m_goodTDCAll = 0;
104 TH1F* m_badTDCAll = 0;
105
110
111 TProfile2D* m_nhitInjLER = 0;
112 TProfile2D* m_nhitInjHER = 0;
113 TProfile2D* m_nhitInjLERcut = 0;
114 TProfile2D* m_nhitInjHERcut = 0;
115 TH2F* m_eventInjLER = 0;
116 TH2F* m_eventInjHER = 0;
119
120 std::vector<TH2F*> m_window_vs_asic;
121 std::vector<TH2F*> m_goodHitsXY;
122 std::vector<TH2F*> m_badHitsXY;
123 std::vector<TH2F*> m_goodHitsAsics;
124 std::vector<TH2F*> m_badHitsAsics;
125 std::vector<TH1F*> m_goodTDC;
126 std::vector<TH1F*> m_badTDC;
127 std::vector<TH1F*> m_goodTiming;
128 std::vector<TH1F*> m_goodTimingBG;
129 std::vector<TH1F*> m_goodChannelHits;
130 std::vector<TH1F*> m_badChannelHits;
131 std::vector<TProfile*> m_pulseHeights;
132
133 TH2F* m_skipProcFlag = 0;
134 TH2F* m_injVetoFlag = 0;
136 TH2F* m_PSBypassMode = 0;
137
138 // other
139 int m_numModules = 0;
140 double m_bunchTimeSep = 0;
141
142 // dataobjects
149
150 // dbobjects
152
153 };
154
156} // Belle2 namespace
157
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
TH2F * m_injVetoFlag
injection veto flag vs.
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.
StoreArray< TOPProductionEventDebug > m_productionEventDebugs
collection of event debug data
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.
TH1F * m_injVetoFlagDiff
check if injection veto flags differ in the event
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.
TH2F * m_PSBypassMode
PS-bypass mode 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)
TH2F * m_skipProcFlag
skip processing flag vs.
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 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.