13 #include <dqm/modules/PhysicsObjectsDQM/PhysicsObjectsDQMModule.h>
14 #include <analysis/dataobjects/ParticleList.h>
15 #include <analysis/variables/EventShapeVariables.h>
16 #include <framework/datastore/StoreObjPtr.h>
17 #include <framework/gearbox/Const.h>
18 #include <mdst/dataobjects/SoftwareTriggerResult.h>
19 #include <TDirectory.h>
41 "Trigger identifier string used to select events for the histograms", std::string(
"software_trigger_cut&skim&accept_hadron"));
43 "Trigger identifier string used to select events for the mumu histograms",
44 std::string(
"software_trigger_cut&skim&accept_mumutight"));
52 TDirectory* oldDir = gDirectory;
53 oldDir->mkdir(
"PhysicsObjects")->cd();
55 m_h_mKS0 =
new TH1F(
"mKS0",
"KS0 Invariant Mass", 20, 0.48, 0.52);
56 m_h_mKS0->SetXTitle(
"M(K_{S}^{0}) [GeV]");
58 m_h_mPI0 =
new TH1F(
"mPI0",
"pi0 Invariant Mass", 25, 0.10, 0.15);
59 m_h_mPI0->SetXTitle(
"M(#pi^{0}) [GeV]");
61 m_h_mUPS =
new TH1F(
"mUPS",
"Ups Invariant Mass", 500, 9, 12);
62 m_h_mUPS->SetXTitle(
"M(#mu#mu) [GeV]");
64 m_h_R2 =
new TH1F(
"R2",
"Event Level R2", 36, 0, 1.2);
102 if (!result.isValid()) {
103 B2WARNING(
"SoftwareTriggerResult object not available but needed to select events for the histograms.");
107 const std::map<std::string, int>& results = result->getResults();
114 if (accepted !=
false) {
119 double R2 = Belle2::Variable::foxWolframR2(
nullptr);
123 for (
unsigned int i = 0; i < pi0Particles->getListSize(); i++) {
124 Particle* pi0 = pi0Particles->getParticle(i);
129 for (
unsigned int i = 0; i < ks0Particles->getListSize(); i++) {
130 Particle* ks0 = ks0Particles->getParticle(i);
142 if (accepted !=
false) {
145 for (
unsigned int i = 0; i < UpsParticles->getListSize(); i++) {
146 Particle* Ups = UpsParticles->getParticle(i);
int getPDGCode() const
PDG code.
static const ParticleType pi0
neutral pion particle
static const ParticleType Kshort
K^0_S particle.
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Class to store reconstructed particles.
double getMass() const
Returns invariant mass (= nominal for FS particles)
TH1F * m_h_mUPS
Ups invariant mass.
std::string m_ks0PListName
Name of the KS0 particle list.
void initialize() override
Initializer.
void event() override
This method is called for each event.
void endRun() override
This method is called if the current run ends.
void terminate() override
This method is called at the end of the event processing.
std::string m_triggerIdentifier
Trigger identifier string used to select events for the histograms.
TH1F * m_h_mPI0
PI0 invariant mass.
void beginRun() override
Called when entering a new run.
TH1F * m_h_mKS0
KS0 invariant mass.
PhysicsObjectsDQMModule()
Constructor.
std::string m_upsPListName
Name of the Ups particle list.
std::string m_triggerIdentifierMuMu
Trigger identifier string used to select events for the mumu histograms.
std::string m_pi0PListName
Name of the pi0 particle list.
void defineHisto() override
Definition of the histograms.
Type-safe access to single objects in the data store.
bool isValid() const
Check whether the object was created.
REG_MODULE(arichBtest)
Register the Module.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
@ c_accept
Accept this event.
Abstract base class for different kinds of events.