Belle II Software development
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 <framework/datastore/StoreObjPtr.h>
12#include <mdst/dataobjects/PIDLikelihood.h>
13#include <mdst/dataobjects/SoftwareTriggerResult.h>
14#include <TDirectory.h>
15#include <map>
16
17using namespace Belle2;
18
19REG_MODULE(PhysicsObjectsMiraBelleDst);
20
22{
23 setDescription("Monitor Physics Objects Quality");
25
26 addParam("TriggerIdentifier", m_triggerIdentifier,
27 "Trigger identifier string used to select events for the histograms", std::string("software_trigger_cut&skim&accept_hadron"));
28 addParam("DstListName", m_dstListName, "Name of the D*+ particle list", std::string("D*+:physMiraBelle"));
29}
30
32{
33 TDirectory* oldDir = gDirectory;
34 oldDir->mkdir("PhysicsObjectsMiraBelleDst");
35 oldDir->cd("PhysicsObjectsMiraBelleDst");
36
37 // Mass distributions
38 m_h_D0_InvM = new TH1F("hist_D0_InvM", "Signal enhanced;m_h_D0_InvM;", 50, 1.81, 1.95);
39 m_h_delta_m = new TH1F("hist_delta_m", "Signal enhanced;delta_m;", 50, 0.14, 0.16);
40 // Soft pion
41 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);
42 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);
43 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);
44 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);
45 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,
46 0,
47 1);
48 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);
49 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);
50 m_h_sideband_D0_softpi_PID_ALL_pion = new TH1F("hist_sideband_D0_softpi_PID_ALL_pion",
51 "D0_softpi_PID_ALL_pion;D0_softpi_PID_ALL_pion;", 50, 0, 1);
52 m_h_sideband_D0_softpi_PID_SVD_pion = new TH1F("hist_sideband_D0_softpi_PID_SVD_pion",
53 "D0_softpi_PID_SVD_pion;D0_softpi_PID_SVD_pion;", 50, 0, 1);
54 m_h_sideband_D0_softpi_PID_CDC_pion = new TH1F("hist_sideband_D0_softpi_PID_CDC_pion",
55 "D0_softpi_PID_CDC_pion;D0_softpi_PID_CDC_pion;", 50, 0, 1);
56 m_h_sideband_D0_softpi_PID_TOP_pion = new TH1F("hist_sideband_D0_softpi_PID_TOP_pion",
57 "D0_softpi_PID_TOP_pion;D0_softpi_PID_TOP_pion;", 50, 0, 1);
58 m_h_sideband_D0_softpi_PID_ARICH_pion = new TH1F("hist_sideband_D0_softpi_PID_ARICH_pion",
59 "D0_softpi_PID_ARICH_pion;D0_softpi_PID_ARICH_pion;", 50, 0, 1);
60 m_h_sideband_D0_softpi_PID_ECL_pion = new TH1F("hist_sideband_D0_softpi_PID_ECL_pion",
61 "D0_softpi_PID_ECL_pion;D0_softpi_PID_ECL_pion;", 50, 0, 1);
62 m_h_sideband_D0_softpi_PID_KLM_pion = new TH1F("hist_sideband_D0_softpi_PID_KLM_pion",
63 "D0_softpi_PID_KLM_pion;D0_softpi_PID_KLM_pion;", 50, 0, 1);
64 // pi from D0
65 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);
66 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);
67 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);
68 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);
69 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);
70 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);
71 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);
72 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);
73 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);
74 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);
75 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);
76 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,
77 0, 1);
78 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);
79 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);
80 // K from D0
81 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);
82 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);
83 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);
84 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);
85 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);
86 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);
87 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);
88 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);
89 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);
90 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);
91 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);
92 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,
93 1);
94 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);
95 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);
96
97 oldDir->cd();
98}
99
100
102{
103 REG_HISTOGRAM
104
106 result.isOptional();
107}
108
110{
111 m_h_D0_InvM->Reset();
112 m_h_delta_m->Reset();
120 m_h_D0_pi_PID_ALL_pion->Reset();
121 m_h_D0_pi_PID_SVD_pion->Reset();
122 m_h_D0_pi_PID_CDC_pion->Reset();
123 m_h_D0_pi_PID_TOP_pion->Reset();
125 m_h_D0_pi_PID_ECL_pion->Reset();
126 m_h_D0_pi_PID_KLM_pion->Reset();
127 m_h_D0_K_PID_ALL_kaon->Reset();
128 m_h_D0_K_PID_SVD_kaon->Reset();
129 m_h_D0_K_PID_CDC_kaon->Reset();
130 m_h_D0_K_PID_TOP_kaon->Reset();
132 m_h_D0_K_PID_ECL_kaon->Reset();
133 m_h_D0_K_PID_KLM_kaon->Reset();
155}
156
158{
159
161 if (!result.isValid()) {
162 B2WARNING("SoftwareTriggerResult object not available but needed to select events for the histograms.");
163 return;
164 }
165
166 const std::map<std::string, int>& results = result->getResults();
167 if (results.find(m_triggerIdentifier) == results.end()) {
168 B2WARNING("PhysicsObjectsMiraBelleDst: Can't find trigger identifier: " << m_triggerIdentifier);
169 return;
170 }
171
172 // apply software trigger
173 const bool accepted = (result->getResult(m_triggerIdentifier) == SoftwareTriggerCutResult::c_accept);
174 if (accepted == false) return;
175
176 // get D* candidates
178
179 for (unsigned int i = 0; i < dstParticles->getListSize(); i++) {
180 const Particle* dst = dstParticles->getParticle(i);
181 const Particle* d0 = dst->getDaughter(0);
182 float dst_mass = dst->getMass();
183 float d0_mass = d0->getMass();
184 float delta_m = dst_mass - d0_mass;
185 if (delta_m < 0.14 || 0.16 < delta_m || d0_mass < 1.81 || 1.95 < d0_mass) continue;
186 // True if the event is in signal region
187 bool isSignal_D0_InvM(false), isSignal_delta_m(false);
188 // D0 and D*+ mass
189 if (0.143 < delta_m && delta_m < 0.147) {
190 m_h_D0_InvM->Fill(d0_mass);
191 isSignal_D0_InvM = true;
192 }
193 if (1.83 < d0_mass && d0_mass < 1.89) {
194 m_h_delta_m->Fill(delta_m);
195 isSignal_delta_m = true;
196 }
197 const PIDLikelihood* pid_K = d0->getDaughter(0)->getPIDLikelihood();
198 const PIDLikelihood* pid_Pi = d0->getDaughter(1)->getPIDLikelihood();
199 const PIDLikelihood* pid_softPi = dst->getDaughter(1)->getPIDLikelihood();
200
201 if (pid_K != NULL && pid_Pi != NULL && pid_softPi != NULL) {
202 if (isSignal_D0_InvM && isSignal_delta_m) {
203 // Signal region
204 // PID of K
207 1., Const::SVD));
209 1., Const::CDC));
211 1., Const::TOP));
213 1., Const::ARICH));
215 1., Const::ECL));
217 1., Const::KLM));
218 // PID of pi
220 if (pid_Pi->isAvailable(Const::SVD)) m_h_D0_pi_PID_SVD_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
221 Belle2::Const::kaon, 1., Const::SVD));
222 if (pid_Pi->isAvailable(Const::CDC)) m_h_D0_pi_PID_CDC_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
223 Belle2::Const::kaon, 1., Const::CDC));
224 if (pid_Pi->isAvailable(Const::TOP)) m_h_D0_pi_PID_TOP_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
225 Belle2::Const::kaon, 1., Const::TOP));
226 if (pid_Pi->isAvailable(Const::ARICH)) m_h_D0_pi_PID_ARICH_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
227 Belle2::Const::kaon, 1., Const::ARICH));
228 if (pid_Pi->isAvailable(Const::ECL)) m_h_D0_pi_PID_ECL_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
229 Belle2::Const::kaon, 1., Const::ECL));
230 if (pid_Pi->isAvailable(Const::KLM)) m_h_D0_pi_PID_KLM_pion ->Fill(pid_Pi->getProbability(Belle2::Const::pion,
231 Belle2::Const::kaon, 1., Const::KLM));
232 // PID of soft pi
234 if (pid_softPi->isAvailable(Const::SVD)) m_h_D0_softpi_PID_SVD_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
235 Belle2::Const::kaon, 1., Const::SVD));
236 if (pid_softPi->isAvailable(Const::CDC)) m_h_D0_softpi_PID_CDC_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
237 Belle2::Const::kaon, 1., Const::CDC));
238 if (pid_softPi->isAvailable(Const::TOP)) m_h_D0_softpi_PID_TOP_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
239 Belle2::Const::kaon, 1., Const::TOP));
240 if (pid_softPi->isAvailable(Const::ARICH)) m_h_D0_softpi_PID_ARICH_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
241 Belle2::Const::kaon, 1., Const::ARICH));
242 if (pid_softPi->isAvailable(Const::ECL)) m_h_D0_softpi_PID_ECL_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
243 Belle2::Const::kaon, 1., Const::ECL));
244 if (pid_softPi->isAvailable(Const::KLM)) m_h_D0_softpi_PID_KLM_pion ->Fill(pid_softPi->getProbability(Belle2::Const::pion,
245 Belle2::Const::kaon, 1., Const::KLM));
246 } else {
247 // Sideband region for BG subtraction
248 // PID of K
251 Belle2::Const::pion, 1., Const::SVD));
253 Belle2::Const::pion, 1., Const::CDC));
255 Belle2::Const::pion, 1., Const::TOP));
257 Belle2::Const::pion, 1., Const::ARICH));
259 Belle2::Const::pion, 1., Const::ECL));
261 Belle2::Const::pion, 1., Const::KLM));
262 // PID of pi
265 Belle2::Const::kaon, 1., Const::SVD));
267 Belle2::Const::kaon, 1., Const::CDC));
269 Belle2::Const::kaon, 1., Const::TOP));
271 Belle2::Const::kaon, 1., Const::ARICH));
273 Belle2::Const::kaon, 1., Const::ECL));
275 Belle2::Const::kaon, 1., Const::KLM));
276 // PID of soft pi
278 if (pid_softPi->isAvailable(Const::SVD)) m_h_sideband_D0_softpi_PID_SVD_pion ->Fill(pid_softPi->getProbability(
279 Belle2::Const::pion, Belle2::Const::kaon, 1., Const::SVD));
280 if (pid_softPi->isAvailable(Const::CDC)) m_h_sideband_D0_softpi_PID_CDC_pion ->Fill(pid_softPi->getProbability(
281 Belle2::Const::pion, Belle2::Const::kaon, 1., Const::CDC));
282 if (pid_softPi->isAvailable(Const::TOP)) m_h_sideband_D0_softpi_PID_TOP_pion ->Fill(pid_softPi->getProbability(
283 Belle2::Const::pion, Belle2::Const::kaon, 1., Const::TOP));
284 if (pid_softPi->isAvailable(Const::ARICH)) m_h_sideband_D0_softpi_PID_ARICH_pion ->Fill(pid_softPi->getProbability(
285 Belle2::Const::pion, Belle2::Const::kaon, 1., Const::ARICH));
286 if (pid_softPi->isAvailable(Const::ECL)) m_h_sideband_D0_softpi_PID_ECL_pion ->Fill(pid_softPi->getProbability(
287 Belle2::Const::pion, Belle2::Const::kaon, 1., Const::ECL));
288 if (pid_softPi->isAvailable(Const::KLM)) m_h_sideband_D0_softpi_PID_KLM_pion ->Fill(pid_softPi->getProbability(
289 Belle2::Const::pion, Belle2::Const::kaon, 1., Const::KLM));
290 }
291 }
292 }
293}
294
295// void PhysicsObjectsMiraBelleDstModule::getPIDInformationMiraBelle(Particle* part, float pid[3][7])
296// {
297// PIDLikelihood* I_like_coffee = part->getPIDLikelihood();
298// pid[0][0] = I_like_coffee->getProbability();
299// }
static const ChargedStable pion
charged pion particle
Definition Const.h:662
static const ChargedStable kaon
charged kaon particle
Definition Const.h:663
HistoModule()
Constructor.
Definition HistoModule.h:32
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...
bool isAvailable(Const::PIDDetectorSet set=Const::PIDDetectorSet::set()) const
Check whether PID information is available for at least one of the detectors in a given set.
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...
Class to store reconstructed particles.
Definition Particle.h:76
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:947
const Particle * getDaughter(unsigned i) const
Returns a pointer to the i-th daughter particle.
Definition Particle.cc:662
double getMass() const
Returns invariant mass (= nominal for FS particles)
Definition Particle.h:527
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.
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_sideband_D0_K_PID_SVD_kaon
PID of SVD for kaon in sideband.
void event() override
This method is called for each event.
TH1F * m_h_sideband_D0_softpi_PID_SVD_pion
PID of SVD for soft pion in sideband.
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_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.
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_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
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:559
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition Module.h:649
Abstract base class for different kinds of events.