9 #include <dqm/modules/PhysicsObjectsMiraBelle/PhysicsObjectsMiraBelleDst2Module.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>
35 PhysicsObjectsMiraBelleDst2Module::PhysicsObjectsMiraBelleDst2Module() :
HistoModule()
37 setDescription(
"Monitor Physics Objects Quality");
38 setPropertyFlags(c_ParallelProcessingCertified);
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"));
45 void PhysicsObjectsMiraBelleDst2Module::defineHisto()
47 TDirectory* oldDir = gDirectory;
48 oldDir->mkdir(
"PhysicsObjectsMiraBelleDst2")->cd();
50 m_h_D0_pi0_InvM =
new TH1F(
"hist_D0_pi0_InvM",
"#pi^{0} mass of D^{*}#rightarrowK#pi#pi^{0};D0_pi0_InvM;", 50, 0.09, 0.17);
73 if (!result.isValid()) {
74 B2WARNING(
"SoftwareTriggerResult object not available but needed to select events for the histograms.");
78 const std::map<std::string, int>& results = result->getResults();
80 B2WARNING(
"PhysicsObjectsMiraBelleDst2: Can't find trigger identifier: " <<
m_triggerIdentifier);
86 if (accepted ==
false)
return;
91 for (
unsigned int i = 0; i < dstParticles->getListSize(); i++) {
92 const Particle* dst = dstParticles->getParticle(i);
94 float dst_mass = dst->
getMass();
95 float d0_mass = d0->getMass();
96 float delta_m = dst_mass - d0_mass;
98 if (1.83 < d0_mass && d0_mass < 1.89 && 0.142 < delta_m && delta_m < 0.148) {
99 m_h_D0_pi0_InvM->Fill(Belle2::Variable::particleInvariantMassFromDaughters(d0->getDaughter(2)));
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Class to store reconstructed particles.
float getMass() const
Returns invariant mass (= nominal for FS particles)
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.
void initialize() override
Function for dynamic initialization of module.
void event() override
Function to process event record.
void endRun() override
Function to process end_run record.
void terminate() override
Function to terminate module.
std::string m_triggerIdentifier
Trigger identifier string used to select events for the histograms.
void beginRun() override
Function to process begin_run record.
TH1F * m_h_D0_pi0_InvM
Pi0 invariant mass for D0->Kpipi0.
Type-safe access to single objects in the data store.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
@ c_accept
Accept this event.
Abstract base class for different kinds of events.