Belle II Software  release-08-02-06
SVDDQMHitTimeModule.cc
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #include <svd/modules/svdDQM/SVDDQMHitTimeModule.h>
10 #include <framework/core/HistoModule.h>
11 #include <mdst/dataobjects/TRGSummary.h>
12 #include <TDirectory.h>
13 
14 using namespace Belle2;
15 
16 REG_MODULE(SVDDQMHitTime);
17 
18 //---------------------------------
20 {
21  setPropertyFlags(c_ParallelProcessingCertified); // parallel processing
22  setDescription("Make data quality monitoring plots for SVD Hit Time for bhabha, mu mu, and hadron samples seeded by different trigger times (ECL, CDC).");
23  addParam("histogramDirectoryName", m_histogramDirectoryName, "Name of the directory where histograms will be placed.",
24  std::string("SVDHitTime"));
25  addParam("Clusters", m_storeSVDClustersName, "SVDCluster StoreArray name.",
26  std::string(""));
27  addParam("EventInfo", m_storeSVDEventInfoName, "SVDEventInfo StoreObjPtr name.",
28  std::string(""));
29  addParam("desynchronizeSVDTime", m_desynchSVDTime,
30  "if True, svd time back in SVD time reference", bool(false));
31  addParam("samples3", m_3Samples, "if True 3 samples histograms analysis is performed", bool(false));
32 }
33 
34 //---------------------------------
36 
37 
38 //---------------------------------
40 {
41 
42  TDirectory* oldDir = gDirectory;
43  oldDir->mkdir(m_histogramDirectoryName.c_str())->cd();
44 
45  int nBins = 300 ;
46  double minT0 = -150 ;
47  double maxT0 = 150 ;
48 
49  TString refFrame = "in FTSW reference";
50  if (m_desynchSVDTime)
51  refFrame = "in SVD reference";
52 
53  m_l3v_bhabha_L1_ECLTRG = new TH1F("SVDTime_L3V_bhabha_ECLTRG",
54  Form("SVD L3 V-Side Cluster Time %s: bhabhas, ECLTRG time", refFrame.Data()),
55  nBins, minT0, maxT0);
56  m_l3v_bhabha_L1_ECLTRG->GetXaxis()->SetTitle("cluster time (ns)");
57  m_l3vEvtT0_bhabha_L1_ECLTRG = new TH1F("SVDTimeEvtT0_L3V_bhabha_ECLTRG",
58  "SVD L3 V-Side Cluster Time - EventT0 : bhabhas, ECLTRG time",
59  nBins, minT0, maxT0);
60  m_l3vEvtT0_bhabha_L1_ECLTRG->GetXaxis()->SetTitle("cluster time - EventT0 (ns)");
61 
62  m_l3v_hadron_L1_ECLTRG = new TH1F("SVDTime_L3V_hadron_ECLTRG",
63  Form("SVD L3 V-Side Cluster Time %s: hadrons, ECLTRG time", refFrame.Data()),
64  nBins, minT0, maxT0);
65  m_l3v_hadron_L1_ECLTRG->GetXaxis()->SetTitle("cluster time (ns)");
66  m_l3vEvtT0_hadron_L1_ECLTRG = new TH1F("SVDTimeEvtT0_L3V_hadron_ECLTRG",
67  "SVD L3 V-Side Cluster Time - EventT0 : hadrons, ECLTRG time",
68  nBins, minT0, maxT0);
69  m_l3vEvtT0_hadron_L1_ECLTRG->GetXaxis()->SetTitle("cluster time - EventT0 (ns)");
70 
71  m_l3v_mumu_L1_ECLTRG = new TH1F("SVDTime_L3V_mumu_ECLTRG",
72  Form("SVD L3 V-Side Cluster Time %s: mumus, ECLTRG time", refFrame.Data()),
73  nBins, minT0, maxT0);
74  m_l3v_mumu_L1_ECLTRG->GetXaxis()->SetTitle("cluster time (ns)");
75  m_l3vEvtT0_mumu_L1_ECLTRG = new TH1F("SVDTimeEvtT0_L3V_mumu_ECLTRG",
76  "SVD L3 V-Side Cluster Time - EventT0 : mumus, ECLTRG time",
77  nBins, minT0, maxT0);
78  m_l3vEvtT0_mumu_L1_ECLTRG->GetXaxis()->SetTitle("cluster time - EventT0 (ns)");
79 
80  m_l3v_bhabha_L1_CDCTRG = new TH1F("SVDTime_L3V_bhabha_CDCTRG",
81  Form("SVD L3 V-Side Cluster Time %s: bhabhas, CDCTRG time", refFrame.Data()),
82  nBins, minT0, maxT0);
83  m_l3v_bhabha_L1_CDCTRG->GetXaxis()->SetTitle("cluster time (ns)");
84  m_l3vEvtT0_bhabha_L1_CDCTRG = new TH1F("SVDTimeEvtT0_L3V_bhabha_CDCTRG",
85  "SVD L3 V-Side Cluster Time - EventT0 : bhabhas, CDCTRG time",
86  nBins, minT0, maxT0);
87  m_l3vEvtT0_bhabha_L1_CDCTRG->GetXaxis()->SetTitle("cluster time - EventT0 (ns)");
88 
89  m_l3v_hadron_L1_CDCTRG = new TH1F("SVDTime_L3V_hadron_CDCTRG",
90  Form("SVD L3 V-Side Cluster Time %s: hadrons, CDCTRG time", refFrame.Data()),
91  nBins, minT0, maxT0);
92  m_l3v_hadron_L1_CDCTRG->GetXaxis()->SetTitle("cluster time (ns)");
93  m_l3vEvtT0_hadron_L1_CDCTRG = new TH1F("SVDTimeEvtT0_L3V_hadron_CDCTRG",
94  "SVD L3 V-Side Cluster Time - EventT0 : hadrons, CDCTRG time",
95  nBins, minT0, maxT0);
96  m_l3vEvtT0_hadron_L1_CDCTRG->GetXaxis()->SetTitle("cluster time - EventT0 (ns)");
97 
98  m_l3v_mumu_L1_CDCTRG = new TH1F("SVDTime_L3V_mumu_CDCTRG",
99  Form("SVD L3 V-Side Cluster Time %s: mumus, CDCTRG time", refFrame.Data()),
100  nBins, minT0, maxT0);
101  m_l3v_mumu_L1_CDCTRG->GetXaxis()->SetTitle("cluster time (ns)");
102  m_l3vEvtT0_mumu_L1_CDCTRG = new TH1F("SVDTimeEvtT0_L3V_mumu_CDCTRG",
103  "SVD L3 V-Side Cluster Time - EventT0 : mumus, CDCTRG time",
104  nBins, minT0, maxT0);
105  m_l3vEvtT0_mumu_L1_CDCTRG->GetXaxis()->SetTitle("cluster time - EventT0 (ns)");
106 
107  if (m_3Samples) {
108  m_SVDEventT03Sample = new TH1F("SVD3EventT0", "SVD EventT0 for 3 samples", nBins, minT0, maxT0);
109  m_SVDEventT03Sample->GetXaxis()->SetTitle("SVD EventT0 time (ns)");
110  m_SVDEventT03Sample->GetYaxis()->SetTitle("count");
111 
112  m_SVDEventT06Sample = new TH1F("SVDEventT06Sample", "SVD EventT0 for 6 samples", nBins, minT0, maxT0);
113  m_SVDEventT06Sample->GetXaxis()->SetTitle("SVD EventT0 time (ns)");
114  m_SVDEventT06Sample->GetYaxis()->SetTitle("count");
115 
116  m_SVDEventT03Sample_bhabha_L1_ECLTRG = new TH1F("SVD3EventT0_bhabha_L1_ECLTRG",
117  "SVD EventT0 3 samples : bhabhas, ECLTRG time",
118  nBins, minT0, maxT0);
119  m_SVDEventT03Sample_bhabha_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
120 
121  m_SVDEventT03Sample_hadron_L1_ECLTRG = new TH1F("SVD3EventT0_hadron_L1_ECLTRG",
122  "SVD EventT0 3 samples : hadrons, ECLTRG time",
123  nBins, minT0, maxT0);
124  m_SVDEventT03Sample_hadron_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
125 
126  m_SVDEventT03Sample_mumu_L1_ECLTRG = new TH1F("SVD3EventT0_mumu_L1_ECLTRG",
127  "SVD EventT0 3 samples : mumus, ECLTRG time",
128  nBins, minT0, maxT0);
129  m_SVDEventT03Sample_mumu_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
130 
131  m_SVDEventT03Sample_bhabha_L1_CDCTRG = new TH1F("SVD3EventT0_bhabha_L1_CDCTRG",
132  "SVD EventT0 3 samples : bhabhas, CDCTRG time",
133  nBins, minT0, maxT0);
134  m_SVDEventT03Sample_bhabha_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
135 
136  m_SVDEventT03Sample_hadron_L1_CDCTRG = new TH1F("SVD3EventT0_hadron_L1_CDCTRG",
137  "SVD EventT0 3 samples : hadrons, CDCTRG time",
138  nBins, minT0, maxT0);
139  m_SVDEventT03Sample_hadron_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
140 
141  m_SVDEventT03Sample_mumu_L1_CDCTRG = new TH1F("SVD3EventT0_mumu_L1_CDCTRG",
142  "SVD EventT0 3 samples : mumus, CDCTRG time",
143  nBins, minT0, maxT0);
144  m_SVDEventT03Sample_mumu_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
145 
146 
147 
148  m_SVDEventT06Sample_bhabha_L1_ECLTRG = new TH1F("SVDEventT06Sample_bhabha_L1_ECLTRG",
149  "SVD EventT0 6 samples : bhabhas, ECLTRG time",
150  nBins, minT0, maxT0);
151  m_SVDEventT06Sample_bhabha_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
152 
153  m_SVDEventT06Sample_hadron_L1_ECLTRG = new TH1F("SVDEventT06Sample_hadron_L1_ECLTRG",
154  "SVD EventT0 6 samples : hadrons, ECLTRG time",
155  nBins, minT0, maxT0);
156  m_SVDEventT06Sample_hadron_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
157 
158  m_SVDEventT06Sample_mumu_L1_ECLTRG = new TH1F("SVDEventT06Sample_mumu_L1_ECLTRG",
159  "SVD EventT0 6 samples : mumus, ECLTRG time",
160  nBins, minT0, maxT0);
161  m_SVDEventT06Sample_mumu_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
162 
163  m_SVDEventT06Sample_bhabha_L1_CDCTRG = new TH1F("SVDEventT06Sample_bhabha_L1_CDCTRG",
164  "SVD EventT0 6 samples : bhabhas, CDCTRG time",
165  nBins, minT0, maxT0);
166  m_SVDEventT06Sample_bhabha_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
167 
168  m_SVDEventT06Sample_hadron_L1_CDCTRG = new TH1F("SVDEventT06Sample_hadron_L1_CDCTRG",
169  "SVD EventT0 6 samples : hadrons, CDCTRG time",
170  nBins, minT0, maxT0);
171  m_SVDEventT06Sample_hadron_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
172 
173  m_SVDEventT06Sample_mumu_L1_CDCTRG = new TH1F("SVDEventT06Sample_mumu_L1_CDCTRG",
174  "SVD EventT0 6 samples : mumus, CDCTRG time",
175  nBins, minT0, maxT0);
176  m_SVDEventT06Sample_mumu_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
177  }
178  oldDir->cd();
179 
180 }
181 
182 
183 //---------------------------------
185 {
186 
187  m_TrgResult.isOptional();
188  m_eventT0.isOptional();
191 
192  REG_HISTOGRAM
193 
194 }
195 
196 
197 
198 //---------------------------------
200 {
201 
202  m_l3v_bhabha_L1_ECLTRG->Reset();
204  m_l3v_hadron_L1_ECLTRG->Reset();
206  m_l3v_mumu_L1_ECLTRG->Reset();
207  m_l3vEvtT0_mumu_L1_ECLTRG->Reset();
208 
209  m_l3v_bhabha_L1_CDCTRG->Reset();
211  m_l3v_hadron_L1_CDCTRG->Reset();
213  m_l3v_mumu_L1_CDCTRG->Reset();
214  m_l3vEvtT0_mumu_L1_CDCTRG->Reset();
215 
216  if (m_3Samples) {
217  m_SVDEventT03Sample->Reset();
218  m_SVDEventT06Sample->Reset();
219 
226 
233  }
234 }
235 
236 
237 //---------------------------------
239 {
240 
241  if (!m_TrgResult.isValid()) {
242  B2WARNING("Missing TRGSummary, SVDDQMHitTime is skipped.");
243  return;
244  }
245  if (!m_svdEventInfo.isValid()) {
246  B2WARNING("Missing SVDEventInfo, SVDDQMHitTime is skipped.");
247  return;
248  }
249 
250 
251 
252  if (!m_clusters.isValid()) {
253  B2WARNING("Missing SVDClusters, SVDDQMHitTime is skipped.");
254  return;
255  }
256 
257 
258  if (!m_objTrgSummary.isValid()) {
259  B2WARNING("TRGSummary object not available but required to indicate which detector provided the L1 trigger time");
260  return;
261  } else {
262  m_L1TimingSrc = m_objTrgSummary->getTimType();
263  }
264 
265  bool Is_ECL_L1TriggerSource = false ;
266  bool Is_CDC_L1TriggerSource = false ;
267  if (m_L1TimingSrc == TRGSummary::ETimingType::TTYP_ECL) { // for L1 timing source is "ecl trigger"
268  Is_ECL_L1TriggerSource = true ;
269  } else if (m_L1TimingSrc == TRGSummary::ETimingType::TTYP_CDC) { // for L1 timing source is "cdc trigger"
270  Is_CDC_L1TriggerSource = true ;
271  }
272  // else if(m_L1TimingSrc==ETimingType::TTYP_DPHY){ // for L1 timing source is "delayed Bhabha" }
273  B2DEBUG(20, "Is_ECL_L1TriggerSource = " << Is_ECL_L1TriggerSource) ;
274  B2DEBUG(20, "Is_CDC_L1TriggerSource= " << Is_CDC_L1TriggerSource) ;
275 
276 
277  if (!m_TrgResult.isValid()) {
278  B2WARNING("SoftwareTriggerResult object not available but require to select bhabha/mumu/hadron events for this module");
279  return;
280  }
281 
282  const std::map<std::string, int>& fresults = m_TrgResult->getResults();
283  if ((fresults.find("software_trigger_cut&skim&accept_bhabha") == fresults.end()) ||
284  (fresults.find("software_trigger_cut&skim&accept_mumu_2trk") == fresults.end()) ||
285  (fresults.find("software_trigger_cut&skim&accept_hadron") == fresults.end())) {
286  B2WARNING("SVDDQMHitTimeModule: Can't find required bhabha or mumu or hadron trigger identifier");
287  return;
288  }
289 
290 
291 
292  // determine if the event was part of the hadron skim or bhabha skim or mumu skim
293  const bool IsEvtAcceptedBhabha = (m_TrgResult->getResult("software_trigger_cut&skim&accept_bhabha") ==
295  const bool IsEvtAcceptedHadron = (m_TrgResult->getResult("software_trigger_cut&skim&accept_hadron") ==
297  const bool IsEvtAcceptedMumu = (m_TrgResult->getResult("software_trigger_cut&skim&accept_mumu_2trk") ==
299 
300 
301  B2DEBUG(20, "bhabha trigger result = " << static_cast<std::underlying_type<SoftwareTriggerCutResult>::type>
302  (m_TrgResult->getResult("software_trigger_cut&skim&accept_bhabha"))) ;
303  B2DEBUG(20, "hadron trigger result = " << static_cast<std::underlying_type<SoftwareTriggerCutResult>::type>
304  (m_TrgResult->getResult("software_trigger_cut&skim&accept_hadron"))) ;
305  B2DEBUG(20, "mu mu trigger result = " << static_cast<std::underlying_type<SoftwareTriggerCutResult>::type>
306  (m_TrgResult->getResult("software_trigger_cut&skim&accept_mumu_2trk"))) ;
307  B2DEBUG(20, "bhabha trigger comparison bool = " << IsEvtAcceptedBhabha) ;
308  B2DEBUG(20, "hadron trigger comparison bool = " << IsEvtAcceptedHadron) ;
309  B2DEBUG(20, "mumu trigger comparison bool = " << IsEvtAcceptedMumu) ;
310 
311 
312  // get EventT0 if present and valid
313  double eventT0 = -1000;
314  if (m_eventT0.isValid())
315  if (m_eventT0->hasEventT0())
316  eventT0 = m_eventT0->getEventT0();
317 
318  // if svd time in SVD time reference is shown, eventT0 is also synchronized with SVD reference frame, firstFrame = 0
319  if (m_desynchSVDTime && m_svdEventInfo.isValid())
320  eventT0 = eventT0 - m_svdEventInfo->getSVD2FTSWTimeShift(0);
321 
322  int nSamples = m_svdEventInfo->getNSamples();
323 
324  if (m_eventT0->hasTemporaryEventT0(Const::EDetector::SVD)) {
325  const auto bestSVDEvtT0 = m_eventT0->getBestSVDTemporaryEventT0() ;
326  // There is only one estimate of SVD EVentT0 for the moment
327  float svdEventT0 = bestSVDEvtT0->eventT0 ;
328 
329  if (m_3Samples) {
330  if (nSamples == 3) {
331  m_SVDEventT03Sample->Fill(svdEventT0);
332  } else {
333  m_SVDEventT06Sample->Fill(svdEventT0);
334  }
335 
336  if (Is_ECL_L1TriggerSource) {
337  if (IsEvtAcceptedBhabha) {
338  if (nSamples == 3) {
339  m_SVDEventT03Sample_bhabha_L1_ECLTRG->Fill(svdEventT0);
340  } else {
341  m_SVDEventT06Sample_bhabha_L1_ECLTRG->Fill(svdEventT0);
342  }
343  }
344  if (IsEvtAcceptedHadron) {
345  if (nSamples == 3) {
346  m_SVDEventT03Sample_hadron_L1_ECLTRG->Fill(svdEventT0);
347  } else {
348  m_SVDEventT06Sample_hadron_L1_ECLTRG->Fill(svdEventT0);
349  }
350  }
351  if (IsEvtAcceptedMumu) {
352  if (nSamples == 3) {
353  m_SVDEventT03Sample_mumu_L1_ECLTRG->Fill(svdEventT0);
354  } else {
355  m_SVDEventT06Sample_mumu_L1_ECLTRG->Fill(svdEventT0);
356  }
357  }
358  }
359 
360  // Fill the plots that used the CDC trigger as the L1 timing source
361  else if (Is_CDC_L1TriggerSource) {
362  if (IsEvtAcceptedBhabha) {
363  if (nSamples == 3) {
364  m_SVDEventT03Sample_bhabha_L1_CDCTRG->Fill(svdEventT0);
365  } else {
366  m_SVDEventT06Sample_bhabha_L1_CDCTRG->Fill(svdEventT0);
367  }
368  }
369  if (IsEvtAcceptedHadron) {
370  if (nSamples == 3) {
371  m_SVDEventT03Sample_hadron_L1_CDCTRG->Fill(svdEventT0);
372  } else {
373  m_SVDEventT06Sample_hadron_L1_CDCTRG->Fill(svdEventT0);
374  }
375  }
376  if (IsEvtAcceptedMumu) {
377  if (nSamples == 3) {
378  m_SVDEventT03Sample_mumu_L1_CDCTRG->Fill(svdEventT0);
379  } else {
380  m_SVDEventT06Sample_mumu_L1_CDCTRG->Fill(svdEventT0);
381  }
382  }
383  }
384  }
385  }
386 
387  //loop on clusters
388  for (const SVDCluster& cluster : m_clusters) {
389 
390  //skip all non-L3 clusters
391  if (cluster.getSensorID().getLayerNumber() != 3) continue;
392  //skip all U-side clusters
393  if (cluster.isUCluster()) continue;
394 
395  double time = cluster.getClsTime();
396 
397  //if svd time is shown in SVD time reference we need to desynchronize (eventT0 is, instead, synchronized, see a few lines above
398  if (m_desynchSVDTime && m_svdEventInfo.isValid())
399  time = time - m_svdEventInfo->getSVD2FTSWTimeShift(cluster.getFirstFrame());
400 
401  // Fill the plots that used the ECL trigger as the L1 timing source
402  if (Is_ECL_L1TriggerSource) {
403  if (IsEvtAcceptedBhabha) {
404  m_l3v_bhabha_L1_ECLTRG->Fill(time);
405  m_l3vEvtT0_bhabha_L1_ECLTRG->Fill(time - eventT0);
406  }
407  if (IsEvtAcceptedHadron) {
408  m_l3v_hadron_L1_ECLTRG->Fill(time);
409  m_l3vEvtT0_hadron_L1_ECLTRG->Fill(time - eventT0);
410  }
411  if (IsEvtAcceptedMumu) {
412  m_l3v_mumu_L1_ECLTRG->Fill(time);
413  m_l3vEvtT0_mumu_L1_ECLTRG->Fill(time - eventT0);
414  }
415  }
416 
417  // Fill the plots that used the CDC trigger as the L1 timing source
418  else if (Is_CDC_L1TriggerSource) {
419  if (IsEvtAcceptedBhabha) {
420  m_l3v_bhabha_L1_CDCTRG->Fill(time);
421  m_l3vEvtT0_bhabha_L1_CDCTRG->Fill(time - eventT0);
422  }
423  if (IsEvtAcceptedHadron) {
424  m_l3v_hadron_L1_CDCTRG->Fill(time);
425  m_l3vEvtT0_hadron_L1_CDCTRG->Fill(time - eventT0);
426  }
427  if (IsEvtAcceptedMumu) {
428  m_l3v_mumu_L1_CDCTRG->Fill(time);
429  m_l3vEvtT0_mumu_L1_CDCTRG->Fill(time - eventT0);
430  }
431  }
432 
433  B2DEBUG(20, "eventT0 = " << eventT0 << " ns" << ", SVD HitTime = " << time << " ns") ;
434 
435  } //close loop on clusters
436 }
437 
438 
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:214
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition: Module.cc:208
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition: Module.h:80
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
Definition: SVDCluster.h:29
virtual ~SVDDQMHitTimeModule()
Destructor.
TH1F * m_SVDEventT03Sample_mumu_L1_CDCTRG
svd eventT0 histogram for mu mu events wrt the CDC trigger time for 3 samples
StoreObjPtr< EventT0 > m_eventT0
EventT0 data object.
TH1F * m_l3v_mumu_L1_ECLTRG
svd time histogram for mu mu events wrt the ECL trigger time
virtual void initialize() override
Initialize the module.
StoreObjPtr< SVDEventInfo > m_svdEventInfo
SVDEventInfo data object.
TH1F * m_SVDEventT03Sample_hadron_L1_CDCTRG
svd eventT0 histogram for hadronic events wrt the CDC trigger time for 3 samples
TH1F * m_SVDEventT03Sample_mumu_L1_ECLTRG
svd eventT0 histogram for mu mu events wrt the ECL trigger time for 3 samples
virtual void event() override
This method is called for each event.
TH1F * m_SVDEventT06Sample_hadron_L1_CDCTRG
svd EventT0 histogram for hadronic events wrt the CDC trigger time for 6 samples
TH1F * m_l3vEvtT0_mumu_L1_ECLTRG
svd time histogram for mu mu events wrt the ECL trigger time
TH1F * m_SVDEventT06Sample
SVD event T0 for 6 sampels.
TH1F * m_SVDEventT06Sample_bhabha_L1_CDCTRG
svd eventT0 histogram for bhabha events wrt the CDC trigger time for 6 samples
TH1F * m_SVDEventT06Sample_bhabha_L1_ECLTRG
svd eventT0 histogram for bhabha events wrt the ECL trigger time for 6 samples
StoreArray< SVDCluster > m_clusters
Store array for clusters.
TH1F * m_l3v_hadron_L1_CDCTRG
svd time histogram for hadronic events wrt the CDC trigger time
TH1F * m_l3vEvtT0_mumu_L1_CDCTRG
svd time histogram for mu mu events wrt the CDC trigger time
TH1F * m_l3vEvtT0_hadron_L1_CDCTRG
svd time histogram for hadronic events wrt the CDC trigger time
TH1F * m_l3v_hadron_L1_ECLTRG
svd time histogram for hadronic events wrt the ECL trigger time
TH1F * m_l3vEvtT0_hadron_L1_ECLTRG
svd time histogram for hadronic events wrt the ECL trigger time
StoreObjPtr< TRGSummary > m_objTrgSummary
Trigger Summary data object.
virtual void beginRun() override
This method is called for each run.
std::string m_histogramDirectoryName
Name of the histogram directory in ROOT file.
TH1F * m_l3v_bhabha_L1_ECLTRG
svd time histogram for bhabha events wrt the ECL trigger time
bool m_3Samples
if true enable 3 samples histograms analysis
TH1F * m_l3vEvtT0_bhabha_L1_CDCTRG
svd time histogram for bhabha events wrt the CDC trigger time
TH1F * m_SVDEventT06Sample_mumu_L1_CDCTRG
svd eventT0 histogram for mu mu events wrt the CDC trigger time for 6 samples
TH1F * m_SVDEventT03Sample_bhabha_L1_ECLTRG
svd eventT0 histogram for bhabha events wrt the ECL trigger time for 3 samples
TH1F * m_l3v_mumu_L1_CDCTRG
svd time histogram for mu mu events wrt the CDC trigger time
bool m_desynchSVDTime
if TRUE: svdTime back in SVD time reference
TH1F * m_l3v_bhabha_L1_CDCTRG
svd time histogram for bhabha events wrt the CDC trigger time
TH1F * m_SVDEventT06Sample_hadron_L1_ECLTRG
svd eventT0 histogram for hadronic events wrt the ECL trigger time for 6 samples
TH1F * m_SVDEventT03Sample_hadron_L1_ECLTRG
svd eventT0 histogram for hadronic events wrt the ECL trigger time for 3 samples
TH1F * m_SVDEventT06Sample_mumu_L1_ECLTRG
svd eventT0 histogram for mu mu events wrt the ECL trigger time for 6 samples
int m_L1TimingSrc
L1 timing source from getTimeType() in TRGSummary See ETimingTYpe in mdst/dataobjects/include/TRGSumm...
std::string m_storeSVDClustersName
SVDClusters StoreArray name.
SVDDQMHitTimeModule()
Default constructor.
TH1F * m_SVDEventT03Sample
SVD event T0 for 3 sampels.
std::string m_storeSVDEventInfoName
SVDEventInfo StoreObjPtry name.
StoreObjPtr< SoftwareTriggerResult > m_TrgResult
Trigger selection data object.
TH1F * m_l3vEvtT0_bhabha_L1_ECLTRG
svd time histogram for bhabha events wrt the ECL trigger time
TH1F * m_SVDEventT03Sample_bhabha_L1_CDCTRG
svd eventT0 histogram for bhabha events wrt the CDC trigger time for 3 samples
virtual void defineHisto() override
Definition of histograms.
bool isOptional(const std::string &name="")
Tell the DataStore about an optional input.
bool isValid() const
Check wether the array was registered.
Definition: StoreArray.h:288
REG_MODULE(arichBtest)
Register the Module.
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition: Module.h:560
@ c_accept
Accept this event.
Abstract base class for different kinds of events.