Belle II Software  release-05-02-19
eclDQMExtended.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * ECL Data Quality Monitor (Second Module) *
6  * *
7  * This module provides DQM histograms to check out ECL electronics logic *
8  * *
9  * Author: The Belle II Collaboration *
10  * Contributors: Dmitry Matvienko (d.v.matvienko@inp.nsk.su) *
11  * *
12  * This software is provided "as is" without any warranty. *
13  **************************************************************************/
14 
15 #pragma once
16 
17 // Module manager
18 #include <framework/core/HistoModule.h>
19 
20 //STL
21 #include <map>
22 #include <vector>
23 #include <string>
24 
25 //FRAMEWORK
26 #include <framework/database/DBArray.h>
27 #include <framework/database/DBObjPtr.h>
28 #include <framework/datastore/StoreArray.h>
29 #include <framework/datastore/StoreObjPtr.h>
30 
31 //ECL
32 #include <ecl/dataobjects/ECLDigit.h>
33 #include <ecl/dataobjects/ECLTrig.h>
34 #include <ecl/dataobjects/ECLDsp.h>
35 #include <ecl/dbobjects/ECLDspData.h>
36 #include <ecl/dbobjects/ECLCrystalCalib.h>
37 #include <ecl/utility/ECLChannelMapper.h>
38 
39 //TRG
40 #include <mdst/dataobjects/TRGSummary.h>
41 
42 class TH1F;
43 class TH2F;
44 
45 namespace Belle2 {
56  public:
57 
60 
62  virtual ~ECLDQMEXTENDEDModule() override;
63 
65  virtual void initialize() override;
67  virtual void beginRun() override;
69  virtual void event() override;
71  virtual void endRun() override;
73  virtual void terminate() override;
74 
76  virtual void defineHisto() override;
77 
78  private:
82  std::string m_InitKey;
84  std::string m_DSPDirectoryName;
86  std::string m_RunName;
91 
96  std::vector<int> m_skipEvents = {};
97 
104 
107 
110 
113 
116 
123 
126 
128  std::map<int, std::map<std::string, std::vector<short int>>> map_container_vec;
130  std::map<int, std::map<std::string, short int>> map_container_coef;
131 
133  std::vector<short int> v_totalthrA0 = {};
135  std::vector<short int> v_totalthrAhard = {};
137  std::vector<short int> v_totalthrAskip = {};
138 
140  int m_AmpFit{0};
142  int m_TimeFit{0};
144  int m_QualityFit{0};
145 
147  int m_AmpData{0};
149  int m_TimeData{0};
152 
154  int m_CellId{0};
156  int m_TrigTime{0};
157 
159  std::vector<TH1F*> h_amp_timefail = {};
161  std::vector<TH1F*> h_time_ampfail = {};
163  std::vector<std::vector<TH1F*>> h_amp_qualityfail = {};
165  std::vector<std::vector<TH1F*>> h_time_qualityfail = {};
166 
168  TH1F* h_ampfail_quality{nullptr};
170  TH1F* h_timefail_quality{nullptr};
171 
173  TH1F* h_ampfail_cellid{nullptr};
175  TH1F* h_timefail_cellid{nullptr};
177  TH1F* h_amptimefail_cellid{nullptr};
179  TH1F* h_qualityfail_cellid{nullptr};
181  TH1F* h_ampfail_shaperid{nullptr};
183  TH1F* h_timefail_shaperid{nullptr};
185  TH1F* h_amptimefail_shaperid{nullptr};
187  TH1F* h_qualityfail_shaperid{nullptr};
189  TH1F* h_fail_shaperid{nullptr};
191  TH1F* h_ampfail_crateid{nullptr};
193  TH1F* h_timefail_crateid{nullptr};
195  TH1F* h_amptimefail_crateid{nullptr};
197  TH1F* h_qualityfail_crateid{nullptr};
199  TH1F* h_fail_crateid{nullptr};
200 
202  TH2F* h_ampdiff_cellid{nullptr};
204  TH2F* h_timediff_cellid{nullptr};
206  TH2F* h_ampdiff_shaperid{nullptr};
208  TH2F* h_timediff_shaperid{nullptr};
210  TH2F* h_ampdiff_quality{nullptr};
212  TH2F* h_timediff_quality{nullptr};
214  TH2F* h_quality_fit_data{nullptr};
216  TH2F* h_ampflag_qualityfail{nullptr};
218  TH2F* h_timeflag_qualityfail{nullptr};
219 
220 
222  int conversion(int);
224  const short int* vectorsplit(const std::vector<short int>&, int);
226  void callbackCalibration(DBObjPtr<ECLCrystalCalib>&, std::vector<short int>&);
228  void callbackCalibration(const ECLDspData*, std::map<std::string, std::vector<short int>>&, std::map<std::string, short int>&);
230  void initDspfromDB();
232  void initDspfromFile();
234  void emulator(int, int, std::vector<int>);
235  };
237 }; // end Belle2 namespace
Belle2::ECLDQMEXTENDEDModule::h_fail_shaperid
TH1F * h_fail_shaperid
Histogram: ShaperIDs w/ failed logic.
Definition: eclDQMExtended.h:189
Belle2::ECLDQMEXTENDEDModule::m_TimeData
int m_TimeData
Signal time from ECL data.
Definition: eclDQMExtended.h:149
Belle2::ECLDQMEXTENDEDModule::initDspfromDB
void initDspfromDB()
Get DSP coeffs and auxiliary constants from DB.
Definition: eclDQMExtended.cc:345
Belle2::ECLDQMEXTENDEDModule::m_RunName
std::string m_RunName
Run with valid DSP coeffs.
Definition: eclDQMExtended.h:86
Belle2::ECLDQMEXTENDEDModule::m_ECLDsps
StoreArray< ECLDsp > m_ECLDsps
ECL DSP data.
Definition: eclDQMExtended.h:112
Belle2::ECLDQMEXTENDEDModule::h_amp_timefail
std::vector< TH1F * > h_amp_timefail
Histogram vector: Amplitude for time mismacthes (AmplitudeFit == AmplitudeData) w/ various QualityDat...
Definition: eclDQMExtended.h:159
Belle2::ECLDQMEXTENDEDModule::conversion
int conversion(int)
Convert a CellID number to the global Shaper number.
Definition: eclDQMExtended.cc:330
Belle2::ECLDQMEXTENDEDModule::v_totalthrAhard
std::vector< short int > v_totalthrAhard
Vector to store hit thresholds.
Definition: eclDQMExtended.h:135
Belle2::ECLDQMEXTENDEDModule::h_timefail_crateid
TH1F * h_timefail_crateid
Histogram: CrateIDs w/ failed times.
Definition: eclDQMExtended.h:193
Belle2::ECLDQMEXTENDEDModule::m_ECLDigits
StoreArray< ECLDigit > m_ECLDigits
ECL digits.
Definition: eclDQMExtended.h:106
Belle2::ECLDQMEXTENDEDModule::h_qualityfail_crateid
TH1F * h_qualityfail_crateid
Histogram: CrateIDs w/ failed qualities.
Definition: eclDQMExtended.h:197
Belle2::ECLDQMEXTENDEDModule::h_ampfail_crateid
TH1F * h_ampfail_crateid
Histogram: CrateIDs w/ failed amplitudes.
Definition: eclDQMExtended.h:191
Belle2::ECLDQMEXTENDEDModule::h_time_qualityfail
std::vector< std::vector< TH1F * > > h_time_qualityfail
Histogram vector: TimeData for quality mismacthes w/ various QualitFit (raw) and QualityData (column)...
Definition: eclDQMExtended.h:165
Belle2::ECLDQMEXTENDEDModule
This module is created to monitor ECL electronics logic in frame of DQM system.
Definition: eclDQMExtended.h:54
Belle2::ECLDQMEXTENDEDModule::m_InitKey
std::string m_InitKey
Key to initialize DSP coeffs.
Definition: eclDQMExtended.h:82
Belle2::ECLDQMEXTENDEDModule::m_skipEvents
std::vector< int > m_skipEvents
Skip events with specified type of timing source (see TRGSummary class, ETimingType enum)
Definition: eclDQMExtended.h:96
Belle2::ECLDQMEXTENDEDModule::h_fail_crateid
TH1F * h_fail_crateid
Histogram: CrateIDs w/ failed logic.
Definition: eclDQMExtended.h:199
Belle2::DBArray
Class for accessing arrays of objects in the database.
Definition: DBArray.h:36
Belle2::ECLDQMEXTENDEDModule::h_timediff_cellid
TH2F * h_timediff_cellid
Histogram: Time diff.
Definition: eclDQMExtended.h:204
Belle2::ECLDQMEXTENDEDModule::v_totalthrA0
std::vector< short int > v_totalthrA0
Vector to store Low amplitude thresholds.
Definition: eclDQMExtended.h:133
Belle2::ECLDQMEXTENDEDModule::beginRun
virtual void beginRun() override
Call when a run begins.
Definition: eclDQMExtended.cc:443
Belle2::ECLDQMEXTENDEDModule::m_TimeFit
int m_TimeFit
Signal time obtaining from DSP emulator.
Definition: eclDQMExtended.h:142
Belle2::ECLDQMEXTENDEDModule::v_totalthrAskip
std::vector< short int > v_totalthrAskip
Vector to store skip amplitude threshold.
Definition: eclDQMExtended.h:137
Belle2::ECLDQMEXTENDEDModule::mapper
ECL::ECLChannelMapper mapper
ECL channel mapper.
Definition: eclDQMExtended.h:125
Belle2::ECLDQMEXTENDEDModule::h_qualityfail_cellid
TH1F * h_qualityfail_cellid
Histogram: CellIDs w/ failed qualities.
Definition: eclDQMExtended.h:179
Belle2::ECLDQMEXTENDEDModule::m_calibrationThrAskip
DBObjPtr< ECLCrystalCalib > m_calibrationThrAskip
Skip amplitude threshold.
Definition: eclDQMExtended.h:122
Belle2::ECLDQMEXTENDEDModule::h_qualityfail_shaperid
TH1F * h_qualityfail_shaperid
Histogram: ShaperIDs w/ failed qualities.
Definition: eclDQMExtended.h:187
Belle2::ECLDQMEXTENDEDModule::m_calibrationThrAhard
DBObjPtr< ECLCrystalCalib > m_calibrationThrAhard
Hit threshold.
Definition: eclDQMExtended.h:120
Belle2::ECLDQMEXTENDEDModule::h_amptimefail_crateid
TH1F * h_amptimefail_crateid
Histogram: CrateIDs w/ failed amplitudes and times.
Definition: eclDQMExtended.h:195
Belle2::ECLDQMEXTENDEDModule::m_ECLDspDataArray2
DBArray< ECLDspData > m_ECLDspDataArray2
DBArray for payload 'ECLDSPPars2'.
Definition: eclDQMExtended.h:103
Belle2::ECLDQMEXTENDEDModule::m_SaveDetailedFitData
bool m_SaveDetailedFitData
Save detailed fit data for failed fits.
Definition: eclDQMExtended.h:88
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::ECLDQMEXTENDEDModule::ECLDQMEXTENDEDModule
ECLDQMEXTENDEDModule()
< derived from HistoModule class.
Definition: eclDQMExtended.cc:58
Belle2::ECLDQMEXTENDEDModule::h_timediff_shaperid
TH2F * h_timediff_shaperid
Histogram: Time diff.
Definition: eclDQMExtended.h:208
Belle2::ECLDQMEXTENDEDModule::h_ampfail_quality
TH1F * h_ampfail_quality
Histogram: Amp.
Definition: eclDQMExtended.h:168
Belle2::ECLDspData
This object contains ECL DSP coefs – electromagnetic calorimeter digital signal processing coefficien...
Definition: ECLDspData.h:44
Belle2::ECLDQMEXTENDEDModule::h_amptimefail_cellid
TH1F * h_amptimefail_cellid
Histogram: CellIDs w/ failed amplitudes and times.
Definition: eclDQMExtended.h:177
Belle2::ECLDQMEXTENDEDModule::h_amptimefail_shaperid
TH1F * h_amptimefail_shaperid
Histogram: ShaperIDs w/ failed amplitudes and times.
Definition: eclDQMExtended.h:185
Belle2::ECL::ECLChannelMapper
This class provides access to ECL channel map that is either a) Loaded from the database (see ecl/dbo...
Definition: ECLChannelMapper.h:36
Belle2::ECLDQMEXTENDEDModule::h_timeflag_qualityfail
TH2F * h_timeflag_qualityfail
Histogram: Time flag (0/1) w/ failed qualities in bins of Quality Data.
Definition: eclDQMExtended.h:218
Belle2::ECLDQMEXTENDEDModule::map_container_vec
std::map< int, std::map< std::string, std::vector< short int > > > map_container_vec
Map to store DSP coeffs.
Definition: eclDQMExtended.h:128
Belle2::ECLDQMEXTENDEDModule::defineHisto
virtual void defineHisto() override
Function to define histograms.
Definition: eclDQMExtended.cc:104
Belle2::ECLDQMEXTENDEDModule::m_ECLDspDataArray0
DBArray< ECLDspData > m_ECLDspDataArray0
DBArray for payload 'ECLDSPPars0'.
Definition: eclDQMExtended.h:99
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECLDQMEXTENDEDModule::map_container_coef
std::map< int, std::map< std::string, short int > > map_container_coef
Map to store auxiliary constants for all shapers.
Definition: eclDQMExtended.h:130
Belle2::StoreObjPtr
Type-safe access to single objects in the data store.
Definition: ParticleList.h:33
Belle2::ECLDQMEXTENDEDModule::vectorsplit
const short int * vectorsplit(const std::vector< short int > &, int)
Select from vector of DSP coeffs a subvector corresponding to accurate channel number.
Definition: eclDQMExtended.cc:337
Belle2::ECLDQMEXTENDEDModule::h_quality_fit_data
TH2F * h_quality_fit_data
Histogram: QualityFit vs QualityData for quality fails.
Definition: eclDQMExtended.h:214
Belle2::ECLDQMEXTENDEDModule::m_histogramDirectoryName
std::string m_histogramDirectoryName
Histogram directory in ROOT file.
Definition: eclDQMExtended.h:80
Belle2::ECLDQMEXTENDEDModule::m_QualityData
int m_QualityData
Quality flag from ECL data.
Definition: eclDQMExtended.h:151
Belle2::ECLDQMEXTENDEDModule::h_amp_qualityfail
std::vector< std::vector< TH1F * > > h_amp_qualityfail
Histogram vector: AmplitudeData for quality mismathes w/ various QualityFit (raw) and QualityData (co...
Definition: eclDQMExtended.h:163
Belle2::ECLDQMEXTENDEDModule::m_ECLTrigs
StoreArray< ECLTrig > m_ECLTrigs
ECL trigger data.
Definition: eclDQMExtended.h:109
Belle2::ECLDQMEXTENDEDModule::h_ampfail_shaperid
TH1F * h_ampfail_shaperid
Histogram: ShaperIDs w/ failed amplitudes.
Definition: eclDQMExtended.h:181
Belle2::ECLDQMEXTENDEDModule::callbackCalibration
void callbackCalibration(DBObjPtr< ECLCrystalCalib > &, std::vector< short int > &)
Read calibration values for thresholds from DBObject.
Definition: eclDQMExtended.cc:299
Belle2::ECLDQMEXTENDEDModule::initialize
virtual void initialize() override
Initialize the module.
Definition: eclDQMExtended.cc:284
Belle2::ECLDQMEXTENDEDModule::h_timefail_quality
TH1F * h_timefail_quality
Histogram: Time control flags in bins of QualityData.
Definition: eclDQMExtended.h:170
Belle2::ECLDQMEXTENDEDModule::m_QualityFit
int m_QualityFit
Quality flag obtaining from DSP emulator.
Definition: eclDQMExtended.h:144
Belle2::ECLDQMEXTENDEDModule::m_DSPDirectoryName
std::string m_DSPDirectoryName
Directory name consisting of DSP coeffs.
Definition: eclDQMExtended.h:84
Belle2::ECLDQMEXTENDEDModule::h_ampdiff_cellid
TH2F * h_ampdiff_cellid
Histogram: Amplitude diff.
Definition: eclDQMExtended.h:202
Belle2::ECLDQMEXTENDEDModule::~ECLDQMEXTENDEDModule
virtual ~ECLDQMEXTENDEDModule() override
Destructor.
Definition: eclDQMExtended.cc:96
Belle2::ECLDQMEXTENDEDModule::h_ampflag_qualityfail
TH2F * h_ampflag_qualityfail
Histogram: Amp flag (0/1) w/ failed qualities in bins of QualityData.
Definition: eclDQMExtended.h:216
Belle2::ECLDQMEXTENDEDModule::h_timefail_cellid
TH1F * h_timefail_cellid
Histogram: CellIDs w/ failed times.
Definition: eclDQMExtended.h:175
Belle2::ECLDQMEXTENDEDModule::m_TrigTime
int m_TrigTime
Trigger time value.
Definition: eclDQMExtended.h:156
Belle2::ECLDQMEXTENDEDModule::h_ampdiff_shaperid
TH2F * h_ampdiff_shaperid
Histogram: Amp.
Definition: eclDQMExtended.h:206
Belle2::ECLDQMEXTENDEDModule::h_timediff_quality
TH2F * h_timediff_quality
Histogram: Time diff.
Definition: eclDQMExtended.h:212
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::ECLDQMEXTENDEDModule::h_time_ampfail
std::vector< TH1F * > h_time_ampfail
Histogram vector: Time for amplitude mismathces (TimeFit == TimeData) w/ various QualityData values.
Definition: eclDQMExtended.h:161
Belle2::ECLDQMEXTENDEDModule::m_CellId
int m_CellId
Cell ID number.
Definition: eclDQMExtended.h:154
Belle2::ECLDQMEXTENDEDModule::initDspfromFile
void initDspfromFile()
Get DSP coeffs and auxiliary constants from Files.
Definition: eclDQMExtended.cc:377
Belle2::ECLDQMEXTENDEDModule::m_AmpData
int m_AmpData
Signal amplitude from ECL data.
Definition: eclDQMExtended.h:147
Belle2::ECLDQMEXTENDEDModule::emulator
void emulator(int, int, std::vector< int >)
Call for DSP emulator.
Definition: eclDQMExtended.cc:403
Belle2::ECLDQMEXTENDEDModule::endRun
virtual void endRun() override
Call when a run ends.
Definition: eclDQMExtended.cc:582
Belle2::ECLDQMEXTENDEDModule::h_ampdiff_quality
TH2F * h_ampdiff_quality
Histogram: Amp.
Definition: eclDQMExtended.h:210
Belle2::ECLDQMEXTENDEDModule::m_TRGSummary
StoreObjPtr< TRGSummary > m_TRGSummary
StoreObjPtr TRGSummary
Definition: eclDQMExtended.h:115
Belle2::ECLDQMEXTENDEDModule::terminate
virtual void terminate() override
Terminate.
Definition: eclDQMExtended.cc:588
Belle2::ECLDQMEXTENDEDModule::event
virtual void event() override
Event processor.
Definition: eclDQMExtended.cc:482
Belle2::ECLDQMEXTENDEDModule::m_calibrationThrA0
DBObjPtr< ECLCrystalCalib > m_calibrationThrA0
Low amplitude threshold.
Definition: eclDQMExtended.h:118
Belle2::ECLDQMEXTENDEDModule::h_timefail_shaperid
TH1F * h_timefail_shaperid
Histogram: ShaperIDs w/ failed times.
Definition: eclDQMExtended.h:183
Belle2::ECLDQMEXTENDEDModule::m_adjusted_timing
bool m_adjusted_timing
Use modified time determination algorithm in emulator, same as in ShaperDSP version >= 1....
Definition: eclDQMExtended.h:90
Belle2::ECLDQMEXTENDEDModule::h_ampfail_cellid
TH1F * h_ampfail_cellid
Histogram: CellIDs w/ failed amplitudes.
Definition: eclDQMExtended.h:173
Belle2::HistoModule
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Belle2::ECLDQMEXTENDEDModule::m_ECLDspDataArray1
DBArray< ECLDspData > m_ECLDspDataArray1
DBArray for payload 'ECLDSPPars1'.
Definition: eclDQMExtended.h:101
Belle2::ECLDQMEXTENDEDModule::m_AmpFit
int m_AmpFit
Signal amplitude obtaining from DSP emulator.
Definition: eclDQMExtended.h:140