Belle II Software  release-06-02-00
MVAMultipleExpertsModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/core/Module.h>
12 
13 #include <mva/dataobjects/DatabaseRepresentationOfWeightfile.h>
14 #include <mva/interface/Weightfile.h>
15 #include <mva/interface/Expert.h>
16 
17 #include <framework/database/DBObjPtr.h>
18 
19 #include <analysis/VariableManager/Manager.h>
20 
21 #include <vector>
22 #include <string>
23 #include <memory>
24 
25 namespace Belle2 {
31  class Particle;
32 
41  public:
42 
47 
51  virtual void initialize() override;
52 
56  virtual void beginRun() override;
57 
61  virtual void event() override;
62 
66  virtual void terminate() override
67  {
68  for (unsigned int i = 0; i < m_identifiers.size(); ++i) {
69  m_experts[i].reset();
70  m_datasets[i].reset();
71  }
72  }
73 
74  private:
78  std::vector<float> analyse(Particle*);
79 
84  void init_mva(MVA::Weightfile& weightfile, unsigned int i);
85 
86 
87  private:
88 
89  std::vector<std::string> m_listNames;
90  std::vector<std::string> m_identifiers;
91  std::vector<std::string>
95  std::vector<std::vector<const Variable::Manager::Var*>>
98 // std::vector<const Variable::Manager::Var*> m_feature_variables;
99 
100  std::map<const Variable::Manager::Var*, float>
103  std::vector<std::unique_ptr<DBObjPtr<DatabaseRepresentationOfWeightfile>>>
106  std::vector<std::unique_ptr<MVA::Expert>> m_experts;
108  std::vector<std::unique_ptr<MVA::SingleDataset>> m_datasets;
109  };
110 
112 } // Belle2 namespace
113 
This module adds an ExtraInfo to the Particle objects in a given ParticleList.
std::vector< std::unique_ptr< MVA::Expert > > m_experts
Vector of pointers to the current MVA Experts.
virtual void terminate() override
Called at the end of the event processing.
std::vector< std::unique_ptr< MVA::SingleDataset > > m_datasets
Vector of pointers to the current input datasets.
std::vector< std::vector< const Variable::Manager::Var * > > m_individual_feature_variables
Vector of pointers to the feature variables for each expert.
double m_signal_fraction_override
Signal Fraction which should be used.
std::vector< std::string > m_identifiers
weight-files
std::vector< std::string > m_listNames
input particle list names
std::map< const Variable::Manager::Var *, float > m_feature_variables
Map containing the values of all needed feature variables.
std::vector< std::string > m_extraInfoNames
Names under which the SignalProbability is stored in the extraInfo of the Particle object.
std::vector< std::unique_ptr< DBObjPtr< DatabaseRepresentationOfWeightfile > > > m_weightfile_representations
Vector of database pointers to the Database representation of the weightfile.
The Weightfile class serializes all information about a training into an xml tree.
Definition: Weightfile.h:38
Base class for Modules.
Definition: Module.h:72
Class to store reconstructed particles.
Definition: Particle.h:74
void init_mva(MVA::Weightfile &weightfile, unsigned int i)
Initialize mva expert, dataset and features Called every time the weightfile in the database changes ...
virtual void initialize() override
Initialize the module.
std::vector< float > analyse(Particle *)
Calculates expert output for given Particle pointer.
virtual void event() override
Called for each event.
virtual void beginRun() override
Called at the beginning of a new run.
Abstract base class for different kinds of events.