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>
19 #include <mdst/dataobjects/SoftwareTriggerResult.h>
20 #include <mdst/dataobjects/Track.h>
21 #include <mdst/dataobjects/HitPatternCDC.h>
22 #include <mdst/dataobjects/ECLCluster.h>
23 #include "trg/ecl/dataobjects/TRGECLCluster.h"
47 virtual void event()
override;
49 virtual void endRun()
override;
57 static const int nskim_gdldqm = 11;
58 int start_skim_gdldqm = 0;
59 int end_skim_gdldqm = 0;
98 TH1I*
h_itd[nskim_gdldqm] = {
nullptr};
99 TH1I* h_itd_rise[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
100 TH1I* h_itd_fall[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
102 TH1I*
h_ftd[nskim_gdldqm] = {
nullptr};
103 TH1I* h_ftd_rise[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
104 TH1I* h_ftd_fall[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
106 TH1I*
h_psn[nskim_gdldqm] = {
nullptr};
107 TH1I* h_psn_rise[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
108 TH1I* h_psn_fall[N_BITS_RESERVED][nskim_gdldqm] = {
nullptr};
109 TH1I* h_psn_extra[nskim_gdldqm] = {
nullptr};
110 TH1I* h_psn_effect_to_l1[nskim_gdldqm] = {
nullptr};
111 TH1I* h_psn_raw_rate[nskim_gdldqm] = {
nullptr};
112 TH1I* h_psn_pure_extra[nskim_gdldqm] = {
nullptr};
115 std::vector<int> h_0_vec;
117 std::vector<int> h_p_vec;
119 std::vector<int> h_f_vec;
121 std::vector<int> h_i_vec;
123 TDirectory* oldDir =
nullptr;
124 TDirectory* dirDQM =
nullptr;
126 bool m_eventByEventTimingHistRecord;
128 bool m_bitNameOnBinLabel;
129 bool m_generatePostscript;
130 unsigned m_vcdEventStart = 0;
131 unsigned m_vcdNumberOfEvents = 0;
132 std::string m_bitConditionToDumpVcd;
133 std::string m_postScriptName;
134 void fillRiseFallTimings(
void);
135 void fillOutputExtra(
void);
136 void fillOutputOverlap(
void);
137 void fillOutputPureExtra(
void);
140 bool anaBitCondition(
void);
141 bool isFired(std::string bitname);
142 bool isFired_quick(
const std::string& bitname,
const bool& isPsnm);
143 int getinbitnum(
const char* c)
const;
144 int getoutbitnum(
const char* c)
const;
145 unsigned n_clocks = 0;
149 std::vector<int>
skim;
151 static const int n_output_extra = 94;
152 static const char* output_extra[n_output_extra];
153 static const int n_output_overlap = 33;
154 static const char* output_overlap[n_output_overlap];
155 static const int n_output_pure_extra = 13;
156 static const char* output_pure_extra[n_output_pure_extra];
160 int LeafBitMap[320] = {0};
161 char LeafNames[320][100] = {0};
165 int _e_toptiming = 0;
166 int _e_ecltiming = 0;
167 int _e_cdctiming = 0;
171 int ee_psn[10] = {0};
172 int ee_ftd[10] = {0};
173 int ee_itd[10] = {0};
175 int n_leafsExtra = 0;
178 int nword_output = 0;
181 DBObjPtr<TRGGDLDBInputBits>m_dbinput;
182 unsigned n_inbit = 0;
183 char inbitname[320][100] = {
""};
186 DBObjPtr<TRGGDLDBFTDLBits> m_dbftdl;
187 unsigned n_outbit = 0;
188 char outbitname[320][100] = {
""};
192 std::string skim_menu[nskim_gdldqm] = {
194 "software_trigger_cut&skim&accept_hadron",
195 "software_trigger_cut&skim&accept_tau_tau",
196 "software_trigger_cut&skim&accept_mumu_1trk",
197 "software_trigger_cut&skim&accept_mumu_2trk",
198 "software_trigger_cut&skim&accept_gamma_gamma",
199 "software_trigger_cut&skim&accept_bhabha",
200 "software_trigger_cut&skim&accept_hadronb",
201 "software_trigger_cut&skim&accept_hadronb1",
202 "software_trigger_cut&skim&accept_hadronb2",
203 "software_trigger_cut&skim&accept_mumutight"
207 std::string skim_smap[nskim_gdldqm] = {
224 TrgEclMapping* trgeclmap =
nullptr;
227 StoreArray<TRGGDLUnpackerStore> entAry;
230 StoreObjPtr<EventMetaData> bevt;
233 StoreObjPtr<SoftwareTriggerResult> result_soft;
236 StoreArray<Track> Tracks;
240 StoreArray<ECLCalDigit> m_ECLCalDigitData;
241 StoreArray<ECLDigit> m_ECLDigitData;