 |
Belle II Software
release-05-01-25
|
11 #include <dqm/modules/PhysicsObjectsMiraBelle/PhysicsObjectsMiraBelleDstModule.h>
12 #include <analysis/dataobjects/ParticleList.h>
13 #include <analysis/variables/ContinuumSuppressionVariables.h>
14 #include <analysis/variables/TrackVariables.h>
15 #include <analysis/utility/PCmsLabTransform.h>
16 #include <analysis/variables/Variables.h>
17 #include <framework/datastore/StoreObjPtr.h>
18 #include <framework/datastore/StoreArray.h>
19 #include <mdst/dataobjects/Track.h>
20 #include <mdst/dataobjects/TrackFitResult.h>
21 #include <mdst/dataobjects/KLMCluster.h>
22 #include <mdst/dataobjects/HitPatternCDC.h>
23 #include <mdst/dataobjects/HitPatternVXD.h>
24 #include <mdst/dataobjects/EventLevelTrackingInfo.h>
25 #include <mdst/dataobjects/PIDLikelihood.h>
26 #include <top/variables/TOPDigitVariables.h>
27 #include <arich/modules/arichDQM/ARICHDQMModule.h>
28 #include <arich/dataobjects/ARICHLikelihood.h>
29 #include <mdst/dataobjects/SoftwareTriggerResult.h>
30 #include <TDirectory.h>
37 PhysicsObjectsMiraBelleDstModule::PhysicsObjectsMiraBelleDstModule() :
HistoModule()
43 "Trigger identifier string used to select events for the histograms", std::string(
"software_trigger_cut&skim&accept_hadron"));
44 addParam(
"DstListName",
m_dstListName,
"Name of the D*+ particle list", std::string(
"D*+:physMiraBelle"));
49 TDirectory* oldDir = gDirectory;
50 oldDir->mkdir(
"PhysicsObjectsMiraBelleDst")->cd();
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);
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);
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);
65 "D0_softpi_PID_ALL_pion;D0_softpi_PID_ALL_pion;", 50, 0, 1);
67 "D0_softpi_PID_SVD_pion;D0_softpi_PID_SVD_pion;", 50, 0, 1);
69 "D0_softpi_PID_CDC_pion;D0_softpi_PID_CDC_pion;", 50, 0, 1);
71 "D0_softpi_PID_TOP_pion;D0_softpi_PID_TOP_pion;", 50, 0, 1);
73 "D0_softpi_PID_ARICH_pion;D0_softpi_PID_ARICH_pion;", 50, 0, 1);
75 "D0_softpi_PID_ECL_pion;D0_softpi_PID_ECL_pion;", 50, 0, 1);
77 "D0_softpi_PID_KLM_pion;D0_softpi_PID_KLM_pion;", 50, 0, 1);
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);
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);
175 if (!result.isValid()) {
176 B2WARNING(
"SoftwareTriggerResult object not available but needed to select events for the histograms.");
180 const std::map<std::string, int>& results = result->getResults();
182 B2WARNING(
"PhysicsObjectsMiraBelleDst: Can't find trigger identifier: " <<
m_triggerIdentifier);
188 if (accepted ==
false)
return;
193 for (
unsigned int i = 0; i < dstParticles->getListSize(); i++) {
194 const Particle* dst = dstParticles->getParticle(i);
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;
201 bool isSignal_D0_InvM(
false), isSignal_delta_m(
false);
203 if (0.143 < delta_m && delta_m < 0.147) {
205 isSignal_D0_InvM =
true;
207 if (1.83 < d0_mass && d0_mass < 1.89) {
209 isSignal_delta_m =
true;
211 const PIDLikelihood* pid_K = d0->getDaughter(0)->getPIDLikelihood();
212 const PIDLikelihood* pid_Pi = d0->getDaughter(1)->getPIDLikelihood();
215 if (isSignal_D0_InvM && isSignal_delta_m) {
TH1F * m_h_sideband_D0_pi_PID_ECL_pion
PID of ECL for pion in sideband.
TH1F * m_h_D0_softpi_PID_ARICH_pion
PID of ARICH for soft pion.
TH1F * m_h_D0_K_PID_ALL_kaon
PID of all detectors for kaon.
std::string m_triggerIdentifier
Trigger identifier string used to select events for the histograms.
TH1F * m_h_D0_softpi_PID_ALL_pion
PID of all detectors for soft pion.
TH1F * m_h_D0_softpi_PID_TOP_pion
PID of TOP for soft pion.
TH1F * m_h_D0_pi_PID_SVD_pion
PID of SVD for pion.
TH1F * m_h_sideband_D0_pi_PID_CDC_pion
PID of CDC for pion in sideband.
TH1F * m_h_D0_K_PID_ECL_kaon
PID of ECL for kaon.
TH1F * m_h_D0_pi_PID_ECL_pion
PID of ECL for pion.
void setDescription(const std::string &description)
Sets the description of the module.
TH1F * m_h_sideband_D0_K_PID_ARICH_kaon
PID of ARICH for kaon in sideband.
TH1F * m_h_sideband_D0_K_PID_ECL_kaon
PID of ECL for kaon in sideband.
TH1F * m_h_D0_pi_PID_CDC_pion
PID of CDC for pion.
TH1F * m_h_D0_K_PID_TOP_kaon
PID of TOP for kaon.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
TH1F * m_h_sideband_D0_pi_PID_KLM_pion
PID of KLM for pion in sideband.
void event() override
Function to process event record.
TH1F * m_h_D0_softpi_PID_KLM_pion
PID of KLM for soft pion.
TH1F * m_h_sideband_D0_K_PID_CDC_kaon
PID of CDC for kaon in sideband.
TH1F * m_h_D0_K_PID_SVD_kaon
PID of SVD for kaon.
TH1F * m_h_D0_K_PID_CDC_kaon
PID of CDC for kaon.
TH1F * m_h_D0_softpi_PID_SVD_pion
PID of SVD for soft pion.
Class to collect log likelihoods from TOP, ARICH, dEdx, ECL and KLM aimed for output to mdst includes...
const Particle * getDaughter(unsigned i) const
Returns a pointer to the i-th daughter particle.
std::string m_dstListName
Name of the mu+ particle list.
TH1F * m_h_sideband_D0_softpi_PID_TOP_pion
PID of TOP for soft pion in sideband.
bool isAvailable(Const::PIDDetectorSet set) const
Check whether PID information from a given set of detectors is available.
TH1F * m_h_sideband_D0_softpi_PID_CDC_pion
PID of CDC for soft pion in sideband.
@ c_accept
Accept this event.
TH1F * m_h_sideband_D0_softpi_PID_SVD_pion
PID of SVD for soft pion in sideband.
static const ChargedStable kaon
charged kaon particle
TH1F * m_h_D0_InvM
D0 invariant mass.
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_ARICH_pion
PID of ARICH for pion in sideband.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
TH1F * m_h_D0_softpi_PID_ECL_pion
PID of ECL for soft pion.
static const ChargedStable pion
charged pion particle
TH1F * m_h_D0_pi_PID_ALL_pion
PID of all for pion.
const PIDLikelihood * getPIDLikelihood() const
Returns the pointer to the PIDLikelihood object that is related to the Track, which was used to creat...
TH1F * m_h_D0_pi_PID_ARICH_pion
PID of ARICH for pion.
void beginRun() override
Function to process begin_run record.
TH1F * m_h_sideband_D0_pi_PID_ALL_pion
PID of all detectors for pion in sideband.
float getMass() const
Returns invariant mass (= nominal for FS particles)
Abstract base class for different kinds of events.
Type-safe access to single objects in the data store.
TH1F * m_h_sideband_D0_softpi_PID_ECL_pion
PID of ECL for soft pion in sideband.
TH1F * m_h_sideband_D0_pi_PID_SVD_pion
PID of SVD for pion in sideband.
TH1F * m_h_D0_pi_PID_KLM_pion
PID of KLM for pion.
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_D0_K_PID_ARICH_kaon
PID of ARICH for kaon.
TH1F * m_h_sideband_D0_K_PID_SVD_kaon
PID of SVD for kaon in sideband.
TH1F * m_h_D0_K_PID_KLM_kaon
PID of KLM for kaon.
std::string m_dstListName
Name of the mu+ particle list.
void initialize() override
Function for dynamic initialization of module.
TH1F * m_h_D0_softpi_PID_CDC_pion
PID of CDC for soft pion.
void defineHisto() override
Function to define histograms.
TH1F * m_h_delta_m
Mass difference b/w D*+ and D0.
Class to store reconstructed particles.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
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_ARICH_pion
PID of ARICH for soft pion in sideband.
TH1F * m_h_D0_pi_PID_TOP_pion
PID of TOP for pion.
void endRun() override
Function to process end_run record.
TH1F * m_h_sideband_D0_softpi_PID_KLM_pion
PID of KLM for soft pion in sideband.
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
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...
TH1F * m_h_sideband_D0_K_PID_KLM_kaon
PID of KLM for kaon in sideband.
TH1F * m_h_sideband_D0_K_PID_ALL_kaon
PID of all detectors for kaon in sideband.