Belle II Software  release-05-02-19
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 #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"
24 
25 
26 namespace Belle2 {
33  class TRGGDLDQMModule : public HistoModule {
34 
35  public:
39  virtual ~TRGGDLDQMModule() {}
40 
41  public:
43  virtual void initialize() override;
45  virtual void beginRun() override;
47  virtual void event() override;
49  virtual void endRun() override;
51  virtual void terminate() override {}
53  virtual void defineHisto() override;
54 
55  protected:
56  //number of skims
57  static const int nskim_gdldqm = 11;
58  int start_skim_gdldqm = 0;
59  int end_skim_gdldqm = 0;
60  int m_skim = -1;
61 
63  TH1I* h_c8_gdlL1TocomL1[nskim_gdldqm] = {nullptr};
65  TH1I* h_c8_topTogdlL1[nskim_gdldqm] = {nullptr};
67  TH1I* h_c8_eclTogdlL1[nskim_gdldqm] = {nullptr};
69  TH1I* h_c8_cdcTogdlL1[nskim_gdldqm] = {nullptr};
71  TH1I* h_c8_ecl8mToGDL[nskim_gdldqm] = {nullptr};
73  TH1I* h_c8_topToGDL[nskim_gdldqm] = {nullptr};
75  TH1I* h_c8_eclToGDL[nskim_gdldqm] = {nullptr};
77  TH1I* h_c8_cdcToGDL[nskim_gdldqm] = {nullptr};
79  TH1I* h_c2_cdcTocomL1[nskim_gdldqm] = {nullptr};
81  TH1D* h_ns_cdcTocomL1[nskim_gdldqm] = {nullptr};
83  TH1D* h_ns_cdcTogdlL1[nskim_gdldqm] = {nullptr};
85  TH1D* h_ns_topToecl[nskim_gdldqm] = {nullptr};
87  TH1D* h_ns_topTocdc[nskim_gdldqm] = {nullptr};
89  TH1I* h_c2_cdcToecl[nskim_gdldqm] = {nullptr};
91  TH1D* h_ns_cdcToecl[nskim_gdldqm] = {nullptr};
92 
94  // TH1I* h_inp;
95  // TH1I* h_inp_rise[N_BITS_RESERVED][nskim_gdldqm];
96  // TH1I* h_inp_fall[N_BITS_RESERVED][nskim_gdldqm];
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};
114  TH1I* h_timtype[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;
122 
123  TDirectory* oldDir = nullptr;
124  TDirectory* dirDQM = nullptr;
125 
126  bool m_eventByEventTimingHistRecord;
127  bool m_dumpVcdFile;
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);
138 
139  void genVcd(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;
146  unsigned evtno = 0;
147  unsigned _exp = 0;
148  unsigned _run = 0;
149  std::vector<int> skim;
150 
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];
157 
158  //condition database for unpacker
159  DBObjPtr<TRGGDLDBUnpacker> m_unpacker;
160  int LeafBitMap[320] = {0};
161  char LeafNames[320][100] = {0};
162  int _e_timtype = 0;
163  int _e_gdll1rvc = 0;
164  int _e_coml1rvc = 0;
165  int _e_toptiming = 0;
166  int _e_ecltiming = 0;
167  int _e_cdctiming = 0;
168  int _e_toprvc = 0;
169  int _e_eclrvc = 0;
170  int _e_cdcrvc = 0;
171  int ee_psn[10] = {0};
172  int ee_ftd[10] = {0};
173  int ee_itd[10] = {0};
174  int n_leafs = 0;
175  int n_leafsExtra = 0;
176  int nconf = 0;
177  int nword_input = 0;
178  int nword_output = 0;
179 
180  //condition database for input bits
181  DBObjPtr<TRGGDLDBInputBits>m_dbinput;
182  unsigned n_inbit = 0;
183  char inbitname[320][100] = {""};
184 
185  //condition database for output bits
186  DBObjPtr<TRGGDLDBFTDLBits> m_dbftdl;
187  unsigned n_outbit = 0;
188  char outbitname[320][100] = {""};
189 
190 
191  //name of skim from hlt/softwaretrigger/scripts/softwaretrigger/db_access.py
192  std::string skim_menu[nskim_gdldqm] = {
193  "all",
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"
204  };
205 
206  //name of histgrams
207  std::string skim_smap[nskim_gdldqm] = {
208  "all",
209  "hadron",
210  "tautau",
211  "mumu1trk",
212  "mumu2trk",
213  "gammagamma",
214  "bhabha",
215  "hadronb",
216  "hadronb1",
217  "hadronb2",
218  "mumutight"
219  };
220 
221  private:
222 
223  //ecltrg<->ecl mappint
224  TrgEclMapping* trgeclmap = nullptr;
225 
226  //Input store array of GDL data
227  StoreArray<TRGGDLUnpackerStore> entAry;
228 
229  //Input store array of metadata
230  StoreObjPtr<EventMetaData> bevt;
231 
232  //Input store array of HLT
233  StoreObjPtr<SoftwareTriggerResult> result_soft;
234 
235  //Input store array of track
236  StoreArray<Track> Tracks;
237 
238  //Input store array of ECL
239  //StoreArray<ECLCluster> ECLClusters;
240  StoreArray<ECLCalDigit> m_ECLCalDigitData;
241  StoreArray<ECLDigit> m_ECLDigitData;
242 
243  };
244 
246 }
247 
248 #endif
Belle2::TRGGDLDQMModule
Definition: TRGGDLDQMModule.h:33
Belle2::TRGGDLDQMModule::h_c8_cdcTogdlL1
TH1I * h_c8_cdcTogdlL1[nskim_gdldqm]
timestamp diff from t0(cdc) to gdlL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:69
Belle2::TRGGDLDQMModule::h_ns_cdcToecl
TH1D * h_ns_cdcToecl[nskim_gdldqm]
timestamp diff from cdc_timing to ecl_timing in nsec
Definition: TRGGDLDQMModule.h:91
Belle2::TRGGDLDQMModule::h_psn
TH1I * h_psn[nskim_gdldqm]
psn bits
Definition: TRGGDLDQMModule.h:106
Belle2::TRGGDLDQMModule::terminate
virtual void terminate() override
terminate
Definition: TRGGDLDQMModule.h:51
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:75
Belle2::TRGGDLDQMModule::h_timtype
TH1I * h_timtype[nskim_gdldqm]
timtype
Definition: TRGGDLDQMModule.h:114
Belle2::TRGGDLDQMModule::defineHisto
virtual void defineHisto() override
Define Histogram.
Definition: TRGGDLDQMModule.cc:83
Belle2::TRGGDLDQMModule::h_c8_topToGDL
TH1I * h_c8_topToGDL[nskim_gdldqm]
timestamp diff from t0(top) to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:73
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::TRGGDLDQMModule::TRGGDLDQMModule
TRGGDLDQMModule()
Costructor.
Definition: TRGGDLDQMModule.cc:41
Belle2::TRGGDLDQMModule::beginRun
virtual void beginRun() override
begin Run
Definition: TRGGDLDQMModule.cc:223
Belle2::TRGGDLDQMModule::~TRGGDLDQMModule
virtual ~TRGGDLDQMModule()
Destrunctor.
Definition: TRGGDLDQMModule.h:39
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:81
Belle2::TRGGDLDQMModule::h_c8_gdlL1TocomL1
TH1I * h_c8_gdlL1TocomL1[nskim_gdldqm]
timestamp diff from gdlL1 to comL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:63
Belle2::TRGGDLDQMModule::h_c8_ecl8mToGDL
TH1I * h_c8_ecl8mToGDL[nskim_gdldqm]
timestamp diff from fit on fam to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:71
Belle2::TRGGDLDQMModule::h_ns_topTocdc
TH1D * h_ns_topTocdc[nskim_gdldqm]
timestamp diff from top_timing to cdc_timing in nsec
Definition: TRGGDLDQMModule.h:87
Belle2::TRGGDLDQMModule::h_c8_eclTogdlL1
TH1I * h_c8_eclTogdlL1[nskim_gdldqm]
timestamp diff from t0(ecl) to gdlL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:67
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:89
Belle2::TRGGDLDQMModule::initialize
virtual void initialize() override
initialize
Definition: TRGGDLDQMModule.cc:257
Belle2::TRGGDLDQMModule::h_ns_topToecl
TH1D * h_ns_topToecl[nskim_gdldqm]
timestamp diff from top_timing to ecl_timing in nsec
Definition: TRGGDLDQMModule.h:85
Belle2::TRGGDLDQMModule::endRun
virtual void endRun() override
End Run.
Definition: TRGGDLDQMModule.cc:365
Belle2::TRGGDLDQMModule::h_c8_cdcToGDL
TH1I * h_c8_cdcToGDL[nskim_gdldqm]
timestamp diff from t0(cdc) to GDL in LSB8nsec
Definition: TRGGDLDQMModule.h:77
Belle2::TRGGDLDQMModule::h_c8_topTogdlL1
TH1I * h_c8_topTogdlL1[nskim_gdldqm]
timestamp diff from t0(top) to gdlL1 in LSB8nsec
Definition: TRGGDLDQMModule.h:65
Belle2::TRGGDLDQMModule::h_ns_cdcTogdlL1
TH1D * h_ns_cdcTogdlL1[nskim_gdldqm]
timestamp diff from cdc_timing to gdlL1 in nsec
Definition: TRGGDLDQMModule.h:83
Belle2::TRGGDLDQMModule::h_c2_cdcTocomL1
TH1I * h_c2_cdcTocomL1[nskim_gdldqm]
timestamp diff from cdc_timing to comL1 in LSB2nsec
Definition: TRGGDLDQMModule.h:79
Belle2::TRGGDLDQMModule::event
virtual void event() override
Event.
Definition: TRGGDLDQMModule.cc:447
Belle2::TRGGDLDQMModule::h_ftd
TH1I * h_ftd[nskim_gdldqm]
ftd bits
Definition: TRGGDLDQMModule.h:102
Belle2::TRGGDLDQMModule::h_itd
TH1I * h_itd[nskim_gdldqm]
input bits
Definition: TRGGDLDQMModule.h:98
Belle2::HistoModule
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29