Belle II Software development
KLMDQMModule.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/* KLM headers. */
12#include <klm/dataobjects/bklm/BKLMElementNumbers.h>
13#include <klm/dataobjects/bklm/BKLMHit1d.h>
14#include <klm/dataobjects/eklm/EKLMElementNumbers.h>
15#include <klm/dataobjects/KLMHit2d.h>
16#include <klm/dataobjects/KLMDigit.h>
17#include <klm/dataobjects/KLMChannelArrayIndex.h>
18#include <klm/dataobjects/KLMElementNumbers.h>
19#include <klm/dataobjects/KLMSectorArrayIndex.h>
20#include <klm/time/KLMTime.h>
21
22/* Basf2 headers. */
23#include <framework/core/HistoModule.h>
24#include <framework/datastore/StoreArray.h>
25#include <framework/datastore/StoreObjPtr.h>
26#include <mdst/dataobjects/KLMCluster.h>
27#include <mdst/dataobjects/TRGSummary.h>
28#include <rawdata/dataobjects/RawFTSW.h>
29#include <rawdata/dataobjects/RawKLM.h>
30
31/* ROOT headers. */
32#include <TH1F.h>
33#include <TH2F.h>
34
35#include <array>
36
37namespace Belle2 {
42
46 class KLMDQMModule : public HistoModule {
47
48 public:
49
54
59
63 void defineHisto() override;
64
68 void initialize() override;
69
73 void beginRun() override;
74
78 void event() override;
79
83 void endRun() override;
84
88 void terminate() override;
89
90 private:
91
94
96 c_0x8 = 1,
97
99 c_0x4 = 2,
100
102 c_0x2 = 3,
103
105 c_0x1 = 4,
106
107 };
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
162
165
168
171
174
177
180
183
186
189
192
195
200
203
206
209
212
215
218
221
224
227
230
233
236
239
242
245
248
251
254
257
260
263
266
269
272
275
278
281
284
287
290
292 static constexpr std::array<TRGSummary::ETimingType, 3> c_KlmL1Triggers = {
296 };
297
298 };
299
301}
static constexpr int getMaximalSectorGlobalNumber()
Get maximal sector global number.
static constexpr int getMaximalSectionNumber()
Get maximal section number.
static constexpr int getMaximalSectorGlobalNumberKLMOrder()
Get maximal sector global number with KLM ordering (section, sector).
HistoModule()
Constructor.
Definition HistoModule.h:32
double m_BKLMScintTimeMin
Min time for BKLM Scint.
TH1F * m_DigitsMultiStripEKLM
Number of multi-strip digits: EKLM scintillators.
TH1F * m_ChargeScintillatorEKLM
Charge: EKLM scintillators when FE != 0.
StoreArray< RawFTSW > m_RawFtsws
Raw FTSW.
const int m_ChannelHitHistogramsEKLM
Number of channel hit histograms per sector for EKLM.
TH1F * m_FE_EKLM_Plane_1
feature extraction status for EKLM
TH1F * m_PlaneBKLMPhi
Plane occupancy: BKLM, phi readout.
TH1F * m_TriggerBitsBKLM
Trigger bits: BKLM scintillators.
~KLMDQMModule()
Destructor.
TH1F * m_TimeScintillatorEKLM
Time: EKLM scintillators.
double m_RPCTimeMax
Max time for RPC.
StoreArray< KLMDigit > m_Digits
KLM digits.
double m_RPCTimeMin
Min time for RPC.
TH1F * m_ChargeScintillatorEKLM_SingleStrip
Charge: EKLM scintillators when FE != 0 & trigger bits 0x10 == 0.
void initialize() override
Initializer.
TH1F * m_DigitsScintillatorEKLM
Number of digits: EKLM scintillators.
TH1F ** m_ChannelHits[EKLMElementNumbers::getMaximalSectorGlobalNumberKLMOrder()+BKLMElementNumbers::getMaximalSectorGlobalNumber()]
Number of hits per channel.
TH1F * m_TimeRPC
Time: BKLM RPCs.
TH1F * m_DigitsKLM
Number of digits: whole KLM.
double m_Revo9DCArrivalTimeMax
Max time for revo9DCArrivalTime for RPC.
void event() override
This method is called for each event.
const KLMElementNumbers * m_ElementNumbers
KLM element numbers.
KLMDQMModule()
Constructor.
double m_Revo9DCArrivalTimeMin
Min time for revo9DCArrivalTime for RPC.
double m_EKLMScintTimeMax
Max time for EKLM Scint.
TH1F * m_ChargeScintillatorEKLM_MultiStrip
Charge: EKLM scintillators when FE != 0 & trigger bits 0x10 != 0.
const int m_ChannelHitHistogramsBKLM
Number of channel hit histograms per sector for BKLM.
TH1F * m_TriggerBitsEKLM
Trigger bits: EKLM scintillators.
void endRun() override
This method is called if the current run ends.
TH1F * m_ChargeClusterBKLM
Cluster charge (sum of scintillator digit charges), BKLM part.
const EKLMElementNumbers * m_eklmElementNumbers
Element numbers.
double m_BKLMScintTimeMax
Max time for BKLM Scint.
StoreObjPtr< TRGSummary > m_trgSummary
Trigger summary (event-level L1 bits).
void terminate() override
This method is called at the end of the event processing.
TH1F * m_ChargeScintillatorBKLM
Charge: BKLM scintillators when FE != 0.
TH1F * m_TimeRevo9DCArrivalTime
Time: revo9DCArrivalTime for RPC.
TH1F * m_PlaneBKLMZ
Plane occupancy: BKLM, z readout.
TH1F * m_TimeScintillatorBKLM
Time: BKLM scintillators.
TH1F * m_FE_BKLM_Layer_1
feature extraction status for BKLM Scintillator
TH1F * m_ChargeScintillatorBKLM_MultiStrip
Charge: BKLM scintillators when FE != 0 & trigger bits 0x10 != 0.
TH1F * m_AverageChargeClusterEKLM
Mean scintillator digit charge per cluster (EKLM contributors only).
TH1F * m_DigitsRPC
Number of digits: BKLM RPCs.
TH1F * m_TriggersHERInj
Histogram to be used for normalization of occupancy after HER injection.
TH1F * m_ChargeScintillatorBKLM_SingleStrip
Charge: BKLM scintillators when FE != 0 & trigger bits 0x10 == 0.
void beginRun() override
Called when entering a new run.
TH1F * m_DigitsAfterHERInj
Number of KLM Digits after LER injection.
TH1F * m_DigitsScintillatorBKLM
Number of digits: BKLM scintillators.
TH1F * m_TriggersLERInj
Histogram to be used for normalization of occupancy after LER injection.
TH1F * m_DigitsMultiStripBKLM
Number of multi-strip digits: BKLM scintillators.
TH1F * m_ChargeClusterEKLM
Cluster charge (sum of scintillator digit charges), EKLM part.
const KLMSectorArrayIndex * m_SectorArrayIndex
KLM sector array index.
TH1F * m_AverageChargeClusterBKLM
Mean scintillator digit charge per cluster (BKLM contributors only).
TriggerBitsBin
Bins for the trigger bits historgrams.
StoreArray< BKLMHit1d > m_BklmHit1ds
BKLM 1d hits.
TH1F * m_DigitsAfterLERInj
Number of KLM Digits after LER injection.
StoreArray< KLMCluster > m_KLMClusters
KLM clusters.
TH1F * m_DAQInclusion
KLM DAQ inclusion.
TH1F * m_FE_EKLM_Plane_0
Standard Readout status for EKLM.
StoreArray< RawKLM > m_RawKlms
Raw KLM.
KLMTime * m_klmTime
KLM time conversion (for revo9DCArrivalTime).
TH1F * m_PlaneEKLM
Plane occupancy: EKLM.
TH2F ** m_Spatial2DHitsEKLM[EKLMElementNumbers::getMaximalSectionNumber()]
Spatial distribution of EKLM 2d hits per layer.
TH1F * m_EventBackgroundTriggerSummary
Event-level background trigger summary (from TRGSummary).
double m_EKLMScintTimeMin
Min time for EKLM Scint.
const KLMChannelArrayIndex * m_ChannelArrayIndex
KLM channel array index.
static constexpr std::array< TRGSummary::ETimingType, 3 > c_KlmL1Triggers
L1 timing trigger bits of interest for KLM DQM (event-level).
std::string m_HistogramDirectoryName
Directory for KLM DQM histograms in ROOT file.
TH1F * m_FE_BKLM_Layer_0
Standard Readout status for BKLM Scintillator.
void defineHisto() override
Definition of the histograms.
StoreArray< KLMHit2d > m_Hit2ds
KLM 2d hits.
KLM sector array index.
KLM time conversion.
Definition KLMTime.h:27
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
@ TTYP_DPHY
delayed physics events for background
Definition TRGSummary.h:65
@ TTYP_POIS
poisson random trigger
Definition TRGSummary.h:73
@ TTYP_RAND
random trigger events
Definition TRGSummary.h:67
Abstract base class for different kinds of events.