Belle II Software  release-06-02-00
PhysicsObjectsMiraBelleDstModule.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 <dqm/modules/PhysicsObjectsMiraBelle/PhysicsObjectsMiraBelleDstModule.h>
10 #include <analysis/dataobjects/ParticleList.h>
11 #include <analysis/variables/ContinuumSuppressionVariables.h>
12 #include <analysis/variables/TrackVariables.h>
13 #include <analysis/utility/PCmsLabTransform.h>
14 #include <analysis/variables/Variables.h>
15 #include <framework/datastore/StoreObjPtr.h>
16 #include <framework/datastore/StoreArray.h>
17 #include <mdst/dataobjects/Track.h>
18 #include <mdst/dataobjects/TrackFitResult.h>
19 #include <mdst/dataobjects/KLMCluster.h>
20 #include <mdst/dataobjects/HitPatternCDC.h>
21 #include <mdst/dataobjects/HitPatternVXD.h>
22 #include <mdst/dataobjects/EventLevelTrackingInfo.h>
23 #include <mdst/dataobjects/PIDLikelihood.h>
24 #include <top/variables/TOPDigitVariables.h>
25 #include <arich/modules/arichDQM/ARICHDQMModule.h>
26 #include <arich/dataobjects/ARICHLikelihood.h>
27 #include <mdst/dataobjects/SoftwareTriggerResult.h>
28 #include <TDirectory.h>
29 #include <map>
30 
31 using namespace Belle2;
32 
33 REG_MODULE(PhysicsObjectsMiraBelleDst)
34 
36 {
37  setDescription("Monitor Physics Objects Quality");
38  setPropertyFlags(c_ParallelProcessingCertified);
39 
40  addParam("TriggerIdentifier", m_triggerIdentifier,
41  "Trigger identifier string used to select events for the histograms", std::string("software_trigger_cut&skim&accept_hadron"));
42  addParam("DstListName", m_dstListName, "Name of the D*+ particle list", std::string("D*+:physMiraBelle"));
43 }
44 
46 {
47  TDirectory* oldDir = gDirectory;
48  oldDir->mkdir("PhysicsObjectsMiraBelleDst")->cd();
49  // Mass distributions
50  m_h_D0_InvM = new TH1F("hist_D0_InvM", "Signal enhanced;m_h_D0_InvM;", 50, 1.81, 1.95);
51  m_h_delta_m = new TH1F("hist_delta_m", "Signal enhanced;delta_m;", 50, 0.14, 0.16);
52  // Soft pion
53  m_h_D0_softpi_PID_ALL_pion = new TH1F("hist_D0_softpi_PID_ALL_pion", "D0_softpi_PID_ALL_pion;D0_softpi_PID_ALL_pion;", 50, 0, 1);
54  m_h_D0_softpi_PID_SVD_pion = new TH1F("hist_D0_softpi_PID_SVD_pion", "D0_softpi_PID_SVD_pion;D0_softpi_PID_SVD_pion;", 50, 0, 1);
55  m_h_D0_softpi_PID_CDC_pion = new TH1F("hist_D0_softpi_PID_CDC_pion", "D0_softpi_PID_CDC_pion;D0_softpi_PID_CDC_pion;", 50, 0, 1);
56  m_h_D0_softpi_PID_TOP_pion = new TH1F("hist_D0_softpi_PID_TOP_pion", "D0_softpi_PID_TOP_pion;D0_softpi_PID_TOP_pion;", 50, 0, 1);
57  m_h_D0_softpi_PID_ARICH_pion = new TH1F("hist_D0_softpi_PID_ARICH_pion", "D0_softpi_PID_ARICH_pion;D0_softpi_PID_ARICH_pion;", 50,
58  0,
59  1);
60  m_h_D0_softpi_PID_ECL_pion = new TH1F("hist_D0_softpi_PID_ECL_pion", "D0_softpi_PID_ECL_pion;D0_softpi_PID_ECL_pion;", 50, 0, 1);
61  m_h_D0_softpi_PID_KLM_pion = new TH1F("hist_D0_softpi_PID_KLM_pion", "D0_softpi_PID_KLM_pion;D0_softpi_PID_KLM_pion;", 50, 0, 1);
62  m_h_sideband_D0_softpi_PID_ALL_pion = new TH1F("hist_sideband_D0_softpi_PID_ALL_pion",
63  "D0_softpi_PID_ALL_pion;D0_softpi_PID_ALL_pion;", 50, 0, 1);
64  m_h_sideband_D0_softpi_PID_SVD_pion = new TH1F("hist_sideband_D0_softpi_PID_SVD_pion",
65  "D0_softpi_PID_SVD_pion;D0_softpi_PID_SVD_pion;", 50, 0, 1);
66  m_h_sideband_D0_softpi_PID_CDC_pion = new TH1F("hist_sideband_D0_softpi_PID_CDC_pion",
67  "D0_softpi_PID_CDC_pion;D0_softpi_PID_CDC_pion;", 50, 0, 1);
68  m_h_sideband_D0_softpi_PID_TOP_pion = new TH1F("hist_sideband_D0_softpi_PID_TOP_pion",
69  "D0_softpi_PID_TOP_pion;D0_softpi_PID_TOP_pion;", 50, 0, 1);
70  m_h_sideband_D0_softpi_PID_ARICH_pion = new TH1F("hist_sideband_D0_softpi_PID_ARICH_pion",
71  "D0_softpi_PID_ARICH_pion;D0_softpi_PID_ARICH_pion;", 50, 0, 1);
72  m_h_sideband_D0_softpi_PID_ECL_pion = new TH1F("hist_sideband_D0_softpi_PID_ECL_pion",
73  "D0_softpi_PID_ECL_pion;D0_softpi_PID_ECL_pion;", 50, 0, 1);
74  m_h_sideband_D0_softpi_PID_KLM_pion = new TH1F("hist_sideband_D0_softpi_PID_KLM_pion",
75  "D0_softpi_PID_KLM_pion;D0_softpi_PID_KLM_pion;", 50, 0, 1);
76  // pi from D0
77  m_h_D0_pi_PID_ALL_pion = new TH1F("hist_D0_pi_PID_ALL_pion", "D0_pi_PID_ALL_pion;D0_pi_PID_ALL_pion;", 50, 0, 1);
78  m_h_D0_pi_PID_SVD_pion = new TH1F("hist_D0_pi_PID_SVD_pion", "D0_pi_PID_SVD_pion;D0_pi_PID_SVD_pion;", 50, 0, 1);
79  m_h_D0_pi_PID_CDC_pion = new TH1F("hist_D0_pi_PID_CDC_pion", "D0_pi_PID_CDC_pion;D0_pi_PID_CDC_pion;", 50, 0, 1);
80  m_h_D0_pi_PID_TOP_pion = new TH1F("hist_D0_pi_PID_TOP_pion", "D0_pi_PID_TOP_pion;D0_pi_PID_TOP_pion;", 50, 0, 1);
81  m_h_D0_pi_PID_ARICH_pion = new TH1F("hist_D0_pi_PID_ARICH_pion", "D0_pi_PID_ARICH_pion;D0_pi_PID_ARICH_pion;", 50, 0, 1);
82  m_h_D0_pi_PID_ECL_pion = new TH1F("hist_D0_pi_PID_ECL_pion", "D0_pi_PID_ECL_pion;D0_pi_PID_ECL_pion;", 50, 0, 1);
83  m_h_D0_pi_PID_KLM_pion = new TH1F("hist_D0_pi_PID_KLM_pion", "D0_pi_PID_KLM_pion;D0_pi_PID_KLM_pion;", 50, 0, 1);
84  m_h_sideband_D0_pi_PID_ALL_pion = new TH1F("hist_sideband_D0_pi_PID_ALL_pion", "D0_pi_PID_ALL_pion;D0_pi_PID_ALL_pion;", 50, 0, 1);
85  m_h_sideband_D0_pi_PID_SVD_pion = new TH1F("hist_sideband_D0_pi_PID_SVD_pion", "D0_pi_PID_SVD_pion;D0_pi_PID_SVD_pion;", 50, 0, 1);
86  m_h_sideband_D0_pi_PID_CDC_pion = new TH1F("hist_sideband_D0_pi_PID_CDC_pion", "D0_pi_PID_CDC_pion;D0_pi_PID_CDC_pion;", 50, 0, 1);
87  m_h_sideband_D0_pi_PID_TOP_pion = new TH1F("hist_sideband_D0_pi_PID_TOP_pion", "D0_pi_PID_TOP_pion;D0_pi_PID_TOP_pion;", 50, 0, 1);
88  m_h_sideband_D0_pi_PID_ARICH_pion = new TH1F("hist_sideband_D0_pi_PID_ARICH_pion", "D0_pi_PID_ARICH_pion;D0_pi_PID_ARICH_pion;", 50,
89  0, 1);
90  m_h_sideband_D0_pi_PID_ECL_pion = new TH1F("hist_sideband_D0_pi_PID_ECL_pion", "D0_pi_PID_ECL_pion;D0_pi_PID_ECL_pion;", 50, 0, 1);
91  m_h_sideband_D0_pi_PID_KLM_pion = new TH1F("hist_sideband_D0_pi_PID_KLM_pion", "D0_pi_PID_KLM_pion;D0_pi_PID_KLM_pion;", 50, 0, 1);
92  // K from D0
93  m_h_D0_K_PID_ALL_kaon = new TH1F("hist_D0_K_PID_ALL_kaon", "D0_K_PID_ALL_kaon;D0_K_PID_ALL_kaon;", 50, 0, 1);
94  m_h_D0_K_PID_SVD_kaon = new TH1F("hist_D0_K_PID_SVD_kaon", "D0_K_PID_SVD_kaon;D0_K_PID_SVD_kaon;", 50, 0, 1);
95  m_h_D0_K_PID_CDC_kaon = new TH1F("hist_D0_K_PID_CDC_kaon", "D0_K_PID_CDC_kaon;D0_K_PID_CDC_kaon;", 50, 0, 1);
96  m_h_D0_K_PID_TOP_kaon = new TH1F("hist_D0_K_PID_TOP_kaon", "D0_K_PID_TOP_kaon;D0_K_PID_TOP_kaon;", 50, 0, 1);
97  m_h_D0_K_PID_ARICH_kaon = new TH1F("hist_D0_K_PID_ARICH_kaon", "D0_K_PID_ARICH_kaon;D0_K_PID_ARICH_kaon;", 50, 0, 1);
98  m_h_D0_K_PID_ECL_kaon = new TH1F("hist_D0_K_PID_ECL_kaon", "D0_K_PID_ECL_kaon;D0_K_PID_ECL_kaon;", 50, 0, 1);
99  m_h_D0_K_PID_KLM_kaon = new TH1F("hist_D0_K_PID_KLM_kaon", "D0_K_PID_KLM_kaon;D0_K_PID_KLM_kaon;", 50, 0, 1);
100  m_h_sideband_D0_K_PID_ALL_kaon = new TH1F("hist_sideband_D0_K_PID_ALL_kaon", "D0_K_PID_ALL_kaon;D0_K_PID_ALL_kaon;", 50, 0, 1);
101  m_h_sideband_D0_K_PID_SVD_kaon = new TH1F("hist_sideband_D0_K_PID_SVD_kaon", "D0_K_PID_SVD_kaon;D0_K_PID_SVD_kaon;", 50, 0, 1);
102  m_h_sideband_D0_K_PID_CDC_kaon = new TH1F("hist_sideband_D0_K_PID_CDC_kaon", "D0_K_PID_CDC_kaon;D0_K_PID_CDC_kaon;", 50, 0, 1);
103  m_h_sideband_D0_K_PID_TOP_kaon = new TH1F("hist_sideband_D0_K_PID_TOP_kaon", "D0_K_PID_TOP_kaon;D0_K_PID_TOP_kaon;", 50, 0, 1);
104  m_h_sideband_D0_K_PID_ARICH_kaon = new TH1F("hist_sideband_D0_K_PID_ARICH_kaon", "D0_K_PID_ARICH_kaon;D0_K_PID_ARICH_kaon;", 50, 0,
105  1);
106  m_h_sideband_D0_K_PID_ECL_kaon = new TH1F("hist_sideband_D0_K_PID_ECL_kaon", "D0_K_PID_ECL_kaon;D0_K_PID_ECL_kaon;", 50, 0, 1);
107  m_h_sideband_D0_K_PID_KLM_kaon = new TH1F("hist_sideband_D0_K_PID_KLM_kaon", "D0_K_PID_KLM_kaon;D0_K_PID_KLM_kaon;", 50, 0, 1);
108 
109  oldDir->cd();
110 }
111 
112 
114 {
115  REG_HISTOGRAM
116 
118  result.isOptional();
119 }
120 
122 {
123  m_h_D0_InvM->Reset();
124  m_h_delta_m->Reset();
132  m_h_D0_pi_PID_ALL_pion->Reset();
133  m_h_D0_pi_PID_SVD_pion->Reset();
134  m_h_D0_pi_PID_CDC_pion->Reset();
135  m_h_D0_pi_PID_TOP_pion->Reset();
136  m_h_D0_pi_PID_ARICH_pion->Reset();
137  m_h_D0_pi_PID_ECL_pion->Reset();
138  m_h_D0_pi_PID_KLM_pion->Reset();
139  m_h_D0_K_PID_ALL_kaon->Reset();
140  m_h_D0_K_PID_SVD_kaon->Reset();
141  m_h_D0_K_PID_CDC_kaon->Reset();
142  m_h_D0_K_PID_TOP_kaon->Reset();
143  m_h_D0_K_PID_ARICH_kaon->Reset();
144  m_h_D0_K_PID_ECL_kaon->Reset();
145  m_h_D0_K_PID_KLM_kaon->Reset();
167 }
168 
170 {
171 
173  if (!result.isValid()) {
174  B2WARNING("SoftwareTriggerResult object not available but needed to select events for the histograms.");
175  return;
176  }
177 
178  const std::map<std::string, int>& results = result->getResults();
179  if (results.find(m_triggerIdentifier) == results.end()) {
180  B2WARNING("PhysicsObjectsMiraBelleDst: Can't find trigger identifier: " << m_triggerIdentifier);
181  return;
182  }
183 
184  // apply software trigger
185  const bool accepted = (result->getResult(m_triggerIdentifier) == SoftwareTriggerCutResult::c_accept);
186  if (accepted == false) return;
187 
188  // get D* candidates
190 
191  for (unsigned int i = 0; i < dstParticles->getListSize(); i++) {
192  const Particle* dst = dstParticles->getParticle(i);
193  const Particle* d0 = dst->getDaughter(0);
194  float dst_mass = dst->getMass();
195  float d0_mass = d0->getMass();
196  float delta_m = dst_mass - d0_mass;
197  if (delta_m < 0.14 || 0.16 < delta_m || d0_mass < 1.81 || 1.95 < d0_mass) continue;
198  // True if the event is in signal region
199  bool isSignal_D0_InvM(false), isSignal_delta_m(false);
200  // D0 and D*+ mass
201  if (0.143 < delta_m && delta_m < 0.147) {
202  m_h_D0_InvM->Fill(d0_mass);
203  isSignal_D0_InvM = true;
204  }
205  if (1.83 < d0_mass && d0_mass < 1.89) {
206  m_h_delta_m->Fill(delta_m);
207  isSignal_delta_m = true;
208  }
209  const PIDLikelihood* pid_K = d0->getDaughter(0)->getPIDLikelihood();
210  const PIDLikelihood* pid_Pi = d0->getDaughter(1)->getPIDLikelihood();
211  const PIDLikelihood* pid_softPi = dst->getDaughter(1)->getPIDLikelihood();
212 
213  if (pid_K != NULL && pid_Pi != NULL && pid_softPi != NULL) {
214  if (isSignal_D0_InvM && isSignal_delta_m) {
215  // Signal region
216  // PID of K
219  1., Const::SVD));
221  1., Const::CDC));
223  1., Const::TOP));
225  1., Const::ARICH));
227  1., Const::ECL));
229  1., Const::KLM));
230  // PID of pi
232  if (pid_Pi->isAvailable(Const::SVD)) m_h_D0_pi_PID_SVD_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
233  Belle2::Const::kaon, 1., Const::SVD));
234  if (pid_Pi->isAvailable(Const::CDC)) m_h_D0_pi_PID_CDC_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
235  Belle2::Const::kaon, 1., Const::CDC));
236  if (pid_Pi->isAvailable(Const::TOP)) m_h_D0_pi_PID_TOP_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
237  Belle2::Const::kaon, 1., Const::TOP));
238  if (pid_Pi->isAvailable(Const::ARICH)) m_h_D0_pi_PID_ARICH_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
239  Belle2::Const::kaon, 1., Const::ARICH));
240  if (pid_Pi->isAvailable(Const::ECL)) m_h_D0_pi_PID_ECL_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
241  Belle2::Const::kaon, 1., Const::ECL));
242  if (pid_Pi->isAvailable(Const::KLM)) m_h_D0_pi_PID_KLM_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
243  Belle2::Const::kaon, 1., Const::KLM));
244  // PID of soft pi
246  if (pid_softPi->isAvailable(Const::SVD)) m_h_D0_softpi_PID_SVD_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
247  Belle2::Const::kaon, 1., Const::SVD));
248  if (pid_softPi->isAvailable(Const::CDC)) m_h_D0_softpi_PID_CDC_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
249  Belle2::Const::kaon, 1., Const::CDC));
250  if (pid_softPi->isAvailable(Const::TOP)) m_h_D0_softpi_PID_TOP_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
251  Belle2::Const::kaon, 1., Const::TOP));
252  if (pid_softPi->isAvailable(Const::ARICH)) m_h_D0_softpi_PID_ARICH_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
253  Belle2::Const::kaon, 1., Const::ARICH));
254  if (pid_softPi->isAvailable(Const::ECL)) m_h_D0_softpi_PID_ECL_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
255  Belle2::Const::kaon, 1., Const::ECL));
256  if (pid_softPi->isAvailable(Const::KLM)) m_h_D0_softpi_PID_KLM_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
257  Belle2::Const::kaon, 1., Const::KLM));
258  } else {
259  // Sideband region for BG subtraction
260  // PID of K
263  Belle2::Const::pion, 1., Const::SVD));
265  Belle2::Const::pion, 1., Const::CDC));
267  Belle2::Const::pion, 1., Const::TOP));
268  if (pid_K->isAvailable(Const::ARICH)) m_h_sideband_D0_K_PID_ARICH_kaon ->Fill(pid_K->getProbability(Belle2::Const::kaon,
269  Belle2::Const::pion, 1., Const::ARICH));
271  Belle2::Const::pion, 1., Const::ECL));
273  Belle2::Const::pion, 1., Const::KLM));
274  // PID of pi
276  if (pid_Pi->isAvailable(Const::SVD)) m_h_sideband_D0_pi_PID_SVD_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
277  Belle2::Const::kaon, 1., Const::SVD));
278  if (pid_Pi->isAvailable(Const::CDC)) m_h_sideband_D0_pi_PID_CDC_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
279  Belle2::Const::kaon, 1., Const::CDC));
280  if (pid_Pi->isAvailable(Const::TOP)) m_h_sideband_D0_pi_PID_TOP_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
281  Belle2::Const::kaon, 1., Const::TOP));
282  if (pid_Pi->isAvailable(Const::ARICH)) m_h_sideband_D0_pi_PID_ARICH_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
283  Belle2::Const::kaon, 1., Const::ARICH));
284  if (pid_Pi->isAvailable(Const::ECL)) m_h_sideband_D0_pi_PID_ECL_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
285  Belle2::Const::kaon, 1., Const::ECL));
286  if (pid_Pi->isAvailable(Const::KLM)) m_h_sideband_D0_pi_PID_KLM_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
287  Belle2::Const::kaon, 1., Const::KLM));
288  // PID of soft pi
290  if (pid_softPi->isAvailable(Const::SVD)) m_h_sideband_D0_softpi_PID_SVD_pion ->Fill(pid_softPi->getProbability(
291  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::SVD));
292  if (pid_softPi->isAvailable(Const::CDC)) m_h_sideband_D0_softpi_PID_CDC_pion ->Fill(pid_softPi->getProbability(
293  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::CDC));
294  if (pid_softPi->isAvailable(Const::TOP)) m_h_sideband_D0_softpi_PID_TOP_pion ->Fill(pid_softPi->getProbability(
295  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::TOP));
296  if (pid_softPi->isAvailable(Const::ARICH)) m_h_sideband_D0_softpi_PID_ARICH_pion ->Fill(pid_softPi->getProbability(
297  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::ARICH));
298  if (pid_softPi->isAvailable(Const::ECL)) m_h_sideband_D0_softpi_PID_ECL_pion ->Fill(pid_softPi->getProbability(
299  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::ECL));
300  if (pid_softPi->isAvailable(Const::KLM)) m_h_sideband_D0_softpi_PID_KLM_pion ->Fill(pid_softPi->getProbability(
301  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::KLM));
302  }
303  }
304  }
305 }
306 
307 // void PhysicsObjectsMiraBelleDstModule::getPIDInformationMiraBelle(Particle* part, float pid[3][7])
308 // {
309 // PIDLikelihood* I_like_coffee = part->getPIDLikelihood();
310 // pid[0][0] = I_like_coffee->getProbability();
311 // }
312 
314 {
315 }
316 
318 {
319 }
320 
static const ChargedStable pion
charged pion particle
Definition: Const.h:542
static const ChargedStable kaon
charged kaon particle
Definition: Const.h:543
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Class to collect log likelihoods from TOP, ARICH, dEdx, ECL and KLM aimed for output to mdst includes...
Definition: PIDLikelihood.h:26
bool isAvailable(Const::PIDDetectorSet set) const
Check whether PID information from a given set of detectors is available.
Definition: PIDLikelihood.h:50
double getProbability(const Const::ChargedStable &p1, const Const::ChargedStable &p2, Const::PIDDetectorSet set=Const::PIDDetectorSet::set()) const
Return combined likelihood probability for a particle being p1 and not p2, assuming equal prior proba...
Definition: PIDLikelihood.h:83
Class to store reconstructed particles.
Definition: Particle.h:74
float getMass() const
Returns invariant mass (= nominal for FS particles)
Definition: Particle.h:445
const PIDLikelihood * getPIDLikelihood() const
Returns the pointer to the PIDLikelihood object that is related to the Track, which was used to creat...
Definition: Particle.cc:840
const Particle * getDaughter(unsigned i) const
Returns a pointer to the i-th daughter particle.
Definition: Particle.cc:639
DQM modules to monitor D* related variables.
TH1F * m_h_sideband_D0_pi_PID_CDC_pion
PID of CDC for pion in sideband.
TH1F * m_h_D0_softpi_PID_ARICH_pion
PID of ARICH for soft pion.
TH1F * m_h_sideband_D0_pi_PID_KLM_pion
PID of KLM for pion in sideband.
TH1F * m_h_sideband_D0_K_PID_ARICH_kaon
PID of ARICH for kaon in sideband.
TH1F * m_h_sideband_D0_softpi_PID_KLM_pion
PID of KLM for soft pion in sideband.
TH1F * m_h_D0_softpi_PID_KLM_pion
PID of KLM for soft pion.
std::string m_dstListName
Name of the mu+ particle list.
TH1F * m_h_sideband_D0_pi_PID_SVD_pion
PID of SVD for pion in sideband.
TH1F * m_h_sideband_D0_K_PID_KLM_kaon
PID of KLM for kaon in sideband.
TH1F * m_h_sideband_D0_softpi_PID_ARICH_pion
PID of ARICH for soft pion in sideband.
TH1F * m_h_D0_softpi_PID_TOP_pion
PID of TOP for soft pion.
TH1F * m_h_sideband_D0_K_PID_SVD_kaon
PID of SVD for kaon in sideband.
void event() override
This method is called for each event.
void endRun() override
This method is called if the current run ends.
TH1F * m_h_sideband_D0_softpi_PID_SVD_pion
PID of SVD for soft pion in sideband.
void terminate() override
This method is called at the end of the event processing.
TH1F * m_h_sideband_D0_K_PID_TOP_kaon
PID of TOP for kaon in sideband.
TH1F * m_h_sideband_D0_pi_PID_TOP_pion
PID of TOP for pion in sideband.
std::string m_triggerIdentifier
Trigger identifier string used to select events for the histograms.
TH1F * m_h_sideband_D0_softpi_PID_ECL_pion
PID of ECL for soft pion in sideband.
TH1F * m_h_delta_m
Mass difference b/w D*+ and D0.
TH1F * m_h_D0_softpi_PID_ECL_pion
PID of ECL for soft pion.
TH1F * m_h_sideband_D0_softpi_PID_ALL_pion
PID of all detectors for soft pion in sideband.
TH1F * m_h_sideband_D0_pi_PID_ALL_pion
PID of all detectors for pion in sideband.
TH1F * m_h_D0_softpi_PID_ALL_pion
PID of all detectors for soft pion.
TH1F * m_h_D0_softpi_PID_SVD_pion
PID of SVD for soft pion.
void beginRun() override
Called when entering a new run.
TH1F * m_h_sideband_D0_K_PID_ECL_kaon
PID of ECL for kaon in sideband.
TH1F * m_h_sideband_D0_pi_PID_ARICH_pion
PID of ARICH for pion in sideband.
TH1F * m_h_D0_softpi_PID_CDC_pion
PID of CDC for soft pion.
TH1F * m_h_sideband_D0_K_PID_ALL_kaon
PID of all detectors for kaon in sideband.
TH1F * m_h_sideband_D0_softpi_PID_TOP_pion
PID of TOP for soft pion in sideband.
TH1F * m_h_sideband_D0_pi_PID_ECL_pion
PID of ECL for pion in sideband.
TH1F * m_h_sideband_D0_K_PID_CDC_kaon
PID of CDC for kaon in sideband.
TH1F * m_h_sideband_D0_softpi_PID_CDC_pion
PID of CDC for soft pion in sideband.
TH1F * m_h_D0_K_PID_ALL_kaon
PID of all detectors for kaon.
void defineHisto() override
Definition of the histograms.
Type-safe access to single objects in the data store.
Definition: StoreObjPtr.h:95
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:650
@ c_accept
Accept this event.
Abstract base class for different kinds of events.