64 static constexpr double clk127To1ns = 7.8;
71 virtual void event()
override;
73 virtual void endRun()
override;
90 int m_nHistClassesActual = 3;
95 int start_skim_topdqm = 0;
96 int end_skim_topdqm = 0;
99 TH2I* h_top_nt0decisions_vs_hist_class[
nskim_topdqm] = {
nullptr};
101 TH1I* h_top_gdl_match_decision_number[
nskim_topdqm] = {
nullptr};
133 TH1I* h_ecl_gdl_top_timing_diff_both[
nskim_topdqm] = {
nullptr};
134 TH1I* h_ecl_top_top_timing_diff_both[
nskim_topdqm] = {
nullptr};
136 TH2I* h_decisionNumberVsNumberDecisionsGood[
nskim_topdqm] = {
nullptr};
137 TH2I* h_decisionNumberVsNumberDecisionsBad[
nskim_topdqm] = {
nullptr};
139 TH1I* h_ecl_gdl_top_timing_diff_good[
nskim_topdqm] = {
nullptr};
140 TH1I* h_ecl_top_top_timing_diff_good[
nskim_topdqm] = {
nullptr};
142 TH2I* h_top_ecltop_timing_diff_vs_toptop_good[
nskim_topdqm] = {
nullptr};
143 TH2I* h_gdl_ecltop_timing_diff_vs_toptop_good[
nskim_topdqm] = {
nullptr};
144 TH2I* h_gdl_ecltop_timing_diff_vs_ecltop_good[
nskim_topdqm] = {
nullptr};
146 TH1I* h_topCombinedTimingTopGood[
nskim_topdqm] = {
nullptr};
147 TH1I* h_topNSlotsCombinedTimingTopGood[
nskim_topdqm] = {
nullptr};
151 TH1I* h_topCombinedTimingTopAll[
nskim_topdqm] = {
nullptr};
152 TH1I* h_topNSlotsCombinedTimingTopAll[
nskim_topdqm] = {
nullptr};
156 TH2I* h_topNSlotsCombinedTimingVsNHitsTopAll[
nskim_topdqm] = {
nullptr};
186 TH1I* h_ecl_gdl_top_timing_diff_bad[
nskim_topdqm] = {
nullptr};
187 TH1I* h_ecl_top_top_timing_diff_bad[
nskim_topdqm] = {
nullptr};
189 TH2I* h_top_ecltop_timing_diff_vs_toptop_bad[
nskim_topdqm] = {
nullptr};
190 TH2I* h_gdl_ecltop_timing_diff_vs_toptop_bad[
nskim_topdqm] = {
nullptr};
191 TH2I* h_gdl_ecltop_timing_diff_vs_ecltop_bad[
nskim_topdqm] = {
nullptr};
193 TH1I* h_topCombinedTimingTopBad[
nskim_topdqm] = {
nullptr};
194 TH1I* h_topNSlotsCombinedTimingTopBad[
nskim_topdqm] = {
nullptr};
214 TH1I* h_gdl_ecltop_timing_diff_5ns[
nskim_topdqm] = {
nullptr};
215 TH1I* h_gdl_cdctop_timing_diff_5ns[
nskim_topdqm] = {
nullptr};
217 TH1I* h_gdl_ecltop_timing_diff_2ns[
nskim_topdqm] = {
nullptr};
218 TH1I* h_gdl_ecltop_timing_diff_grl_matched_2ns[
nskim_topdqm] = {
nullptr};
219 TH1I* h_gdl_ecltop_timing_diff_no_grl_matched_2ns[
nskim_topdqm] = {
nullptr};
220 TH1I* h_gdl_ecltop_timing_diff_no_grl_at_all_2ns[
nskim_topdqm] = {
nullptr};
221 TH2I* h_gdl_ecltop_timing_diff_vs_nslots_2ns[
nskim_topdqm] = {
nullptr};
222 TH1I* h_top_ecltop_timing_diff_combined_2ns[
nskim_topdqm] = {
nullptr};
223 TH1I* h_top_ecltop_timing_diff_best_slot_2ns[
nskim_topdqm] = {
nullptr};
224 TH1I* h_gdl_cdctop_timing_diff_2ns[
nskim_topdqm] = {
nullptr};
235 TH2I* h_gdl_top_rvc_vs_top_timing[
nskim_topdqm] = {
nullptr};
240 TH1I* h_gdl_gdltop_rvc_diff_all[
nskim_topdqm] = {
nullptr};
241 TH1I* h_gdl_comtop_rvc_diff_all[
nskim_topdqm] = {
nullptr};
243 TH1I* h_gdl_gdltop_rvc_diff_good[
nskim_topdqm] = {
nullptr};
244 TH1I* h_gdl_comtop_rvc_diff_good[
nskim_topdqm] = {
nullptr};
246 TH1I* h_gdl_gdltop_rvc_diff_bad[
nskim_topdqm] = {
nullptr};
247 TH1I* h_gdl_comtop_rvc_diff_bad[
nskim_topdqm] = {
nullptr};
249 TH2I* h_gdl_ecltop_timing_diff_vs_slot[
nskim_topdqm] = {
nullptr};
250 TH2I* h_gdl_ecltop_timing_diff_vs_segment[
nskim_topdqm] = {
nullptr};
251 TH2I* h_gdl_ecltop_timing_diff_vs_nhits[
nskim_topdqm] = {
nullptr};
252 TH2I* h_gdl_ecltop_timing_diff_vs_logl[
nskim_topdqm] = {
nullptr};
260 TH2I* h_topTC2EnergyVsTC1EnergyAll[
nskim_topdqm] = {
nullptr};
261 TH2I* h_topTC2ThetaIdVsTC1ThetaIdAll[
nskim_topdqm] = {
nullptr};
262 TH2I* h_topTC2PhiIdVsTC1PhiIdAll[
nskim_topdqm] = {
nullptr};
263 TH3I* h_topTCPhiIdVsTCThetaIdAll[
nskim_topdqm] = {
nullptr};
265 TH2I* h_topTC2IdVsTC1IdGRLAll[
nskim_topdqm] = {
nullptr};
266 TH2I* h_topTC2EnergyVsTC1EnergyGRLAll[
nskim_topdqm] = {
nullptr};
267 TH2I* h_topTC2ThetaIdVsTC1ThetaIdGRLAll[
nskim_topdqm] = {
nullptr};
268 TH2I* h_topTC2PhiIdVsTC1PhiIdGRLAll[
nskim_topdqm] = {
nullptr};
269 TH3I* h_topTCPhiIdVsTCThetaIdGRLAll[
nskim_topdqm] = {
nullptr};
272 TH2I* h_topTC2EnergyVsTC1Energy[
nskim_topdqm] = {
nullptr};
273 TH2I* h_topTC2ThetaIdVsTC1ThetaId[
nskim_topdqm] = {
nullptr};
274 TH2I* h_topTC2PhiIdVsTC1PhiId[
nskim_topdqm] = {
nullptr};
275 TH3I* h_topTCPhiIdVsTCThetaId[
nskim_topdqm] = {
nullptr};
278 TH2I* h_topTC2EnergyVsTC1EnergyGRL[
nskim_topdqm] = {
nullptr};
279 TH2I* h_topTC2ThetaIdVsTC1ThetaIdGRL[
nskim_topdqm] = {
nullptr};
280 TH2I* h_topTC2PhiIdVsTC1PhiIdGRL[
nskim_topdqm] = {
nullptr};
281 TH3I* h_topTCPhiIdVsTCThetaIdGRL[
nskim_topdqm] = {
nullptr};
283 TH2I* h_gdl_ecltop_timing_diff_vs_grl_top_l1[
nskim_topdqm] = {
nullptr};
284 TH2I* h_gdl_top_l1_vs_grl_top_l1[
nskim_topdqm] = {
nullptr};
286 TH2I* h_grl_ntopslots_vs_ncdcslots[
nskim_topdqm] = {
nullptr};
287 TH1I* h_grl_ncdctopslots_matched[
nskim_topdqm] = {
nullptr};
288 TH2I* h_grl_topslots_vs_cdcslots_match[
nskim_topdqm] = {
nullptr};
293 int gdlLeafBitMap[320] = {0};
294 char gdlLeafNames[320][100] = {{0}};
296 int gdl_e_timtype = 0;
297 int gdl_e_gdll1rvc = 0;
298 int gdl_e_coml1rvc = 0;
299 int gdl_e_toptiming = 0;
300 int gdl_e_ecltiming = 0;
301 int gdl_e_cdctiming = 0;
302 int gdl_e_toprvc = 0;
303 int gdl_e_eclrvc = 0;
304 int gdl_e_cdcrvc = 0;
309 unsigned m_evtno = 0;
313 std::vector<int> skim;
327 std::vector<tcEcl> tcEclList;
330 inline bool operator()(
tcEcl const& a,
tcEcl const& b)
332 double i = a.tcEnergy;
333 double j = b.tcEnergy;
348 std::vector<slotDecision> slotDecisionList;
361 bool m_generatePostscriptFile;
362 std::string m_postScriptFileName;
364 bool m_doECLCorrelations;
365 bool m_doGDLCorrelations;
366 bool m_doGRLCorrelations;
368 bool m_requireEclBarrel;
369 bool m_requireEclBarrelB2B;
371 bool m_requireCDC2DTrack;
376 "software_trigger_cut&skim&accept_hadron",
377 "software_trigger_cut&skim&accept_tau_tau",
378 "software_trigger_cut&skim&accept_mumu_1trk",
379 "software_trigger_cut&skim&accept_mumu_2trk",
380 "software_trigger_cut&skim&accept_gamma_gamma",
381 "software_trigger_cut&skim&accept_bhabha",
382 "software_trigger_cut&skim&accept_hadronb",
383 "software_trigger_cut&skim&accept_hadronb1",
384 "software_trigger_cut&skim&accept_hadronb2",
385 "software_trigger_cut&skim&accept_mumutight"