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
57 virtual ~TOPDQMModule();
58
63 virtual void defineHisto() override;
64
69 virtual void initialize() override;
70
75 virtual void beginRun() override;
76
80 virtual void event() override;
81
82 private:
83
89 int getModuleID(const Track& track) const;
90
91 // module parameters
94
95 // histograms
96 TH1D* m_BoolEvtMonitor = 0;
97 TH2F* m_window_vs_slot = 0;
98 TH1F* m_eventT0 = 0;
99 TH1F* m_bunchOffset = 0;
100 TH1F* m_time = 0;
101 TH1F* m_timeBG = 0;
102 TProfile* m_signalHits = 0;
103 TProfile* m_backgroundHits = 0;
104 TH2F* m_trackHits = 0;
105
108 TH1F* m_goodTDCAll = 0;
109 TH1F* m_badTDCAll = 0;
110
115
116 TProfile2D* m_nhitInjLER = 0;
117 TProfile2D* m_nhitInjHER = 0;
118 TProfile2D* m_nhitInjLERcut = 0;
119 TProfile2D* m_nhitInjHERcut = 0;
120 TH2F* m_eventInjLER = 0;
121 TH2F* m_eventInjHER = 0;
124
125 std::vector<TH2F*> m_window_vs_asic;
126 std::vector<TH2F*> m_goodHitsXY;
127 std::vector<TH2F*> m_badHitsXY;
128 std::vector<TH2F*> m_goodHitsAsics;
129 std::vector<TH2F*> m_badHitsAsics;
130 std::vector<TH1F*> m_goodTDC;
131 std::vector<TH1F*> m_badTDC;
132 std::vector<TH1F*> m_goodTiming;
133 std::vector<TH1F*> m_goodTimingBG;
134 std::vector<TH1F*> m_goodChannelHits;
135 std::vector<TH1F*> m_badChannelHits;
136 std::vector<TProfile*> m_pulseHeights;
137
138 TH2F* m_skipProcFlag = 0;
139 TH2F* m_injVetoFlag = 0;
141 TH2F* m_PSBypassMode = 0;
142
143 // other
144 int m_numModules = 0;
145 double m_bunchTimeSep = 0;
146
147 // dataobjects
154
155 // dbobjects
157
158 };
159
161} // Belle2 namespace
162
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 ~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.