Belle II Software  release-05-01-25
TRGGDLDQMModule.h
1 #ifndef TRCGDLDQMMODULE_h
2 #define TRCGDLDQMMODULE_h
3 
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>
12 #include <string>
13 
14 #include <TH2I.h>
15 #include <TH1I.h>
16 #include "trg/ecl/TrgEclMapping.h"
17 #include <ecl/dataobjects/ECLDigit.h>
18 #include <ecl/dataobjects/ECLCalDigit.h>
19 
20 namespace Belle2 {
27  class TRGGDLDQMModule : public HistoModule {
28 
29  public:
33  virtual ~TRGGDLDQMModule() {}
34 
35  public:
37  virtual void initialize() override;
39  virtual void beginRun() override;
41  virtual void event() override;
43  virtual void endRun() override;
45  virtual void terminate() override {}
47  virtual void defineHisto() override;
48 
49  protected:
50  //number of skims
51  static const int nskim_gdldqm = 11;
52  int start_skim_gdldqm = 0;
53  int end_skim_gdldqm = 0;
54  int m_skim = -1;
55 
57  TH1I* h_c8_gdlL1TocomL1[nskim_gdldqm] = {nullptr};
59  TH1I* h_c8_topTogdlL1[nskim_gdldqm] = {nullptr};
61  TH1I* h_c8_eclTogdlL1[nskim_gdldqm] = {nullptr};
63  TH1I* h_c8_cdcTogdlL1[nskim_gdldqm] = {nullptr};
65  TH1I* h_c8_ecl8mToGDL[nskim_gdldqm] = {nullptr};
67  TH1I* h_c8_topToGDL[nskim_gdldqm] = {nullptr};
69  TH1I* h_c8_eclToGDL[nskim_gdldqm] = {nullptr};
71  TH1I* h_c8_cdcToGDL[nskim_gdldqm] = {nullptr};
73  TH1I* h_c2_cdcTocomL1[nskim_gdldqm] = {nullptr};
75  TH1D* h_ns_cdcTocomL1[nskim_gdldqm] = {nullptr};
77  TH1D* h_ns_cdcTogdlL1[nskim_gdldqm] = {nullptr};
79  TH1D* h_ns_topToecl[nskim_gdldqm] = {nullptr};
81  TH1D* h_ns_topTocdc[nskim_gdldqm] = {nullptr};
83  TH1I* h_c2_cdcToecl[nskim_gdldqm] = {nullptr};
85  TH1D* h_ns_cdcToecl[nskim_gdldqm] = {nullptr};
86 
88  // TH1I* h_inp;
89  // TH1I* h_inp_rise[N_BITS_RESERVED][nskim_gdldqm];
90  // TH1I* h_inp_fall[N_BITS_RESERVED][nskim_gdldqm];
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};
111  TH1I* h_timtype[nskim_gdldqm] = {nullptr};
113  TH2I* h_p = nullptr;
115  TH2I* h_f = nullptr;
117  TH2I* h_i = nullptr;
118 
119  TDirectory* oldDir = nullptr;
120  TDirectory* dirDQM = nullptr;
121 
122  bool m_eventByEventTimingHistRecord;
123  bool m_dumpVcdFile;
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);
134 
135  void genVcd(void);
136  bool anaBitCondition(void);
137  bool isFired(std::string bitname);
138  unsigned n_clocks = 0;
139  unsigned evtno = 0;
140  unsigned _exp = 0;
141  unsigned _run = 0;
142  std::vector<int> skim;
143  //private:
144  //StoreArray<TRGGDLUnpackerStore> store;
145 
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];
158 
159  //condition database for unpacker
160  DBObjPtr<TRGGDLDBUnpacker> m_unpacker;
161  int LeafBitMap[320] = {0};
162  char LeafNames[320][100] = {0};
163  int _e_timtype = 0;
164  int _e_gdll1rvc = 0;
165  int _e_coml1rvc = 0;
166  int _e_toptiming = 0;
167  int _e_ecltiming = 0;
168  int _e_cdctiming = 0;
169  int _e_toprvc = 0;
170  int _e_eclrvc = 0;
171  int _e_cdcrvc = 0;
172  int ee_psn[10] = {0};
173  int ee_ftd[10] = {0};
174  int ee_itd[10] = {0};
175 
176  //condition database for input bits
177  DBObjPtr<TRGGDLDBInputBits>m_dbinput;
178  unsigned n_inbit = 0;
179  char inbitname[320][100] = {""};
180 
181  //condition database for output bits
182  DBObjPtr<TRGGDLDBFTDLBits> m_dbftdl;
183  unsigned n_outbit = 0;
184  char outbitname[320][100] = {""};
185 
186  //name of skim from hlt/softwaretrigger/scripts/softwaretrigger/db_access.py
187  std::string skim_menu[nskim_gdldqm] = {
188  "all",
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"
199  };
200 
201  //name of histgrams
202  std::string skim_smap[nskim_gdldqm] = {
203  "all",
204  "hadron",
205  "tautau",
206  "mumu1trk",
207  "mumu2trk",
208  "gammagamma",
209  "bhabha",
210  "hadronb",
211  "hadronb1",
212  "hadronb2",
213  "mumutight"
214  };
215 
216  //ecltrg<->ecl mappint
217  TrgEclMapping* trgeclmap;
218  StoreArray<ECLCalDigit> m_ECLCalDigitData;
219  StoreArray<ECLDigit> m_ECLDigitData;
220 
221  };
222 
224 }
225 
226 #endif
Belle2::TRGGDLDQMModule
Definition: TRGGDLDQMModule.h:27
Belle2::TRGGDLDQMModule::h_c8_cdcTogdlL1
TH1I * h_c8_cdcTogdlL1[nskim_gdldqm]
timestamp diff from t0(cdc) to gdlL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:63
Belle2::TRGGDLDQMModule::h_ns_cdcToecl
TH1D * h_ns_cdcToecl[nskim_gdldqm]
timestamp diff from cdc_timing to ecl_timing in nsec
Definition: TRGGDLDQMModule.h:85
Belle2::TRGGDLDQMModule::h_psn
TH1I * h_psn[nskim_gdldqm]
psn bits
Definition: TRGGDLDQMModule.h:100
Belle2::TRGGDLDQMModule::terminate
virtual void terminate() override
terminate
Definition: TRGGDLDQMModule.h:45
skim
Definition: __init__.py:1
Belle2::TRGGDLDQMModule::h_c8_eclToGDL
TH1I * h_c8_eclToGDL[nskim_gdldqm]
timestamp diff from t0(ecl) to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:69
Belle2::TRGGDLDQMModule::h_timtype
TH1I * h_timtype[nskim_gdldqm]
timtype
Definition: TRGGDLDQMModule.h:111
Belle2::TRGGDLDQMModule::defineHisto
virtual void defineHisto() override
Define Histogram.
Definition: TRGGDLDQMModule.cc:91
Belle2::TRGGDLDQMModule::h_c8_topToGDL
TH1I * h_c8_topToGDL[nskim_gdldqm]
timestamp diff from t0(top) to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:67
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::TRGGDLDQMModule::TRGGDLDQMModule
TRGGDLDQMModule()
Costructor.
Definition: TRGGDLDQMModule.cc:49
Belle2::TRGGDLDQMModule::h_p
TH2I * h_p
event by event psnm timing distribution
Definition: TRGGDLDQMModule.h:113
Belle2::TRGGDLDQMModule::beginRun
virtual void beginRun() override
begin Run
Definition: TRGGDLDQMModule.cc:244
Belle2::TRGGDLDQMModule::~TRGGDLDQMModule
virtual ~TRGGDLDQMModule()
Destrunctor.
Definition: TRGGDLDQMModule.h:33
Belle2::TRGGDLDQMModule::h_i
TH2I * h_i
event by event input timing distribution
Definition: TRGGDLDQMModule.h:117
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGGDLDQMModule::h_ns_cdcTocomL1
TH1D * h_ns_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in nsec
Definition: TRGGDLDQMModule.h:75
Belle2::TRGGDLDQMModule::h_c8_gdlL1TocomL1
TH1I * h_c8_gdlL1TocomL1[nskim_gdldqm]
timestamp diff from gdlL1 to comL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:57
Belle2::TRGGDLDQMModule::h_c8_ecl8mToGDL
TH1I * h_c8_ecl8mToGDL[nskim_gdldqm]
timestamp diff from fit on fam to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:65
Belle2::TRGGDLDQMModule::h_ns_topTocdc
TH1D * h_ns_topTocdc[nskim_gdldqm]
timestamp diff from top_timing to cdc_timing in nsec
Definition: TRGGDLDQMModule.h:81
Belle2::TRGGDLDQMModule::h_c8_eclTogdlL1
TH1I * h_c8_eclTogdlL1[nskim_gdldqm]
timestamp diff from t0(ecl) to gdlL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:61
Belle2::TRGGDLDQMModule::h_c2_cdcToecl
TH1I * h_c2_cdcToecl[nskim_gdldqm]
timestamp from cdc_timing to ecl_timing to L1 in LSB2nsec
Definition: TRGGDLDQMModule.h:83
Belle2::TRGGDLDQMModule::initialize
virtual void initialize() override
initialize
Definition: TRGGDLDQMModule.cc:281
Belle2::TRGGDLDQMModule::h_ns_topToecl
TH1D * h_ns_topToecl[nskim_gdldqm]
timestamp diff from top_timing to ecl_timing in nsec
Definition: TRGGDLDQMModule.h:79
Belle2::TRGGDLDQMModule::h_f
TH2I * h_f
event by event ftdl timing distribution
Definition: TRGGDLDQMModule.h:115
Belle2::TRGGDLDQMModule::endRun
virtual void endRun() override
End Run.
Definition: TRGGDLDQMModule.cc:379
Belle2::TRGGDLDQMModule::h_c8_cdcToGDL
TH1I * h_c8_cdcToGDL[nskim_gdldqm]
timestamp diff from t0(cdc) to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:71
Belle2::TRGGDLDQMModule::h_c8_topTogdlL1
TH1I * h_c8_topTogdlL1[nskim_gdldqm]
timestamp diff from t0(top) to gdlL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:59
Belle2::TRGGDLDQMModule::h_ns_cdcTogdlL1
TH1D * h_ns_cdcTogdlL1[nskim_gdldqm]
timestamp diff from cdc_timing to gdlL1 in nsec
Definition: TRGGDLDQMModule.h:77
Belle2::TRGGDLDQMModule::h_c2_cdcTocomL1
TH1I * h_c2_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in LSB2nsec
Definition: TRGGDLDQMModule.h:73
Belle2::TRGGDLDQMModule::event
virtual void event() override
Event.
Definition: TRGGDLDQMModule.cc:461
Belle2::TRGGDLDQMModule::h_ftd
TH1I * h_ftd[nskim_gdldqm]
ftd bits
Definition: TRGGDLDQMModule.h:96
Belle2::TRGGDLDQMModule::h_itd
TH1I * h_itd[nskim_gdldqm]
input bits
Definition: TRGGDLDQMModule.h:92
Belle2::HistoModule
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29