Belle II Software  release-08-01-10
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");
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");
49  oldDir->cd("PhysicsObjectsMiraBelleDst");
50 
51  // Mass distributions
52  m_h_D0_InvM = new TH1F("hist_D0_InvM", "Signal enhanced;m_h_D0_InvM;", 50, 1.81, 1.95);
53  m_h_delta_m = new TH1F("hist_delta_m", "Signal enhanced;delta_m;", 50, 0.14, 0.16);
54  // Soft pion
55  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);
56  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);
57  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);
58  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);
59  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,
60  0,
61  1);
62  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);
63  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);
64  m_h_sideband_D0_softpi_PID_ALL_pion = new TH1F("hist_sideband_D0_softpi_PID_ALL_pion",
65  "D0_softpi_PID_ALL_pion;D0_softpi_PID_ALL_pion;", 50, 0, 1);
66  m_h_sideband_D0_softpi_PID_SVD_pion = new TH1F("hist_sideband_D0_softpi_PID_SVD_pion",
67  "D0_softpi_PID_SVD_pion;D0_softpi_PID_SVD_pion;", 50, 0, 1);
68  m_h_sideband_D0_softpi_PID_CDC_pion = new TH1F("hist_sideband_D0_softpi_PID_CDC_pion",
69  "D0_softpi_PID_CDC_pion;D0_softpi_PID_CDC_pion;", 50, 0, 1);
70  m_h_sideband_D0_softpi_PID_TOP_pion = new TH1F("hist_sideband_D0_softpi_PID_TOP_pion",
71  "D0_softpi_PID_TOP_pion;D0_softpi_PID_TOP_pion;", 50, 0, 1);
72  m_h_sideband_D0_softpi_PID_ARICH_pion = new TH1F("hist_sideband_D0_softpi_PID_ARICH_pion",
73  "D0_softpi_PID_ARICH_pion;D0_softpi_PID_ARICH_pion;", 50, 0, 1);
74  m_h_sideband_D0_softpi_PID_ECL_pion = new TH1F("hist_sideband_D0_softpi_PID_ECL_pion",
75  "D0_softpi_PID_ECL_pion;D0_softpi_PID_ECL_pion;", 50, 0, 1);
76  m_h_sideband_D0_softpi_PID_KLM_pion = new TH1F("hist_sideband_D0_softpi_PID_KLM_pion",
77  "D0_softpi_PID_KLM_pion;D0_softpi_PID_KLM_pion;", 50, 0, 1);
78  // pi from D0
79  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);
80  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);
81  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);
82  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);
83  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);
84  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);
85  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);
86  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);
87  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);
88  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);
89  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);
90  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,
91  0, 1);
92  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);
93  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);
94  // K from D0
95  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);
96  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);
97  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);
98  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);
99  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);
100  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);
101  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);
102  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);
103  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);
104  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);
105  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);
106  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,
107  1);
108  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);
109  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);
110 
111  oldDir->cd();
112 }
113 
114 
116 {
117  REG_HISTOGRAM
118 
120  result.isOptional();
121 }
122 
124 {
125  m_h_D0_InvM->Reset();
126  m_h_delta_m->Reset();
134  m_h_D0_pi_PID_ALL_pion->Reset();
135  m_h_D0_pi_PID_SVD_pion->Reset();
136  m_h_D0_pi_PID_CDC_pion->Reset();
137  m_h_D0_pi_PID_TOP_pion->Reset();
138  m_h_D0_pi_PID_ARICH_pion->Reset();
139  m_h_D0_pi_PID_ECL_pion->Reset();
140  m_h_D0_pi_PID_KLM_pion->Reset();
141  m_h_D0_K_PID_ALL_kaon->Reset();
142  m_h_D0_K_PID_SVD_kaon->Reset();
143  m_h_D0_K_PID_CDC_kaon->Reset();
144  m_h_D0_K_PID_TOP_kaon->Reset();
145  m_h_D0_K_PID_ARICH_kaon->Reset();
146  m_h_D0_K_PID_ECL_kaon->Reset();
147  m_h_D0_K_PID_KLM_kaon->Reset();
169 }
170 
172 {
173 
175  if (!result.isValid()) {
176  B2WARNING("SoftwareTriggerResult object not available but needed to select events for the histograms.");
177  return;
178  }
179 
180  const std::map<std::string, int>& results = result->getResults();
181  if (results.find(m_triggerIdentifier) == results.end()) {
182  B2WARNING("PhysicsObjectsMiraBelleDst: Can't find trigger identifier: " << m_triggerIdentifier);
183  return;
184  }
185 
186  // apply software trigger
187  const bool accepted = (result->getResult(m_triggerIdentifier) == SoftwareTriggerCutResult::c_accept);
188  if (accepted == false) return;
189 
190  // get D* candidates
192 
193  for (unsigned int i = 0; i < dstParticles->getListSize(); i++) {
194  const Particle* dst = dstParticles->getParticle(i);
195  const Particle* d0 = dst->getDaughter(0);
196  float dst_mass = dst->getMass();
197  float d0_mass = d0->getMass();
198  float delta_m = dst_mass - d0_mass;
199  if (delta_m < 0.14 || 0.16 < delta_m || d0_mass < 1.81 || 1.95 < d0_mass) continue;
200  // True if the event is in signal region
201  bool isSignal_D0_InvM(false), isSignal_delta_m(false);
202  // D0 and D*+ mass
203  if (0.143 < delta_m && delta_m < 0.147) {
204  m_h_D0_InvM->Fill(d0_mass);
205  isSignal_D0_InvM = true;
206  }
207  if (1.83 < d0_mass && d0_mass < 1.89) {
208  m_h_delta_m->Fill(delta_m);
209  isSignal_delta_m = true;
210  }
211  const PIDLikelihood* pid_K = d0->getDaughter(0)->getPIDLikelihood();
212  const PIDLikelihood* pid_Pi = d0->getDaughter(1)->getPIDLikelihood();
213  const PIDLikelihood* pid_softPi = dst->getDaughter(1)->getPIDLikelihood();
214 
215  if (pid_K != NULL && pid_Pi != NULL && pid_softPi != NULL) {
216  if (isSignal_D0_InvM && isSignal_delta_m) {
217  // Signal region
218  // PID of K
221  1., Const::SVD));
223  1., Const::CDC));
225  1., Const::TOP));
227  1., Const::ARICH));
229  1., Const::ECL));
231  1., Const::KLM));
232  // PID of pi
234  if (pid_Pi->isAvailable(Const::SVD)) m_h_D0_pi_PID_SVD_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
235  Belle2::Const::kaon, 1., Const::SVD));
236  if (pid_Pi->isAvailable(Const::CDC)) m_h_D0_pi_PID_CDC_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
237  Belle2::Const::kaon, 1., Const::CDC));
238  if (pid_Pi->isAvailable(Const::TOP)) m_h_D0_pi_PID_TOP_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
239  Belle2::Const::kaon, 1., Const::TOP));
240  if (pid_Pi->isAvailable(Const::ARICH)) m_h_D0_pi_PID_ARICH_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
241  Belle2::Const::kaon, 1., Const::ARICH));
242  if (pid_Pi->isAvailable(Const::ECL)) m_h_D0_pi_PID_ECL_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
243  Belle2::Const::kaon, 1., Const::ECL));
244  if (pid_Pi->isAvailable(Const::KLM)) m_h_D0_pi_PID_KLM_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
245  Belle2::Const::kaon, 1., Const::KLM));
246  // PID of soft pi
248  if (pid_softPi->isAvailable(Const::SVD)) m_h_D0_softpi_PID_SVD_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
249  Belle2::Const::kaon, 1., Const::SVD));
250  if (pid_softPi->isAvailable(Const::CDC)) m_h_D0_softpi_PID_CDC_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
251  Belle2::Const::kaon, 1., Const::CDC));
252  if (pid_softPi->isAvailable(Const::TOP)) m_h_D0_softpi_PID_TOP_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
253  Belle2::Const::kaon, 1., Const::TOP));
254  if (pid_softPi->isAvailable(Const::ARICH)) m_h_D0_softpi_PID_ARICH_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
255  Belle2::Const::kaon, 1., Const::ARICH));
256  if (pid_softPi->isAvailable(Const::ECL)) m_h_D0_softpi_PID_ECL_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
257  Belle2::Const::kaon, 1., Const::ECL));
258  if (pid_softPi->isAvailable(Const::KLM)) m_h_D0_softpi_PID_KLM_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
259  Belle2::Const::kaon, 1., Const::KLM));
260  } else {
261  // Sideband region for BG subtraction
262  // PID of K
265  Belle2::Const::pion, 1., Const::SVD));
267  Belle2::Const::pion, 1., Const::CDC));
269  Belle2::Const::pion, 1., Const::TOP));
270  if (pid_K->isAvailable(Const::ARICH)) m_h_sideband_D0_K_PID_ARICH_kaon ->Fill(pid_K->getProbability(Belle2::Const::kaon,
271  Belle2::Const::pion, 1., Const::ARICH));
273  Belle2::Const::pion, 1., Const::ECL));
275  Belle2::Const::pion, 1., Const::KLM));
276  // PID of pi
278  if (pid_Pi->isAvailable(Const::SVD)) m_h_sideband_D0_pi_PID_SVD_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
279  Belle2::Const::kaon, 1., Const::SVD));
280  if (pid_Pi->isAvailable(Const::CDC)) m_h_sideband_D0_pi_PID_CDC_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
281  Belle2::Const::kaon, 1., Const::CDC));
282  if (pid_Pi->isAvailable(Const::TOP)) m_h_sideband_D0_pi_PID_TOP_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
283  Belle2::Const::kaon, 1., Const::TOP));
284  if (pid_Pi->isAvailable(Const::ARICH)) m_h_sideband_D0_pi_PID_ARICH_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
285  Belle2::Const::kaon, 1., Const::ARICH));
286  if (pid_Pi->isAvailable(Const::ECL)) m_h_sideband_D0_pi_PID_ECL_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
287  Belle2::Const::kaon, 1., Const::ECL));
288  if (pid_Pi->isAvailable(Const::KLM)) m_h_sideband_D0_pi_PID_KLM_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
289  Belle2::Const::kaon, 1., Const::KLM));
290  // PID of soft pi
292  if (pid_softPi->isAvailable(Const::SVD)) m_h_sideband_D0_softpi_PID_SVD_pion ->Fill(pid_softPi->getProbability(
293  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::SVD));
294  if (pid_softPi->isAvailable(Const::CDC)) m_h_sideband_D0_softpi_PID_CDC_pion ->Fill(pid_softPi->getProbability(
295  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::CDC));
296  if (pid_softPi->isAvailable(Const::TOP)) m_h_sideband_D0_softpi_PID_TOP_pion ->Fill(pid_softPi->getProbability(
297  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::TOP));
298  if (pid_softPi->isAvailable(Const::ARICH)) m_h_sideband_D0_softpi_PID_ARICH_pion ->Fill(pid_softPi->getProbability(
299  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::ARICH));
300  if (pid_softPi->isAvailable(Const::ECL)) m_h_sideband_D0_softpi_PID_ECL_pion ->Fill(pid_softPi->getProbability(
301  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::ECL));
302  if (pid_softPi->isAvailable(Const::KLM)) m_h_sideband_D0_softpi_PID_KLM_pion ->Fill(pid_softPi->getProbability(
303  Belle2::Const::pion, Belle2::Const::kaon, 1., Const::KLM));
304  }
305  }
306  }
307 }
308 
309 // void PhysicsObjectsMiraBelleDstModule::getPIDInformationMiraBelle(Particle* part, float pid[3][7])
310 // {
311 // PIDLikelihood* I_like_coffee = part->getPIDLikelihood();
312 // pid[0][0] = I_like_coffee->getProbability();
313 // }
314 
316 {
317 }
318 
320 {
321 }
322 
static const ChargedStable pion
charged pion particle
Definition: Const.h:652
static const ChargedStable kaon
charged kaon particle
Definition: Const.h:653
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
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:75
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:875
const Particle * getDaughter(unsigned i) const
Returns a pointer to the i-th daughter particle.
Definition: Particle.cc:635
double getMass() const
Returns invariant mass (= nominal for FS particles)
Definition: Particle.h:479
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:96
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.