8#include <tracking/modules/mcMatcher/MCV0MatcherModule.h>
10#include <framework/gearbox/Const.h>
11#include <framework/gearbox/Unit.h>
12#include <framework/logging/Logger.h>
13#include <mdst/dataobjects/TrackFitResult.h>
21 setDescription(
"A module matching the V0s found by the V0Finder with MCParticles");
26 "Belle2::Track collection name (input). Note that the V0s use "
27 "pointers indices into these arrays, so all hell may break loose "
28 "if you change this.", std::string(
""));
30 "Belle2::TrackFitResult collection name (input). Note that the V0s "
31 "use pointers indices into these arrays, so all hell may break loose "
32 "if you change this.", std::string(
""));
49 B2WARNING(
"This module is supposed to be used only for the debugging\n \
50 of the V0Finder module, not as MC matching during analysis.");
57 B2DEBUG(20, (
m_V0s.getEntries() != 0 ?
"V0s has entries." :
" No V0s."));
59 for (
const auto& v0 :
m_V0s) {
62 const std::pair<Track*, Track*> trackPtrs = v0.getTracks();
67 if (mcV0PartPlus ==
nullptr or mcV0PartMinus ==
nullptr) {
68 B2DEBUG(20,
"At least one track of the V0 does not have a MC related particle. It will be skipped for matching.");
75 if (!mcV0PartPlus->
getMother() or !mcV0PartMinusMother) {
76 B2DEBUG(20,
"At least one track of the V0 does not have a mother MCParticle, skipping.");
80 if (mcV0PartPlusMother != mcV0PartMinusMother) {
81 B2DEBUG(20,
"The V0 is most likely built up from combinatoric background, thus no MC relation can be set.");
86 B2DEBUG(20,
"V0 successfully matched.");
87 v0.addRelationTo(mcV0PartPlusMother);
89 B2DEBUG(20,
"V0 did not match anything.");
93 B2DEBUG(20,
"MC matching finished.");
The ParticleType class for identifying different particle types.
A Class to store the Monte Carlo particle information.
int getPDG() const
Return PDG code of particle.
std::string m_TFRColName
Belle2::TrackFitResult collection name (input).
void initialize() override
Use this to initialize resources or memory your module needs.
void event() override
Called once for each event.
StoreArray< V0 > m_V0s
V0s StoreArray.
std::string m_TrackColName
Belle2::Track collection name (input).
~MCV0MatcherModule() override
Destructor (empty).
MCV0MatcherModule()
Constructor, for setting module description and parameters.
std::string m_MCParticleColName
MCParticle collection name (input).
StoreArray< MCParticle > m_MCParticles
MCParticles StoreArray.
std::string m_V0ColName
V0 collection name (input).
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...
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
MCParticle * getMother() const
Returns a pointer to the mother particle.
Abstract base class for different kinds of events.