 |
Belle II Software
release-05-01-25
|
1 #ifndef TRCGDLDQMMODULE_h
2 #define TRCGDLDQMMODULE_h
4 #include <framework/core/HistoModule.h>
5 #include <trg/gdl/dataobjects/TRGGDLUnpackerStore.h>
6 #include <trg/gdl/modules/trggdlUnpacker/trggdlUnpackerModule.h>
7 #include <trg/gdl/TrgBit.h>
8 #include <framework/database/DBObjPtr.h>
9 #include <trg/gdl/dbobjects/TRGGDLDBUnpacker.h>
10 #include <mdst/dbobjects/TRGGDLDBInputBits.h>
11 #include <mdst/dbobjects/TRGGDLDBFTDLBits.h>
16 #include "trg/ecl/TrgEclMapping.h"
17 #include <ecl/dataobjects/ECLDigit.h>
18 #include <ecl/dataobjects/ECLCalDigit.h>
41 virtual void event()
override;
43 virtual void endRun()
override;
51 static const int nskim_gdldqm = 11;
52 int start_skim_gdldqm = 0;
53 int end_skim_gdldqm = 0;
92 TH1I*
h_itd[nskim_gdldqm] = {
nullptr};
93 TH1I* h_itd_rise[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
94 TH1I* h_itd_fall[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
96 TH1I*
h_ftd[nskim_gdldqm] = {
nullptr};
97 TH1I* h_ftd_rise[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
98 TH1I* h_ftd_fall[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
100 TH1I*
h_psn[nskim_gdldqm] = {
nullptr};
101 TH1I* h_psn_rise[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
102 TH1I* h_psn_fall[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
103 TH1I* h_psn_extra[nskim_gdldqm] = {
nullptr};
104 TH1I* h_psn_overlap[nskim_gdldqm] = {
nullptr};
105 TH1I* h_psn_nooverlap[nskim_gdldqm] = {
nullptr};
106 TH1I* h_psn_pure_extra[nskim_gdldqm] = {
nullptr};
107 TH1D* h_eff[nskim_gdldqm] = {
nullptr};
108 TH1D* h_pure_eff[nskim_gdldqm] = {
nullptr};
109 TH1D* h_eff_shifter = {
nullptr};
119 TDirectory* oldDir =
nullptr;
120 TDirectory* dirDQM =
nullptr;
122 bool m_eventByEventTimingHistRecord;
124 bool m_bitNameOnBinLabel;
125 bool m_generatePostscript;
126 unsigned m_vcdEventStart = 0;
127 unsigned m_vcdNumberOfEvents = 0;
128 std::string m_bitConditionToDumpVcd;
129 std::string m_postScriptName;
130 void fillRiseFallTimings(
void);
131 void fillOutputExtra(
void);
132 void fillOutputOverlap(
void);
133 void fillOutputPureExtra(
void);
136 bool anaBitCondition(
void);
137 bool isFired(std::string bitname);
138 unsigned n_clocks = 0;
142 std::vector<int>
skim;
146 static const int n_output_extra = 73;
147 static const char* output_extra[n_output_extra];
148 static const int n_output_overlap = 10;
149 static const char* output_overlap[n_output_overlap];
150 static const int n_output_pure_extra = 13;
151 static const char* output_pure_extra[n_output_pure_extra];
152 static const int n_eff = 35;
153 static const char* c_eff[n_eff];
154 static const int n_eff_shifter = 8;
155 static const char* c_eff_shifter[n_eff_shifter];
156 static const int n_pure_eff = 8;
157 static const char* c_pure_eff[n_pure_eff];
161 int LeafBitMap[320] = {0};
162 char LeafNames[320][100] = {0};
166 int _e_toptiming = 0;
167 int _e_ecltiming = 0;
168 int _e_cdctiming = 0;
172 int ee_psn[10] = {0};
173 int ee_ftd[10] = {0};
174 int ee_itd[10] = {0};
177 DBObjPtr<TRGGDLDBInputBits>m_dbinput;
178 unsigned n_inbit = 0;
179 char inbitname[320][100] = {
""};
182 DBObjPtr<TRGGDLDBFTDLBits> m_dbftdl;
183 unsigned n_outbit = 0;
184 char outbitname[320][100] = {
""};
187 std::string skim_menu[nskim_gdldqm] = {
189 "software_trigger_cut&skim&accept_hadron",
190 "software_trigger_cut&skim&accept_tau_tau",
191 "software_trigger_cut&skim&accept_mumu_1trk",
192 "software_trigger_cut&skim&accept_mumu_2trk",
193 "software_trigger_cut&skim&accept_gamma_gamma",
194 "software_trigger_cut&skim&accept_bhabha",
195 "software_trigger_cut&skim&accept_hadronb",
196 "software_trigger_cut&skim&accept_hadronb1",
197 "software_trigger_cut&skim&accept_hadronb2",
198 "software_trigger_cut&skim&accept_mumutight"
202 std::string skim_smap[nskim_gdldqm] = {
217 TrgEclMapping* trgeclmap;
218 StoreArray<ECLCalDigit> m_ECLCalDigitData;
219 StoreArray<ECLDigit> m_ECLDigitData;
TH1I * h_c8_cdcTogdlL1[nskim_gdldqm]
timestamp diff from t0(cdc) to gdlL1 in LSB8nsec
TH1D * h_ns_cdcToecl[nskim_gdldqm]
timestamp diff from cdc_timing to ecl_timing in nsec
TH1I * h_psn[nskim_gdldqm]
psn bits
virtual void terminate() override
terminate
TH1I * h_c8_eclToGDL[nskim_gdldqm]
timestamp diff from t0(ecl) to GDL in LSB8nsec
TH1I * h_timtype[nskim_gdldqm]
timtype
virtual void defineHisto() override
Define Histogram.
TH1I * h_c8_topToGDL[nskim_gdldqm]
timestamp diff from t0(top) to GDL in LSB8nsec
Class for accessing objects in the database.
TRGGDLDQMModule()
Costructor.
TH2I * h_p
event by event psnm timing distribution
virtual void beginRun() override
begin Run
virtual ~TRGGDLDQMModule()
Destrunctor.
TH2I * h_i
event by event input timing distribution
Abstract base class for different kinds of events.
TH1D * h_ns_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in nsec
TH1I * h_c8_gdlL1TocomL1[nskim_gdldqm]
timestamp diff from gdlL1 to comL1 in LSB8nsec
TH1I * h_c8_ecl8mToGDL[nskim_gdldqm]
timestamp diff from fit on fam to GDL in LSB8nsec
TH1D * h_ns_topTocdc[nskim_gdldqm]
timestamp diff from top_timing to cdc_timing in nsec
TH1I * h_c8_eclTogdlL1[nskim_gdldqm]
timestamp diff from t0(ecl) to gdlL1 in LSB8nsec
TH1I * h_c2_cdcToecl[nskim_gdldqm]
timestamp from cdc_timing to ecl_timing to L1 in LSB2nsec
virtual void initialize() override
initialize
TH1D * h_ns_topToecl[nskim_gdldqm]
timestamp diff from top_timing to ecl_timing in nsec
TH2I * h_f
event by event ftdl timing distribution
virtual void endRun() override
End Run.
TH1I * h_c8_cdcToGDL[nskim_gdldqm]
timestamp diff from t0(cdc) to GDL in LSB8nsec
TH1I * h_c8_topTogdlL1[nskim_gdldqm]
timestamp diff from t0(top) to gdlL1 in LSB8nsec
TH1D * h_ns_cdcTogdlL1[nskim_gdldqm]
timestamp diff from cdc_timing to gdlL1 in nsec
TH1I * h_c2_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in LSB2nsec
virtual void event() override
Event.
TH1I * h_ftd[nskim_gdldqm]
ftd bits
TH1I * h_itd[nskim_gdldqm]
input bits
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...