Belle II Software development
SVDDQMExpressRecoModule.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#include <mdst/dataobjects/SoftwareTriggerResult.h>
13#include <framework/datastore/StoreArray.h>
14#include <framework/datastore/StoreObjPtr.h>
15#include <vxd/dataobjects/VxdID.h>
16#include <mdst/dataobjects/TRGSummary.h>
17#include <svd/geometry/SensorInfo.h>
18#include <vxd/geometry/GeoCache.h>
19#include <svd/dataobjects/SVDEventInfo.h>
20#include <svd/dbobjects/SVDDQMPlotsConfiguration.h>
21#include <framework/database/DBObjPtr.h>
22#include <vector>
23#include "TList.h"
24#include "TH1F.h"
25#include "TH2F.h"
26
27namespace Belle2 {
32
34 class SVDDQMExpressRecoModule : public HistoModule { // <- derived from HistoModule class
35
36 public:
37
42 /* Destructor */
46
48 void initialize() override final;
50 void terminate() override final;
52 void beginRun() override final;
54 void event() override final;
55
60 void defineHisto() override final;
61
62 private:
63
68
71 bool m_desynchSVDTime = false;
72
75
78
80 bool m_additionalPlots = false;
81
83 bool m_3Samples = false;
84
86 bool m_useParamFromDB = true;
87
89 TList* m_histoList = nullptr;
90
92 int m_expNumber = 0;
94 int m_runNumber = 0;
95
98
100 float m_CutSVDCharge = 0.0;
101
104
107
114
116 TH1F* m_nEvents = nullptr;
117
119 TH1F* m_hitMapCountsU = nullptr;
121 TH1F* m_hitMapCountsV = nullptr;
123 TH1F* m_hitMapClCountsU = nullptr;
125 TH1F* m_hitMapClCountsV = nullptr;
127 TH1F* m_hitMapCountsChip = nullptr;
129 TH1F* m_hitMapClCountsChip = nullptr;
131 TH1F** m_firedU = nullptr;
133 TH1F** m_firedV = nullptr;
135 TH1F** m_clustersU = nullptr;
137 TH1F** m_clustersV = nullptr;
138
140 TH1F** m_clusterChargeU = nullptr;
142 TH1F** m_clusterChargeV = nullptr;
144 TH1F* m_clusterChargeUAll = nullptr;
146 TH1F* m_clusterChargeVAll = nullptr;
148 TH1F* m_clusterChargeU3 = nullptr;
150 TH1F* m_clusterChargeV3 = nullptr;
152 TH1F* m_clusterChargeU456 = nullptr;
154 TH1F* m_clusterChargeV456 = nullptr;
155
157 TH1F** m_clusterSNRU = nullptr;
159 TH1F** m_clusterSNRV = nullptr;
161 TH1F* m_clusterSNRUAll = nullptr;
163 TH1F* m_clusterSNRVAll = nullptr;
165 TH1F* m_clusterSNRU3 = nullptr;
167 TH1F* m_clusterSNRV3 = nullptr;
169 TH1F* m_clusterSNRU456 = nullptr;
171 TH1F* m_clusterSNRV456 = nullptr;
172
174 TH1F* m_stripMaxBinUAll = nullptr;
176 TH1F* m_stripMaxBinVAll = nullptr;
178 TH1F* m_stripMaxBinU3 = nullptr;
180 TH1F* m_stripMaxBinV3 = nullptr;
182 TH1F* m_stripMaxBinU6 = nullptr;
184 TH1F* m_stripMaxBinV6 = nullptr;
185
187 TH1F** m_stripSignalU = nullptr;
189 TH1F** m_stripSignalV = nullptr;
191 TH1F** m_stripCountU = nullptr;
193 TH1F** m_stripCountV = nullptr;
195 TH1F** m_onlineZSstripCountU = nullptr;
197 TH1F** m_onlineZSstripCountV = nullptr;
198
201
204
206 TH1F** m_strip3SampleCountU = nullptr;
208 TH1F** m_strip3SampleCountV = nullptr;
213
214
216 TH1F** m_strip6SampleCountU = nullptr;
218 TH1F** m_strip6SampleCountV = nullptr;
223
225 TH1F** m_clusterSizeU = nullptr;
227 TH1F** m_clusterSizeV = nullptr;
228
230 TH2F* m_clusterTimeGroupIdU = nullptr;
232 TH2F* m_clusterTimeGroupIdV = nullptr;
233
238
243
252
254 TH1F* m_clusterSNRGroupIDsL3U = nullptr;
256 TH1F* m_clusterSNRGroupIDsL3V = nullptr;
261
270
272 TH1F** m_clusterTimeU = nullptr;
274 TH1F** m_clusterTimeV = nullptr;
276 TH1F* m_clusterTimeUAll = nullptr;
278 TH1F* m_clusterTimeVAll = nullptr;
280 TH1F* m_clusterTimeU3 = nullptr;
282 TH1F* m_clusterTimeV3 = nullptr;
284 TH1F* m_clusterTimeU456 = nullptr;
286 TH1F* m_clusterTimeV456 = nullptr;
287
289 TH1F* m_cluster3SampleTimeU3 = nullptr;
291 TH1F* m_cluster3SampleTimeV3 = nullptr;
296
298 TH1F* m_cluster6SampleTimeU3 = nullptr;
300 TH1F* m_cluster6SampleTimeV3 = nullptr;
305
306 //----------------------------------------------------------------
307 // Additional histograms for out of ExpressReco
308 //----------------------------------------------------------------
309
311 TH2F** m_hitMapU = nullptr;
313 TH2F** m_hitMapV = nullptr;
315 TH1F** m_hitMapUCl = nullptr;
317 TH1F** m_hitMapVCl = nullptr;
318
319 };
320
322}
Class for accessing objects in the database.
Definition DBObjPtr.h:21
HistoModule()
Constructor.
Definition HistoModule.h:32
TH1F ** m_hitMapUCl
Hitmaps clusters for u.
TH1F ** m_clustersV
number of v clusters per event
SVDDQMExpressRecoModule(const SVDDQMExpressRecoModule &)=delete
Copy constructor (disabled)
TH1F * m_clusterSNRVAll
v SNR of clusters for all sensors
TH1F ** m_strip3SampleCountV
v strip count for 3 samples
TH1F * m_clusterTimeV456
v Time of clusters for layer 4,5,6 sensors
bool m_useParamFromDB
if true read back from DB configuration parameters
TH1F * m_clusterSNRUAll
u SNR of clusters for all sensors
TH1F * m_clusterChargeU3
u charge of clusters for layer 3 sensors
void initialize() override final
Module function initialize.
TH2F * m_clusterTimeGroupIdV
time group id for V side
TH1F * m_clusterSNRV3
v SNR of clusters for layer 3 sensors
TH1F * m_hitMapCountsV
Hitmaps v of Digits.
TH2F ** m_hitMapU
Hitmaps pixels for u.
TH1F ** m_onlineZSstrip6sampleCountU
u strip count (online Zero Suppression) for 6 samples
std::string m_storeNoZSSVDShaperDigitsName
not zero-suppressed SVDShaperDigits StoreArray name
bool m_skipRejectedEvents
if true skip events rejected by HLT
TH1F * m_clusterTimeGroupIDsL456V
v Time group id of clusters for layer 4,5,6 sensors
TH1F * m_clusterSNRGroupIDsL456U
u SNR group id of clusters for layer 4,5,6 sensors
TH1F * m_stripMaxBinU6
u MaxBin of strips for layer 6 sensors (offline Zero Suppression)
TH1F * m_clusterTimeUAll
u time of clusters for all sensors
TH1F ** m_onlineZSstrip3SampleCountV
v strip count (online Zero Suppression for 3 samples
TH1F * m_clusterTimeGroupIDsL456U
u Time group id of clusters for layer 4,5,6 sensors
TH1F * m_hitMapClCountsU
Hitmaps u of Clusters.
TH2F * m_clusterTimeFineGroupIdV
time group id for V side for fine trigger
float m_CutSVDCharge
cut for accepting strips to hitmap histogram default = 0 ADU
TH1F * m_cluster6SampleTimeU3
u Time of clusters for layer 3 sensors for 6 samples
StoreObjPtr< SVDEventInfo > m_svdEventInfo
SVDEventInfo data object.
TH1F * m_clusterChargeGroupIDsL3V
v charge group id of clusters for layer 3 sensors
TH1F * m_hitMapCountsU
Hitmaps u of Digits.
TH1F ** m_clusterSNRV
v SNR of clusters per sensor
TH1F ** m_clusterChargeV
v charge of clusters
TH1F * m_cluster3SampleTimeU3
u Time of clusters for layer 3 sensors for 3 samples
TH1F ** m_stripSignalU
u charge of strips
TH1F * m_clusterChargeUAll
u charge of clusters for all sensors
TH1F * m_clusterSNRGroupIDsL3U
u SNR group id of clusters for layer 3 sensors
TH1F * m_cluster3SampleTimeU456
u Time of clusters for layer 4,5,6 sensors for 3 samples
TH1F ** m_stripCountSignalGroupIDsV
V strip count for cluster time group Id = 0.
TH1F * m_clusterChargeU456
u charge of clusters for layer 4,5,6 sensors
void defineHisto() override final
Histogram definitions such as TH1(), TH2(), TNtuple(), TTree()....
TH1F * m_cluster3SampleTimeV456
v Time of clusters for layer 4,5,6 sensors for 3 samples
TH1F * m_clusterChargeGroupIDsL456U
u charge group id of clusters for layer 4,5,6 sensors
TH1F * m_clusterTimeV3
v Time of clusters for layer 3 sensors
DBObjPtr< SVDDQMPlotsConfiguration > m_svdPlotsConfig
SVD DQM plots configuration.
TH1F ** m_clusterSNRU
u SNR of clusters per sensor
TH1F ** m_hitMapVCl
Hitmaps clusters for v.
TH1F ** m_strip3SampleCountU
u strip count for 3 samples
void terminate() override final
Module function terminate.
TH1F * m_stripMaxBinV3
v MaxBin of strips for layer 3 sensors (offline Zero Suppression)
TH1F * m_clusterTimeVAll
v time of clusters for all sensors
TH2F * m_clusterTimeCoarseGroupIdU
time group id for U side for coarse trigger
void event() override final
Module function event.
TH1F * m_clusterTimeGroupIDsL3U
u Time group id of clusters for layer 3 sensors
TH1F ** m_onlineZSstripCountV
v strip count (online Zero Suppression
TH1F ** m_stripSignalV
v charge of strips
StoreObjPtr< TRGSummary > m_objTrgSummary
Trigger Summary data object.
std::string m_storeSVDShaperDigitsName
SVDShaperDigits StoreArray name.
TH1F * m_clusterSNRGroupIDsL456V
v SNR group id of clusters for layer 4,5,6 sensors
TH1F * m_clusterChargeGroupIDsL456V
v charge group id of clusters for layer 4,5,6 sensors
std::string m_histogramDirectoryName
Name of the histogram directory in ROOT file.
TH1F * m_clusterChargeVAll
v charge of clusters for all sensors
TH1F ** m_stripCountSignalGroupIDsU
U strip count for cluster time group Id = 0.
TH1F * m_clusterSNRU3
u SNR of clusters for layer 3 sensors
TH1F * m_clusterSNRGroupIDsL3V
v SNR group id of clusters for layer 3 sensors
TH1F * m_clusterSNRV456
v SNR of clusters for layer 4,5,6 sensors
TH1F * m_stripMaxBinUAll
u MaxBin of strips for all sensors (offline Zero Suppression)
bool m_3Samples
if true enable 3 samples histograms analysis
TList * m_histoList
list of cumulative histograms
TH1F ** m_clusterChargeU
u charge of clusters
TH1F * m_hitMapCountsChip
Hitmaps of digits on chips.
TH1F * m_cluster3SampleTimeV3
v Time of clusters for layer 3 sensors for 3 samples
TH1F * m_clusterChargeV3
v charge of clusters for layer 3 sensors
TH2F ** m_hitMapV
Hitmaps pixels for v.
TH1F * m_stripMaxBinV6
v MaxBin of strips for layer 6 sensors (offline Zero Suppression)
TH1F ** m_strip6SampleCountV
v strip count for 3 samples
TH1F * m_cluster6SampleTimeV456
v Time of clusters for layer 4,5,6 sensors for 6 samples
TH1F ** m_firedU
Fired u strips per event.
TH1F * m_clusterTimeU3
u Time of clusters for layer 3 sensors
TH1F * m_cluster6SampleTimeV3
v Time of clusters for layer 3 sensors for 6 samples
TH1F * m_clusterSNRU456
u SNR of clusters for layer 4,5,6 sensors
TH1F * m_clusterChargeGroupIDsL3U
u charge group id of clusters for layer 3 sensors
void beginRun() override final
Module function beginRun.
TH1F ** m_onlineZSstripCountU
u strip count (online Zero Suppression)
int m_ShowAllHistos
Flag to show all histos in DQM, default = 0 (do not show)
bool m_additionalPlots
additional plots flag
TH1F * m_stripMaxBinU3
u MaxBin of strips for layer 3 sensors (offline Zero Suppression)
bool m_desynchSVDTime
if TRUE: svdTime back in SVD time reference
TH1F * m_clusterTimeGroupIDsL3V
v Time group id of clusters for layer 3 sensors
SVDDQMExpressRecoModule & operator=(const SVDDQMExpressRecoModule &)=delete
Operator = (disabled)
TH1F * m_stripMaxBinVAll
v MaxBin of strips for all sensors (offline Zero Suppression)
TH1F * m_hitMapClCountsChip
Hitmaps of clusters on chips.
TH1F ** m_strip6SampleCountU
u strip count for 6 samples
TH1F ** m_onlineZSstrip3SampleCountU
u strip count (online Zero Suppression) for 3 samples
TH1F ** m_onlineZSstrip6sampleCountV
v strip count (online Zero Suppression for 6 samples
StoreObjPtr< SoftwareTriggerResult > m_resultStoreObjectPointer
Store Object for reading the trigger decision.
float m_CutSVDClusterCharge
cut for accepting clusters to hitmap histogram, default = 0 ke-
TH2F * m_clusterTimeGroupIdU
time group id for U side
std::string m_storeSVDClustersName
SVDClusters StoreArray name.
TH1F * m_clusterTimeU456
u Time of clusters for layer 4,5,6 sensors
TH2F * m_clusterTimeCoarseGroupIdV
time group id for V side for coarse trigger
TH1F ** m_firedV
Fired v strips per event.
TH1F * m_clusterChargeV456
v charge of clusters for layer 4,5,6 sensors
TH1F * m_hitMapClCountsV
Hitmaps v of Clusters.
TH1F ** m_clustersU
number of u clusters per event
TH2F * m_clusterTimeFineGroupIdU
time group id for U side for fine trigger
TH1F * m_cluster6SampleTimeU456
u Time of clusters for layer 4,5,6 sensors for 6 samples
This class handle DQM plots configuration: additional histograms (Charge, SNR, Time),...
Stores SVDModeByte object with Trigger time, DAQ mode, Run type & Event type!
Dataobject to store the results of the cut calculations performed by the SoftwareTriggerModule.
Type-safe access to single objects in the data store.
Definition StoreObjPtr.h:96
Trigger Summary Information input bits input bits from subdetectors ftdl (Final Trigger Decision Logi...
Definition TRGSummary.h:32
Abstract base class for different kinds of events.
STL namespace.