Belle II Software development
ARICHDQMModule.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#include <framework/core/HistoModule.h>
12
13#include <TH1F.h>
14#include <TH2F.h>
15#include <TH3F.h>
16
17#include <framework/datastore/StoreArray.h>
18#include <framework/database/DBObjPtr.h>
19#include <rawdata/dataobjects/RawFTSW.h>
20
21#include <arich/dbobjects/ARICHGeometryConfig.h>
22#include <arich/dbobjects/ARICHMergerMapping.h>
23
24namespace Belle2 {
29 class ARICHHit;
30 class ARICHDigit;
31 class ARICHTrack;
32 class ARICHLikelihood;
33
37 class ARICHDQMModule : public HistoModule {
38
39 public:
40
45
49 virtual ~ARICHDQMModule();
50
55 virtual void initialize() override;
56
60 virtual void defineHisto() override;
61
66 virtual void beginRun() override;
67
71 virtual void event() override;
72
77 virtual void endRun() override;
78
79 protected:
80
82 bool m_debug;
83
86
89
92
93 /* Histograms to show status by 1/0. */
94
96 TH1* h_chStat = NULL;
98 TH1* h_aeroStat = NULL;
99
100 /* Histograms to show the data quality. */
101
103 TH1* h_chDigit = NULL;
104
106 TH1* h_chipDigit = NULL;
107
109 TH1* h_hapdDigit = NULL;
110
112 TH1* h_chHit = NULL;
113
115 TH1* h_chipHit = NULL;
116
118 TH1* h_hapdHit = NULL;
119
121 TH1* h_mergerHit = NULL;
122
128
131
133 TH1* h_secHapdHit[6] = {};
134
136 TH2* h_hapdHitPerEvent = NULL;
137
139 TH1* h_aerogelHit = NULL;
140
142 TH1* h_bits = NULL;
143
145 TH2* h_bitsPerChannel = NULL;
146
148 TH2* h_hitsPerTrack2D = NULL;
149
151 TH2* h_tracks2D = NULL;
152
154 TH3* h_aerogelHits3D = NULL;
155
160 TH3* h_mirrorThetaPhi = NULL;
161
163 TH2* h_thetaPhi = NULL;
164
166 TH1* h_hitsPerEvent = NULL;
167
169 TH1* h_theta = NULL;
170
172 TH1* h_hitsPerTrack = NULL;
173
175 TH1* h_trackPerEvent = NULL;
176
178 TH1* h_flashPerAPD = NULL;
179
181 TH1* h_secTheta[6] = {};
182
184 TH1* h_secHitsPerTrack[6] = {};
185
188
191
197
203
204 /* Monitoring parameters. */
205
210 double m_momUpLim = 0;
211
216 double m_momDnLim = 0;
217
218 /* Dataobjects. */
219
222
225
228
231
234
237
240
241 };
242
244} // Belle2 namespace
Make summary of data quality from reconstruction.
StoreArray< ARICHHit > m_arichHits
ARICHHits StoreArray.
TH1 * h_chipDigit
The number of raw digits in each ASIC chip.
StoreArray< ARICHDigit > m_arichDigits
ARICHDigits StoreArray.
TH2 * h_hitsPerTrack2D
Sum of 2D hit/track map on each position of track.
TH1 * h_chipHit
The number of hits in each ASIC chip.
TH2 * h_bitsPerChannel
Number of bits per channel.
DBObjPtr< ARICHMergerMapping > m_arichMergerMap
ARICH merger mapping payload.
int m_maxHits
Exclude events with very large number of hits in arich.
TH1 * h_ARICHEOccAfterInjHer
Histogram for Nr Entries (=Triggrs) for normalization after HER injection.
TH3 * h_aerogelHits3D
3D histogram of hits.
int m_minHits
Exclude events with number of hits lower than this.
TH1 * h_flashPerAPD
Number of flashes in each APD.
TH1 * h_hitsPerTrack
Average hits/track calculated from h_hits2D and h_track2D.
StoreArray< ARICHTrack > m_arichTracks
ARICHTracks StoreArray.
TH1 * h_trackPerEvent
Number of tracks in ARICH per event (with p>0.5 GeV).
TH1 * h_ARICHOccAfterInjLer
Histogram Ndigits after LER injection.
StoreArray< RawFTSW > m_rawFTSW
Input array for DAQ Status.
TH1 * h_chDigit
The number of raw digits in each channel.
TH1 * h_aerogelHit
The number of reconstructed photons in each aerogel tile.
TH1 * h_mergerHit
The number of hits in each Merger Boards.
double m_momDnLim
Lower momentum limit of tracks used in GeV (if set 0, no limit is applied).
double m_momUpLim
Upper momentum limit of tracks used in GeV (if set 0, no limit is applied).
TH1 * h_theta
Reconstructed Cherenkov angles.
TH2 * h_thetaPhi
Cherenkov theta vs phi for non-mirror-reflected photons.
TH2 * h_bitsPerMergerNorm
The number of hits in each bit in each Merger Board normalised to number of HAPDs and sum(bit1,...
TH1 * h_aeroStat
Status of each aerogel tile.
TH1 * h_ARICHOccAfterInjHer
Histogram Ndigits after HER injection.
TH3 * h_mirrorThetaPhi
Cherenkov theta vs phi for mirror-reflected photons (for each mirror plate).
TH2 * h_hapdHitPerEvent
Number of hits in each HAPD per event.
TH1 * h_hapdDigit
The number of raw digits in each HAPD.
StoreArray< ARICHLikelihood > m_arichLikelihoods
ARICHLikelihoods StoreArray.
TH1 * h_chHit
The number of hits in each channel.
bool m_arichEvents
Process only events that have extrapolated hit in arich.
TH2 * h_bitsPerHapdMerger
The number of hits in each bit in each HAPD sorted by Merger Board.
DBObjPtr< ARICHGeometryConfig > m_arichGeoConfig
ARICH Geometry configuration payload.
TH1 * h_chStat
Status of each channel.
TH1 * h_secHitsPerTrack[6]
Detailed average hits/track for each sector.
TH1 * h_hapdHit
The number of hits in each HAPD.
TH1 * h_ARICHEOccAfterInjLer
Histogram for Nr Entries (=Triggrs) for normalization after LER injection.
TH1 * h_secTheta[6]
Detailed view of Cherenkov angle for each sector.
TH1 * h_hitsPerEvent
The number of all hits in each event.
TH2 * h_tracks2D
2D track distribution of whole ARICH.
TH1 * h_secHapdHit[6]
The number of hits in each HAPDs of each sector.
TH1 * h_bits
Timing bits.
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
ARICHDQMModule()
Constructor.
virtual void initialize() override
Initialize the Module.
virtual void event() override
Event processor.
virtual void endRun() override
End-of-run action.
virtual void beginRun() override
Called when entering a new run.
virtual ~ARICHDQMModule()
Destructor.
virtual void defineHisto() override
Definition of the histograms.
Abstract base class for different kinds of events.