Belle II Software  release-08-01-10
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 
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  m_SVD3EventT0 = new TH1F("SVD3EventT0", "SVD EventT0 for 3 samples", nBins, minT0, maxT0);
108  m_SVD3EventT0->GetXaxis()->SetTitle("SVD EventT0 time (ns)");
109  m_SVD3EventT0->GetYaxis()->SetTitle("count");
110 
111  m_SVD6EventT0 = new TH1F("SVD6EventT0", "SVD EventT0 for 6 samples", nBins, minT0, maxT0);
112  m_SVD6EventT0->GetXaxis()->SetTitle("SVD EventT0 time (ns)");
113  m_SVD6EventT0->GetYaxis()->SetTitle("count");
114 
115  m_SVD3EventT0_bhabha_L1_ECLTRG = new TH1F("SVD3EventT0_bhabha_L1_ECLTRG",
116  "SVD EventT0 3 samples : bhabhas, ECLTRG time",
117  nBins, minT0, maxT0);
118  m_SVD3EventT0_bhabha_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
119 
120  m_SVD3EventT0_hadron_L1_ECLTRG = new TH1F("SVD3EventT0_hadron_L1_ECLTRG",
121  "SVD EventT0 3 samples : hadrons, ECLTRG time",
122  nBins, minT0, maxT0);
123  m_SVD3EventT0_hadron_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
124 
125  m_SVD3EventT0_mumu_L1_ECLTRG = new TH1F("SVD3EventT0_mumu_L1_ECLTRG",
126  "SVD EventT0 3 samples : mumus, ECLTRG time",
127  nBins, minT0, maxT0);
128  m_SVD3EventT0_mumu_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
129 
130  m_SVD3EventT0_bhabha_L1_CDCTRG = new TH1F("SVD3EventT0_bhabha_L1_CDCTRG",
131  "SVD EventT0 3 samples : bhabhas, CDCTRG time",
132  nBins, minT0, maxT0);
133  m_SVD3EventT0_bhabha_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
134 
135  m_SVD3EventT0_hadron_L1_CDCTRG = new TH1F("SVD3EventT0_hadron_L1_CDCTRG",
136  "SVD EventT0 3 samples : hadrons, CDCTRG time",
137  nBins, minT0, maxT0);
138  m_SVD3EventT0_hadron_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
139 
140  m_SVD3EventT0_mumu_L1_CDCTRG = new TH1F("SVD3EventT0_mumu_L1_CDCTRG",
141  "SVD EventT0 3 samples : mumus, CDCTRG time",
142  nBins, minT0, maxT0);
143  m_SVD3EventT0_mumu_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
144 
145 
146 
147  m_SVD6EventT0_bhabha_L1_ECLTRG = new TH1F("SVD6EventT0_bhabha_L1_ECLTRG",
148  "SVD EventT0 6 samples : bhabhas, ECLTRG time",
149  nBins, minT0, maxT0);
150  m_SVD6EventT0_bhabha_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
151 
152  m_SVD6EventT0_hadron_L1_ECLTRG = new TH1F("SVD6EventT0_hadron_L1_ECLTRG",
153  "SVD EventT0 6 samples : hadrons, ECLTRG time",
154  nBins, minT0, maxT0);
155  m_SVD6EventT0_hadron_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
156 
157  m_SVD6EventT0_mumu_L1_ECLTRG = new TH1F("SVD6EventT0_mumu_L1_ECLTRG",
158  "SVD EventT0 6 samples : mumus, ECLTRG time",
159  nBins, minT0, maxT0);
160  m_SVD6EventT0_mumu_L1_ECLTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
161 
162  m_SVD6EventT0_bhabha_L1_CDCTRG = new TH1F("SVD6EventT0_bhabha_L1_CDCTRG",
163  "SVD EventT0 6 samples : bhabhas, CDCTRG time",
164  nBins, minT0, maxT0);
165  m_SVD6EventT0_bhabha_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
166 
167  m_SVD6EventT0_hadron_L1_CDCTRG = new TH1F("SVD6EventT0_hadron_L1_CDCTRG",
168  "SVD EventT0 6 samples : hadrons, CDCTRG time",
169  nBins, minT0, maxT0);
170  m_SVD6EventT0_hadron_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
171 
172  m_SVD6EventT0_mumu_L1_CDCTRG = new TH1F("SVD6EventT0_mumu_L1_CDCTRG",
173  "SVD EventT0 6 samples : mumus, CDCTRG time",
174  nBins, minT0, maxT0);
175  m_SVD6EventT0_mumu_L1_CDCTRG->GetXaxis()->SetTitle("SVD EventT0 (ns)");
176 
177  oldDir->cd();
178 
179 }
180 
181 
182 //---------------------------------
184 {
185 
186  m_TrgResult.isOptional();
187  m_eventT0.isOptional();
190 
191  REG_HISTOGRAM
192 
193 }
194 
195 
196 
197 //---------------------------------
199 {
200 
201  m_l3v_bhabha_L1_ECLTRG->Reset();
203  m_l3v_hadron_L1_ECLTRG->Reset();
205  m_l3v_mumu_L1_ECLTRG->Reset();
206  m_l3vEvtT0_mumu_L1_ECLTRG->Reset();
207 
208  m_l3v_bhabha_L1_CDCTRG->Reset();
210  m_l3v_hadron_L1_CDCTRG->Reset();
212  m_l3v_mumu_L1_CDCTRG->Reset();
213  m_l3vEvtT0_mumu_L1_CDCTRG->Reset();
214 
215  m_SVD3EventT0->Reset();
216  m_SVD6EventT0->Reset();
217 
224 
231 }
232 
233 
234 //---------------------------------
236 {
237 
238  if (!m_TrgResult.isValid()) {
239  B2WARNING("Missing TRGSummary, SVDDQMHitTime is skipped.");
240  return;
241  }
242  if (!m_svdEventInfo.isValid()) {
243  B2WARNING("Missing SVDEventInfo, SVDDQMHitTime is skipped.");
244  return;
245  }
246 
247 
248 
249  if (!m_clusters.isValid()) {
250  B2WARNING("Missing SVDClusters, SVDDQMHitTime is skipped.");
251  return;
252  }
253 
254 
255  if (!m_objTrgSummary.isValid()) {
256  B2WARNING("TRGSummary object not available but required to indicate which detector provided the L1 trigger time");
257  return;
258  } else {
259  m_L1TimingSrc = m_objTrgSummary->getTimType();
260  }
261 
262  bool Is_ECL_L1TriggerSource = false ;
263  bool Is_CDC_L1TriggerSource = false ;
264  if (m_L1TimingSrc == TRGSummary::ETimingType::TTYP_ECL) { // for L1 timing source is "ecl trigger"
265  Is_ECL_L1TriggerSource = true ;
266  } else if (m_L1TimingSrc == TRGSummary::ETimingType::TTYP_CDC) { // for L1 timing source is "cdc trigger"
267  Is_CDC_L1TriggerSource = true ;
268  }
269  // else if(m_L1TimingSrc==ETimingType::TTYP_DPHY){ // for L1 timing source is "delayed Bhabha" }
270  B2DEBUG(20, "Is_ECL_L1TriggerSource = " << Is_ECL_L1TriggerSource) ;
271  B2DEBUG(20, "Is_CDC_L1TriggerSource= " << Is_CDC_L1TriggerSource) ;
272 
273 
274  if (!m_TrgResult.isValid()) {
275  B2WARNING("SoftwareTriggerResult object not available but require to select bhabha/mumu/hadron events for this module");
276  return;
277  }
278 
279  const std::map<std::string, int>& fresults = m_TrgResult->getResults();
280  if ((fresults.find("software_trigger_cut&skim&accept_bhabha") == fresults.end()) ||
281  (fresults.find("software_trigger_cut&skim&accept_mumu_2trk") == fresults.end()) ||
282  (fresults.find("software_trigger_cut&skim&accept_hadron") == fresults.end())) {
283  B2WARNING("SVDDQMHitTimeModule: Can't find required bhabha or mumu or hadron trigger identifier");
284  return;
285  }
286 
287 
288 
289  // determine if the event was part of the hadron skim or bhabha skim or mumu skim
290  const bool IsEvtAcceptedBhabha = (m_TrgResult->getResult("software_trigger_cut&skim&accept_bhabha") ==
292  const bool IsEvtAcceptedHadron = (m_TrgResult->getResult("software_trigger_cut&skim&accept_hadron") ==
294  const bool IsEvtAcceptedMumu = (m_TrgResult->getResult("software_trigger_cut&skim&accept_mumu_2trk") ==
296 
297 
298  B2DEBUG(20, "bhabha trigger result = " << static_cast<std::underlying_type<SoftwareTriggerCutResult>::type>
299  (m_TrgResult->getResult("software_trigger_cut&skim&accept_bhabha"))) ;
300  B2DEBUG(20, "hadron trigger result = " << static_cast<std::underlying_type<SoftwareTriggerCutResult>::type>
301  (m_TrgResult->getResult("software_trigger_cut&skim&accept_hadron"))) ;
302  B2DEBUG(20, "mu mu trigger result = " << static_cast<std::underlying_type<SoftwareTriggerCutResult>::type>
303  (m_TrgResult->getResult("software_trigger_cut&skim&accept_mumu_2trk"))) ;
304  B2DEBUG(20, "bhabha trigger comparison bool = " << IsEvtAcceptedBhabha) ;
305  B2DEBUG(20, "hadron trigger comparison bool = " << IsEvtAcceptedHadron) ;
306  B2DEBUG(20, "mumu trigger comparison bool = " << IsEvtAcceptedMumu) ;
307 
308 
309  // get EventT0 if present and valid
310  double eventT0 = -1000;
311  if (m_eventT0.isValid())
312  if (m_eventT0->hasEventT0())
313  eventT0 = m_eventT0->getEventT0();
314 
315  // if svd time in SVD time reference is shown, eventT0 is also synchronized with SVD reference frame, firstFrame = 0
316  if (m_desynchSVDTime && m_svdEventInfo.isValid())
317  eventT0 = eventT0 - m_svdEventInfo->getSVD2FTSWTimeShift(0);
318 
319  int nSamples = m_svdEventInfo->getNSamples();
320 
321  if (m_eventT0->hasTemporaryEventT0(Const::EDetector::SVD)) {
322  const auto bestSVDEvtT0 = m_eventT0->getBestSVDTemporaryEventT0() ;
323  // There is only one estimate of SVD EVentT0 for the moment
324  float svdEventT0 = bestSVDEvtT0->eventT0 ;
325 
326  if (nSamples == 3) {
327  m_SVD3EventT0->Fill(svdEventT0);
328  } else {
329  m_SVD6EventT0->Fill(svdEventT0);
330  }
331 
332  if (Is_ECL_L1TriggerSource) {
333  if (IsEvtAcceptedBhabha) {
334  if (nSamples == 3) {
335  m_SVD3EventT0_bhabha_L1_ECLTRG->Fill(svdEventT0);
336  } else {
337  m_SVD6EventT0_bhabha_L1_ECLTRG->Fill(svdEventT0);
338  }
339  }
340  if (IsEvtAcceptedHadron) {
341  if (nSamples == 3) {
342  m_SVD3EventT0_hadron_L1_ECLTRG->Fill(svdEventT0);
343  } else {
344  m_SVD6EventT0_hadron_L1_ECLTRG->Fill(svdEventT0);
345  }
346  }
347  if (IsEvtAcceptedMumu) {
348  if (nSamples == 3) {
349  m_SVD3EventT0_mumu_L1_ECLTRG->Fill(svdEventT0);
350  } else {
351  m_SVD6EventT0_mumu_L1_ECLTRG->Fill(svdEventT0);
352  }
353  }
354  }
355 
356  // Fill the plots that used the CDC trigger as the L1 timing source
357  else if (Is_CDC_L1TriggerSource) {
358  if (IsEvtAcceptedBhabha) {
359  if (nSamples == 3) {
360  m_SVD3EventT0_bhabha_L1_CDCTRG->Fill(svdEventT0);
361  } else {
362  m_SVD6EventT0_bhabha_L1_CDCTRG->Fill(svdEventT0);
363  }
364  }
365  if (IsEvtAcceptedHadron) {
366  if (nSamples == 3) {
367  m_SVD3EventT0_hadron_L1_CDCTRG->Fill(svdEventT0);
368  } else {
369  m_SVD6EventT0_hadron_L1_CDCTRG->Fill(svdEventT0);
370  }
371  }
372  if (IsEvtAcceptedMumu) {
373  if (nSamples == 3) {
374  m_SVD3EventT0_mumu_L1_CDCTRG->Fill(svdEventT0);
375  } else {
376  m_SVD6EventT0_mumu_L1_CDCTRG->Fill(svdEventT0);
377  }
378  }
379  }
380  }
381 
382  //loop on clusters
383  for (const SVDCluster& cluster : m_clusters) {
384 
385  //skip all non-L3 clusters
386  if (cluster.getSensorID().getLayerNumber() != 3) continue;
387  //skip all U-side clusters
388  if (cluster.isUCluster()) continue;
389 
390  double time = cluster.getClsTime();
391 
392  //if svd time is shown in SVD time reference we need to desynchronize (eventT0 is, instead, synchronized, see a few lines above
393  if (m_desynchSVDTime && m_svdEventInfo.isValid())
394  time = time - m_svdEventInfo->getSVD2FTSWTimeShift(cluster.getFirstFrame());
395 
396  // Fill the plots that used the ECL trigger as the L1 timing source
397  if (Is_ECL_L1TriggerSource) {
398  if (IsEvtAcceptedBhabha) {
399  m_l3v_bhabha_L1_ECLTRG->Fill(time);
400  m_l3vEvtT0_bhabha_L1_ECLTRG->Fill(time - eventT0);
401  }
402  if (IsEvtAcceptedHadron) {
403  m_l3v_hadron_L1_ECLTRG->Fill(time);
404  m_l3vEvtT0_hadron_L1_ECLTRG->Fill(time - eventT0);
405  }
406  if (IsEvtAcceptedMumu) {
407  m_l3v_mumu_L1_ECLTRG->Fill(time);
408  m_l3vEvtT0_mumu_L1_ECLTRG->Fill(time - eventT0);
409  }
410  }
411 
412  // Fill the plots that used the CDC trigger as the L1 timing source
413  else if (Is_CDC_L1TriggerSource) {
414  if (IsEvtAcceptedBhabha) {
415  m_l3v_bhabha_L1_CDCTRG->Fill(time);
416  m_l3vEvtT0_bhabha_L1_CDCTRG->Fill(time - eventT0);
417  }
418  if (IsEvtAcceptedHadron) {
419  m_l3v_hadron_L1_CDCTRG->Fill(time);
420  m_l3vEvtT0_hadron_L1_CDCTRG->Fill(time - eventT0);
421  }
422  if (IsEvtAcceptedMumu) {
423  m_l3v_mumu_L1_CDCTRG->Fill(time);
424  m_l3vEvtT0_mumu_L1_CDCTRG->Fill(time - eventT0);
425  }
426  }
427 
428  B2DEBUG(20, "eventT0 = " << eventT0 << " ns" << ", SVD HitTime = " << time << " ns") ;
429 
430  } //close loop on clusters
431 }
432 
433 
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.
StoreObjPtr< EventT0 > m_eventT0
EventT0 data object.
TH1F * m_SVD3EventT0_hadron_L1_ECLTRG
svd eventT0 histogram for hadronic events wrt the ECL trigger time for 3 samples
TH1F * m_l3v_mumu_L1_ECLTRG
svd time histogram for mu mu events wrt the ECL trigger time
TH1F * m_SVD3EventT0
SVD event T0 for 3 sampels.
virtual void initialize() override
Initialize the module.
StoreObjPtr< SVDEventInfo > m_svdEventInfo
SVDEventInfo data object.
TH1F * m_SVD3EventT0_bhabha_L1_CDCTRG
svd eventT0 histogram for bhabha events wrt the CDC trigger time for 3 samples
TH1F * m_SVD3EventT0_bhabha_L1_ECLTRG
svd eventT0 histogram for bhabha events wrt the ECL trigger time for 3 samples
virtual void event() override
This method is called for each event.
TH1F * m_l3vEvtT0_mumu_L1_ECLTRG
svd time histogram for mu mu events wrt the ECL trigger time
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_SVD6EventT0_mumu_L1_ECLTRG
svd eventT0 histogram for mu mu events wrt the ECL trigger time for 6 samples
TH1F * m_l3vEvtT0_hadron_L1_CDCTRG
svd time histogram for hadronic events wrt the CDC trigger time
TH1F * m_SVD3EventT0_mumu_L1_ECLTRG
svd eventT0 histogram for mu mu events wrt the ECL trigger time for 3 samples
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
TH1F * m_SVD6EventT0_hadron_L1_CDCTRG
svd EventT0 histogram for hadronic events wrt the CDC trigger time for 6 samples
StoreObjPtr< TRGSummary > m_objTrgSummary
Trigger Summary data object.
TH1F * m_SVD6EventT0_mumu_L1_CDCTRG
svd eventT0 histogram for mu mu events wrt the CDC trigger time for 6 samples
TH1F * m_SVD6EventT0_bhabha_L1_ECLTRG
svd eventT0 histogram for bhabha events wrt the ECL trigger time for 6 samples
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_SVD6EventT0
SVD event T0 for 6 sampels.
TH1F * m_l3v_bhabha_L1_ECLTRG
svd time histogram for bhabha events wrt the ECL trigger time
TH1F * m_l3vEvtT0_bhabha_L1_CDCTRG
svd time histogram for bhabha events wrt the CDC trigger time
TH1F * m_l3v_mumu_L1_CDCTRG
svd time histogram for mu mu events wrt the CDC trigger time
TH1F * m_SVD6EventT0_bhabha_L1_CDCTRG
svd eventT0 histogram for bhabha events wrt the CDC trigger time for 6 samples
TH1F * m_SVD6EventT0_hadron_L1_ECLTRG
svd eventT0 histogram for hadronic events wrt the ECL trigger time for 6 samples
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_SVD3EventT0_hadron_L1_CDCTRG
svd eventT0 histogram for hadronic events wrt the CDC trigger time for 3 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.
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_SVD3EventT0_mumu_L1_CDCTRG
svd eventT0 histogram for mu mu 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.