Belle II Software  release-05-02-19
ChargedPidMVAMulticlassModule.h
1 /**************************************************************************
2 * BASF2 (Belle Analysis Framework 2) *
3 * Copyright(C) 2019 - Belle II Collaboration *
4 * *
5 * Author: The Belle II Collaboration *
6 * Contributors: Marco Milesi (marco.milesi@unimelb.edu.au) *
7 * *
8 * This software is provided "as is" without any warranty. *
9 **************************************************************************/
10 
11 #pragma once
12 
13 // FRAMEWORK
14 #include <framework/core/Module.h>
15 #include <framework/dataobjects/EventMetaData.h>
16 #include <framework/database/DBObjPtr.h>
17 
18 // MVA
19 #include <mva/interface/Expert.h>
20 #include <mva/interface/Dataset.h>
21 
22 // ANALYSIS
23 #include <analysis/dataobjects/ParticleList.h>
24 #include <analysis/VariableManager/Manager.h>
25 #include <analysis/dbobjects/ChargedPidMVAWeights.h>
26 
27 namespace Belle2 {
44  class ChargedPidMVAMulticlassModule : public Module {
45 
46  typedef std::vector<std::unique_ptr<MVA::Expert> > ExpertsList;
47  typedef std::vector<std::unique_ptr<MVA::SingleDataset> > DatasetsList;
48  typedef std::vector< std::vector<const Variable::Manager::Var*> > VariablesLists;
50  public:
51 
56 
61 
68  virtual void initialize() override;
69 
75  virtual void beginRun() override;
76 
82  virtual void event() override;
83 
84  private:
85 
91  void initializeMVA();
92 
98  const std::string getParticleName(const ParticleList* pList) const
99  {
100 
101  auto fullName = pList->getParticleListName();
102  auto delimiter(":");
103  auto signedName = fullName.substr(0, fullName.find(delimiter));
104  signedName.pop_back();
105 
106  return signedName;
107  }
108 
109  private:
110 
114  std::vector<std::string> m_particle_lists;
115 
119  std::string m_payload_name;
120 
124  bool m_ecl_only;
125 
130 
136  std::unique_ptr<DBObjPtr<ChargedPidMVAWeights>> m_weightfiles_representation;
137 
144 
150 
156 
162 
166  std::vector<std::string> m_classes;
167 
168  };
170 }
Belle2::ChargedPidMVAMulticlassModule::beginRun
virtual void beginRun() override
Called once before a new run begins.
Definition: ChargedPidMVAMulticlassModule.cc:51
Belle2::ChargedPidMVAMulticlassModule::m_datasets
DatasetsList m_datasets
List of MVA::SingleDataset objects.
Definition: ChargedPidMVAMulticlassModule.h:157
Belle2::ParticleList
ParticleList is a container class that stores a collection of Particle objects.
Definition: ParticleList.h:150
Belle2::ChargedPidMVAMulticlassModule::m_variables
VariablesLists m_variables
List of lists of feature variables.
Definition: ChargedPidMVAMulticlassModule.h:163
Belle2::ChargedPidMVAMulticlassModule::VariablesLists
std::vector< std::vector< const Variable::Manager::Var * > > VariablesLists
Typedef.
Definition: ChargedPidMVAMulticlassModule.h:56
Belle2::ChargedPidMVAMulticlassModule::m_spectators
VariablesLists m_spectators
List of lists of spectator variables.
Definition: ChargedPidMVAMulticlassModule.h:169
Belle2::ChargedPidMVAMulticlassModule::m_experts
ExpertsList m_experts
List of MVA::Expert objects.
Definition: ChargedPidMVAMulticlassModule.h:151
Belle2::ChargedPidMVAMulticlassModule::~ChargedPidMVAMulticlassModule
virtual ~ChargedPidMVAMulticlassModule()
Destructor, use this to clean up anything you created in the constructor.
Belle2::ChargedPidMVAMulticlassModule::m_payload_name
std::string m_payload_name
The name of the database payload object with the MVA weights.
Definition: ChargedPidMVAMulticlassModule.h:127
Belle2::ChargedPidMVAMulticlassModule::event
virtual void event() override
Called once for each event.
Definition: ChargedPidMVAMulticlassModule.cc:61
Belle2::ChargedPidMVAMulticlassModule::ChargedPidMVAMulticlassModule
ChargedPidMVAMulticlassModule()
Constructor, for setting module description and parameters.
Definition: ChargedPidMVAMulticlassModule.cc:17
Belle2::ChargedPidMVAMulticlassModule::getParticleName
const std::string getParticleName(const ParticleList *pList) const
Split the particle list name in "particleName", "particleLabel", and return the particle name w/o the...
Definition: ChargedPidMVAMulticlassModule.h:106
Belle2::ChargedPidMVAMulticlassModule::initialize
virtual void initialize() override
Use this to initialize resources or memory your module needs.
Definition: ChargedPidMVAMulticlassModule.cc:41
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ChargedPidMVAMulticlassModule::ExpertsList
std::vector< std::unique_ptr< MVA::Expert > > ExpertsList
Typedef.
Definition: ChargedPidMVAMulticlassModule.h:54
Belle2::StoreObjPtr
Type-safe access to single objects in the data store.
Definition: ParticleList.h:33
Belle2::ChargedPidMVAMulticlassModule::m_particle_lists
std::vector< std::string > m_particle_lists
The input list of ParticleList names.
Definition: ChargedPidMVAMulticlassModule.h:122
Belle2::ChargedPidMVAMulticlassModule::m_classes
std::vector< std::string > m_classes
List of MVA class names.
Definition: ChargedPidMVAMulticlassModule.h:174
Belle2::ChargedPidMVAMulticlassModule::m_event_metadata
StoreObjPtr< EventMetaData > m_event_metadata
The event information.
Definition: ChargedPidMVAMulticlassModule.h:137
Belle2::ChargedPidMVAMulticlassModule::m_weightfiles_representation
std::unique_ptr< DBObjPtr< ChargedPidMVAWeights > > m_weightfiles_representation
Interface to get the database payload with the MVA weight files.
Definition: ChargedPidMVAMulticlassModule.h:144
Belle2::ChargedPidMVAMulticlassModule::m_ecl_only
bool m_ecl_only
Flag to specify if we use an ECL-only based training.
Definition: ChargedPidMVAMulticlassModule.h:132
Belle2::ChargedPidMVAMulticlassModule::DatasetsList
std::vector< std::unique_ptr< MVA::SingleDataset > > DatasetsList
Typedef.
Definition: ChargedPidMVAMulticlassModule.h:55
Belle2::ParticleList::getParticleListName
std::string getParticleListName() const
Returns the name this ParticleList.
Definition: ParticleList.h:286
Belle2::ChargedPidMVAMulticlassModule::initializeMVA
void initializeMVA()
Definition: ChargedPidMVAMulticlassModule.cc:197