Belle II Software  release-05-01-25
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 
29 //ECL
30 #include <ecl/utility/ECLChannelMapper.h>
31 #include <ecl/dbobjects/ECLDspData.h>
32 #include <ecl/dbobjects/ECLCrystalCalib.h>
33 
34 
35 class TH1F;
36 class TH2F;
37 
38 namespace Belle2 {
49  public:
50 
53 
55  virtual ~ECLDQMEXTENDEDModule() override;
56 
58  virtual void initialize() override;
60  virtual void beginRun() override;
62  virtual void event() override;
64  virtual void endRun() override;
66  virtual void terminate() override;
67 
69  virtual void defineHisto() override;
70 
71  private:
75  std::string m_InitKey;
77  std::string m_DSPDirectoryName;
79  std::string m_RunName;
84 
91 
98 
101 
103  std::map<std::string, std::vector<short int>> map_vec;
105  std::map<std::string, short int> map_coef;
107  std::map<int, std::map<std::string, std::vector<short int>>> map_container_vec;
109  std::map<int, std::map<std::string, short int>> map_container_coef;
110 
112  std::vector<short int> v_totalthrA0 = {};
114  std::vector<short int> v_totalthrAhard = {};
116  std::vector<short int> v_totalthrAskip = {};
117 
119  int m_AmpFit{0};
121  int m_TimeFit{0};
123  int m_QualityFit{0};
124 
126  int m_AmpData{0};
128  int m_TimeData{0};
131 
133  int m_CellId{0};
135  int m_TrigTime{0};
136 
138  std::vector<TH1F*> h_amp_timefail = {};
140  std::vector<TH1F*> h_time_ampfail = {};
142  std::vector<std::vector<TH1F*>> h_amp_qualityfail = {};
144  std::vector<std::vector<TH1F*>> h_time_qualityfail = {};
145 
147  TH1F* h_ampfail_quality{nullptr};
149  TH1F* h_timefail_quality{nullptr};
150 
152  TH1F* h_ampfail_cellid{nullptr};
154  TH1F* h_timefail_cellid{nullptr};
156  TH1F* h_amptimefail_cellid{nullptr};
158  TH1F* h_qualityfail_cellid{nullptr};
160  TH1F* h_ampfail_shaperid{nullptr};
162  TH1F* h_timefail_shaperid{nullptr};
164  TH1F* h_amptimefail_shaperid{nullptr};
166  TH1F* h_qualityfail_shaperid{nullptr};
168  TH1F* h_fail_shaperid{nullptr};
170  TH1F* h_ampfail_crateid{nullptr};
172  TH1F* h_timefail_crateid{nullptr};
174  TH1F* h_amptimefail_crateid{nullptr};
176  TH1F* h_qualityfail_crateid{nullptr};
178  TH1F* h_fail_crateid{nullptr};
179 
181  TH2F* h_ampdiff_cellid{nullptr};
183  TH2F* h_timediff_cellid{nullptr};
185  TH2F* h_ampdiff_shaperid{nullptr};
187  TH2F* h_timediff_shaperid{nullptr};
189  TH2F* h_ampdiff_quality{nullptr};
191  TH2F* h_timediff_quality{nullptr};
193  TH2F* h_quality_fit_data{nullptr};
195  TH2F* h_ampflag_qualityfail{nullptr};
197  TH2F* h_timeflag_qualityfail{nullptr};
198 
199 
201  int conversion(int);
203  short int* vectorsplit(std::vector<short int>&, int);
205  void callbackCalibration(DBObjPtr<ECLCrystalCalib>&, std::vector<short int>&);
207  void callbackCalibration(ECLDspData*, std::map<std::string, std::vector<short int>>&, std::map<std::string, short int>&);
209  void initDspfromDB();
211  void initDspfromFile();
213  void emulator(int, int, std::vector<int>);
214  };
216 }; // end Belle2 namespace
Belle2::ECLDQMEXTENDEDModule::h_fail_shaperid
TH1F * h_fail_shaperid
Histogram: ShaperIDs w/ failed logic.
Definition: eclDQMExtended.h:168
Belle2::ECLDQMEXTENDEDModule::m_TimeData
int m_TimeData
Signal time from ECL data.
Definition: eclDQMExtended.h:128
Belle2::ECLDQMEXTENDEDModule::initDspfromDB
void initDspfromDB()
Get DSP coeffs and auxiliary constants from DB.
Definition: eclDQMExtended.cc:343
Belle2::ECLDQMEXTENDEDModule::m_RunName
std::string m_RunName
Run with valid DSP coeffs.
Definition: eclDQMExtended.h:79
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:138
Belle2::ECLDQMEXTENDEDModule::conversion
int conversion(int)
Convert a CellID number to the global Shaper number.
Definition: eclDQMExtended.cc:328
Belle2::ECLDQMEXTENDEDModule::v_totalthrAhard
std::vector< short int > v_totalthrAhard
Vector to store hit thresholds.
Definition: eclDQMExtended.h:114
Belle2::ECLDQMEXTENDEDModule::h_timefail_crateid
TH1F * h_timefail_crateid
Histogram: CrateIDs w/ failed times.
Definition: eclDQMExtended.h:172
Belle2::ECLDQMEXTENDEDModule::map_vec
std::map< std::string, std::vector< short int > > map_vec
Map to store DSP coeffs.
Definition: eclDQMExtended.h:103
Belle2::ECLDQMEXTENDEDModule::h_qualityfail_crateid
TH1F * h_qualityfail_crateid
Histogram: CrateIDs w/ failed qualities.
Definition: eclDQMExtended.h:176
Belle2::ECLDQMEXTENDEDModule::h_ampfail_crateid
TH1F * h_ampfail_crateid
Histogram: CrateIDs w/ failed amplitudes.
Definition: eclDQMExtended.h:170
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:144
Belle2::ECLDQMEXTENDEDModule
This module is created to monitor ECL electronics logic in frame of DQM system.
Definition: eclDQMExtended.h:47
Belle2::ECLDQMEXTENDEDModule::m_InitKey
std::string m_InitKey
Key to initialize DSP coeffs.
Definition: eclDQMExtended.h:75
Belle2::ECLDQMEXTENDEDModule::h_fail_crateid
TH1F * h_fail_crateid
Histogram: CrateIDs w/ failed logic.
Definition: eclDQMExtended.h:178
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:183
Belle2::ECLDQMEXTENDEDModule::v_totalthrA0
std::vector< short int > v_totalthrA0
Vector to store Low amplitude thresholds.
Definition: eclDQMExtended.h:112
Belle2::ECLDQMEXTENDEDModule::beginRun
virtual void beginRun() override
Call when a run begins.
Definition: eclDQMExtended.cc:458
Belle2::ECLDQMEXTENDEDModule::m_TimeFit
int m_TimeFit
Signal time obtaining from DSP emulator.
Definition: eclDQMExtended.h:121
Belle2::ECLDQMEXTENDEDModule::v_totalthrAskip
std::vector< short int > v_totalthrAskip
Vector to store skip amplitude threshold.
Definition: eclDQMExtended.h:116
Belle2::ECLDQMEXTENDEDModule::mapper
ECL::ECLChannelMapper mapper
ECL channel mapper.
Definition: eclDQMExtended.h:100
Belle2::ECLDQMEXTENDEDModule::h_qualityfail_cellid
TH1F * h_qualityfail_cellid
Histogram: CellIDs w/ failed qualities.
Definition: eclDQMExtended.h:158
Belle2::ECLDQMEXTENDEDModule::m_calibrationThrAskip
DBObjPtr< ECLCrystalCalib > m_calibrationThrAskip
Skip amplitude threshold.
Definition: eclDQMExtended.h:97
Belle2::ECLDQMEXTENDEDModule::h_qualityfail_shaperid
TH1F * h_qualityfail_shaperid
Histogram: ShaperIDs w/ failed qualities.
Definition: eclDQMExtended.h:166
Belle2::ECLDQMEXTENDEDModule::m_calibrationThrAhard
DBObjPtr< ECLCrystalCalib > m_calibrationThrAhard
Hit threshold.
Definition: eclDQMExtended.h:95
Belle2::ECLDQMEXTENDEDModule::h_amptimefail_crateid
TH1F * h_amptimefail_crateid
Histogram: CrateIDs w/ failed amplitudes and times.
Definition: eclDQMExtended.h:174
Belle2::ECLDQMEXTENDEDModule::m_ECLDspDataArray2
DBArray< ECLDspData > m_ECLDspDataArray2
DBArray for payload 'ECLDSPPars2'.
Definition: eclDQMExtended.h:90
Belle2::ECLDQMEXTENDEDModule::m_SaveDetailedFitData
bool m_SaveDetailedFitData
Save detailed fit data for failed fits.
Definition: eclDQMExtended.h:81
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::ECLDQMEXTENDEDModule::ECLDQMEXTENDEDModule
ECLDQMEXTENDEDModule()
< derived from HistoModule class.
Definition: eclDQMExtended.cc:61
Belle2::ECLDQMEXTENDEDModule::h_timediff_shaperid
TH2F * h_timediff_shaperid
Histogram: Time diff.
Definition: eclDQMExtended.h:187
Belle2::ECLDQMEXTENDEDModule::h_ampfail_quality
TH1F * h_ampfail_quality
Histogram: Amp.
Definition: eclDQMExtended.h:147
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:156
Belle2::ECLDQMEXTENDEDModule::h_amptimefail_shaperid
TH1F * h_amptimefail_shaperid
Histogram: ShaperIDs w/ failed amplitudes and times.
Definition: eclDQMExtended.h:164
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:197
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:107
Belle2::ECLDQMEXTENDEDModule::defineHisto
virtual void defineHisto() override
Function to define histograms.
Definition: eclDQMExtended.cc:98
Belle2::ECLDQMEXTENDEDModule::m_ECLDspDataArray0
DBArray< ECLDspData > m_ECLDspDataArray0
DBArray for payload 'ECLDSPPars0'.
Definition: eclDQMExtended.h:86
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:109
Belle2::ECLDQMEXTENDEDModule::h_quality_fit_data
TH2F * h_quality_fit_data
Histogram: QualityFit vs QualityData for quality fails.
Definition: eclDQMExtended.h:193
Belle2::ECLDQMEXTENDEDModule::m_histogramDirectoryName
std::string m_histogramDirectoryName
Histogram directory in ROOT file.
Definition: eclDQMExtended.h:73
Belle2::ECLDQMEXTENDEDModule::m_QualityData
int m_QualityData
Quality flag from ECL data.
Definition: eclDQMExtended.h:130
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:142
Belle2::ECLDQMEXTENDEDModule::h_ampfail_shaperid
TH1F * h_ampfail_shaperid
Histogram: ShaperIDs w/ failed amplitudes.
Definition: eclDQMExtended.h:160
Belle2::ECLDQMEXTENDEDModule::callbackCalibration
void callbackCalibration(DBObjPtr< ECLCrystalCalib > &, std::vector< short int > &)
Read calibration values for thresholds from DBObject.
Definition: eclDQMExtended.cc:298
Belle2::ECLDQMEXTENDEDModule::initialize
virtual void initialize() override
Initialize the module.
Definition: eclDQMExtended.cc:278
Belle2::ECLDQMEXTENDEDModule::h_timefail_quality
TH1F * h_timefail_quality
Histogram: Time control flags in bins of QualityData.
Definition: eclDQMExtended.h:149
Belle2::ECLDQMEXTENDEDModule::m_QualityFit
int m_QualityFit
Quality flag obtaining from DSP emulator.
Definition: eclDQMExtended.h:123
Belle2::ECLDQMEXTENDEDModule::vectorsplit
short int * vectorsplit(std::vector< short int > &, int)
Select from vector of DSP coeffs a subvector corresponding to accurate channel number.
Definition: eclDQMExtended.cc:335
Belle2::ECLDQMEXTENDEDModule::m_DSPDirectoryName
std::string m_DSPDirectoryName
Directory name consisting of DSP coeffs.
Definition: eclDQMExtended.h:77
Belle2::ECLDQMEXTENDEDModule::h_ampdiff_cellid
TH2F * h_ampdiff_cellid
Histogram: Amplitude diff.
Definition: eclDQMExtended.h:181
Belle2::ECLDQMEXTENDEDModule::~ECLDQMEXTENDEDModule
virtual ~ECLDQMEXTENDEDModule() override
Destructor.
Definition: eclDQMExtended.cc:90
Belle2::ECLDQMEXTENDEDModule::h_ampflag_qualityfail
TH2F * h_ampflag_qualityfail
Histogram: Amp flag (0/1) w/ failed qualities in bins of QualityData.
Definition: eclDQMExtended.h:195
Belle2::ECLDQMEXTENDEDModule::map_coef
std::map< std::string, short int > map_coef
Map to store auxiliary constants for one shaper.
Definition: eclDQMExtended.h:105
Belle2::ECLDQMEXTENDEDModule::h_timefail_cellid
TH1F * h_timefail_cellid
Histogram: CellIDs w/ failed times.
Definition: eclDQMExtended.h:154
Belle2::ECLDQMEXTENDEDModule::m_TrigTime
int m_TrigTime
Trigger time value.
Definition: eclDQMExtended.h:135
Belle2::ECLDQMEXTENDEDModule::h_ampdiff_shaperid
TH2F * h_ampdiff_shaperid
Histogram: Amp.
Definition: eclDQMExtended.h:185
Belle2::ECLDQMEXTENDEDModule::h_timediff_quality
TH2F * h_timediff_quality
Histogram: Time diff.
Definition: eclDQMExtended.h:191
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:140
Belle2::ECLDQMEXTENDEDModule::m_CellId
int m_CellId
Cell ID number.
Definition: eclDQMExtended.h:133
Belle2::ECLDQMEXTENDEDModule::initDspfromFile
void initDspfromFile()
Get DSP coeffs and auxiliary constants from Files.
Definition: eclDQMExtended.cc:387
Belle2::ECLDQMEXTENDEDModule::m_AmpData
int m_AmpData
Signal amplitude from ECL data.
Definition: eclDQMExtended.h:126
Belle2::ECLDQMEXTENDEDModule::emulator
void emulator(int, int, std::vector< int >)
Call for DSP emulator.
Definition: eclDQMExtended.cc:414
Belle2::ECLDQMEXTENDEDModule::endRun
virtual void endRun() override
Call when a run ends.
Definition: eclDQMExtended.cc:592
Belle2::ECLDQMEXTENDEDModule::h_ampdiff_quality
TH2F * h_ampdiff_quality
Histogram: Amp.
Definition: eclDQMExtended.h:189
Belle2::ECLDQMEXTENDEDModule::terminate
virtual void terminate() override
Terminate.
Definition: eclDQMExtended.cc:598
Belle2::ECLDQMEXTENDEDModule::event
virtual void event() override
Event processor.
Definition: eclDQMExtended.cc:497
Belle2::ECLDQMEXTENDEDModule::m_calibrationThrA0
DBObjPtr< ECLCrystalCalib > m_calibrationThrA0
Low amplitude threshold.
Definition: eclDQMExtended.h:93
Belle2::ECLDQMEXTENDEDModule::h_timefail_shaperid
TH1F * h_timefail_shaperid
Histogram: ShaperIDs w/ failed times.
Definition: eclDQMExtended.h:162
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:83
Belle2::ECLDQMEXTENDEDModule::h_ampfail_cellid
TH1F * h_ampfail_cellid
Histogram: CellIDs w/ failed amplitudes.
Definition: eclDQMExtended.h:152
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:88
Belle2::ECLDQMEXTENDEDModule::m_AmpFit
int m_AmpFit
Signal amplitude obtaining from DSP emulator.
Definition: eclDQMExtended.h:119