Belle II Software development
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#include <framework/dataobjects/EventExtraInfo.h>
21
22#include <vector>
23#include <string>
24
25namespace Belle2 {
31 class Particle;
32
38 public:
39
44
48 virtual void initialize() override;
49
53 virtual void beginRun() override;
54
58 virtual void event() override;
59
63 virtual void terminate() override;
64
65 private:
69 std::vector<std::vector<float>> analyse(Particle*);
70
75 void init_mva(MVA::Weightfile& weightfile, unsigned int i);
76
81
85 void setExtraInfoField(Particle*, std::string, float, unsigned int);
86
90 void setEventExtraInfoField(StoreObjPtr<EventExtraInfo>, std::string, float, unsigned int);
91
92 private:
93
94 std::vector<std::string> m_listNames;
95 std::vector<std::string> m_identifiers;
96 std::vector<std::string>
100 std::vector<std::vector<const Variable::Manager::Var*>>
103// std::vector<const Variable::Manager::Var*> m_feature_variables;
104
105 std::map<const Variable::Manager::Var*, float>
108 std::vector<std::unique_ptr<DBObjPtr<DatabaseRepresentationOfWeightfile>>>
111 std::vector<std::unique_ptr<MVA::Expert>> m_experts;
113 std::vector<std::unique_ptr<MVA::SingleDataset>> m_datasets;
115 std::vector<int>
117 std::vector<bool> m_existGivenExtraInfo;
119 std::vector<unsigned int>
121 };
122
124} // Belle2 namespace
125
This module adds an ExtraInfo to the Particle objects in a given ParticleList.
void init_mva(MVA::Weightfile &weightfile, unsigned int i)
Initialize mva expert, dataset and features Called every time the weightfile in the database changes ...
std::vector< int > m_overwriteExistingExtraInfo
vector of -1/0/1/2: overwrite if lower/ don't overwrite / overwrite if higher/ always overwrite,...
std::vector< std::unique_ptr< MVA::Expert > > m_experts
Vector of pointers to the current MVA Experts.
void setExtraInfoField(Particle *, std::string, float, unsigned int)
Set the extra info field.
std::vector< unsigned int > m_nClasses
number of classes (~outputs) of the MVA Experts.
virtual void initialize() override
Initialize the module.
std::vector< std::unique_ptr< MVA::SingleDataset > > m_datasets
Vector of pointers to the current input datasets.
virtual void event() override
Called for each event.
std::vector< bool > m_existGivenExtraInfo
check if the given extraInfo is already defined.
std::vector< std::vector< const Variable::Manager::Var * > > m_individual_feature_variables
Vector of pointers to the feature variables for each expert.
virtual void terminate() override
Called at the end of the event processing.
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
void fillDatasets(Particle *)
Evaluate the variables and fill the Datasets to be used by the experts.
virtual void beginRun() override
Called at the beginning of a new run.
std::map< const Variable::Manager::Var *, float > m_feature_variables
Map containing the values of all needed feature variables.
std::vector< std::vector< float > > analyse(Particle *)
Calculates expert output for given Particle pointer.
void setEventExtraInfoField(StoreObjPtr< EventExtraInfo >, std::string, float, unsigned int)
Set the event extra info field.
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:75
Type-safe access to single objects in the data store.
Definition: StoreObjPtr.h:96
Abstract base class for different kinds of events.