Belle II Software  release-06-00-14
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 
35 PhysicsObjectsMiraBelleDstModule::PhysicsObjectsMiraBelleDstModule() : HistoModule()
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 
45 void PhysicsObjectsMiraBelleDstModule::defineHisto()
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
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.
void initialize() override
Function for dynamic initialization of module.
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
Function to process event record.
void endRun() override
Function to process end_run record.
TH1F * m_h_sideband_D0_softpi_PID_SVD_pion
PID of SVD for soft pion in sideband.
void terminate() override
Function to terminate module.
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
Function to process begin_run record.
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.
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.