Belle II Software release-09-00-00
KLMExpertModule.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#include <framework/datastore/StoreArray.h>
13#include <framework/database/DBObjPtr.h>
14
15#include <mdst/dataobjects/KLMCluster.h>
16#include <mdst/dataobjects/KlId.h>
17
18#include <mva/dataobjects/DatabaseRepresentationOfWeightfile.h>
19#include <mva/interface/Weightfile.h>
20#include <mva/interface/Expert.h>
21
22#include <string>
23
24
25namespace Belle2 {
37 class KLMExpertModule : public Module {
38
39 public:
40
43
45 virtual ~KLMExpertModule();
46
48 virtual void initialize() override;
49
51 virtual void beginRun() override;
52
54 virtual void event() override;
55
57 virtual void terminate() override
58 {
59 m_expert.reset();
60 m_dataset.reset();
61 }
62
63 private:
64
69 void init_mva(MVA::Weightfile& weightfile);
70
71
73 // KLM variables
75 float m_KLMnCluster{ -1.};
77 float m_KLMnLayer{ -1.};
81 float m_KLMglobalZ{0.};
83 float m_KLMtime{ -1.};
87 float m_KLMhitDepth{ -1.};
89 float m_KLMenergy{ -1.};
91 float m_KLMnextCluster{ -1.};
93 float m_KLMTrackSepDist{ -1.};
96 float m_KLMTrackSepAngle{ -1.};
97
104
105 // variables of closest ECL cluster with respect to KLM cluster
107 float m_KLMECLDist{ -1.};
109 float m_KLMECLE{ -1.};
111 float m_KLMECLdeltaL{ -1.}; // new
113 float m_KLMECLminTrackDist{ -1.}; //new
115 float m_KLMECLE9oE25{ -1.};
117 float m_KLMECLTiming{ -1.};
119 float m_KLMECLTerror{ -1.};
121 float m_KLMECLEerror{ -1.};
122
124 float m_KLMECLZMVA{ -1.};
126 float m_KLMECLZ40{ -1.};
128 float m_KLMECLZ51{ -1.};
129
134
136 std::vector<float> m_feature_variables;
137
139 std::string m_identifier =
140 "KLM_fBDT_10xbkg100k"; // assuming 1 times beambkg and generic BBbar events
141
143 std::unique_ptr<DBObjPtr<DatabaseRepresentationOfWeightfile>>
146 std::unique_ptr<MVA::Expert> m_expert;
148 std::unique_ptr<MVA::SingleDataset> m_dataset;
149
150
151 }; // end class
153} // end namespace Belle2
Module to perform the KLM KlId classification.
float m_KLMECLE
energy measured in associated ECL cluster
float m_KLMECLdeltaL
distance between track entry pofloat and cluster center, might be removed
StoreArray< KlId > m_klids
storearray
float m_KLMInitialTrackSepAngle
angular distance from track to cluster at track starting point
float m_KLMECLZMVA
output of a BDT fitted on various Z-moments for the closest ECL cluster
float m_KLMTrackRotationAngle
angle between track at poca and trackbeginning
KLMExpertModule()
Constructor.
float m_KLMECLTiming
timing of associated ECL cluster
virtual void terminate() override
terminate and free
std::unique_ptr< MVA::SingleDataset > m_dataset
Pointer to the current dataset.
StoreArray< KLMCluster > m_klmClusters
storearray
virtual void initialize() override
init
float m_KLMECLTerror
uncertanty on time in associated ECL cluster
virtual void event() override
process event
float m_KLMtime
timing of KLM Cluster
float m_KLMECLDist
distance associated ECL <-> KLM cluster, extrapolated by genfit
float m_KLMnLayer
number of layers hit in KLM cluster
float m_KLMhitDepth
hit depth in KLM, distance to IP
float m_KLMECLminTrackDist
track distance between associated ECL cluster and track extrapolated into ECL
float m_KLMenergy
Energy deposit in KLM (0.2 GeV * nHitCells)
float m_KLMTrackSepAngle
angular distance from track separation object.
std::unique_ptr< MVA::Expert > m_expert
Pointer to the current MVA Expert.
float m_KLMECLZ40
zernike moment 4,0 of closest ECL
std::unique_ptr< DBObjPtr< DatabaseRepresentationOfWeightfile > > m_weightfile_representation
Database pointer to the Database representation of the weightfile.
virtual ~KLMExpertModule()
Destructor.
float m_KLMnInnermostLayer
number of innermost layers hit
float m_KLMECLEerror
uncertanty on E in associated ECL cluster
float m_KLMECLE9oE25
E in surrounding 9 crystals divided by surrounding 25 crydtalls.
std::vector< float > m_feature_variables
vars to be classified
float m_KLMECLZ51
zernike moment 5,1 of closest ECL
float m_KLMavInterClusterDist
average distance between all KLM clusters
virtual void beginRun() override
beginn run
float m_KLMTrackSepDist
distance from track separation object
float m_KLMglobalZ
global Z position in KLM
float m_KLMnCluster
varibales to write out.
float m_KLMnextCluster
distance to next KLM cluster
float m_KLMTrackClusterSepAngle
angle between trach momentum and cluster (measured from ip)
void init_mva(MVA::Weightfile &weightfile)
Initialize mva expert, dataset and features Called everytime the weightfile in the database changes i...
std::string m_identifier
mva identifier.
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
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Abstract base class for different kinds of events.