Belle II Software development
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 {
34 class KLMExpertModule : public Module {
35
36 public:
37
40
42 virtual ~KLMExpertModule();
43
45 virtual void initialize() override;
46
48 virtual void beginRun() override;
49
51 virtual void event() override;
52
54 virtual void terminate() override
55 {
56 m_expert.reset();
57 m_dataset.reset();
58 }
59
60 private:
61
66 void init_mva(MVA::Weightfile& weightfile);
67
68
70 // KLM variables
72 float m_KLMnCluster{ -1.};
74 float m_KLMnLayer{ -1.};
78 float m_KLMglobalZ{0.};
80 float m_KLMtime{ -1.};
84 float m_KLMhitDepth{ -1.};
86 float m_KLMenergy{ -1.};
88 float m_KLMnextCluster{ -1.};
90 float m_KLMTrackSepDist{ -1.};
93 float m_KLMTrackSepAngle{ -1.};
94
101
102 // variables of closest ECL cluster with respect to KLM cluster
104 float m_KLMECLDist{ -1.};
106 float m_KLMECLE{ -1.};
108 float m_KLMECLdeltaL{ -1.}; // new
110 float m_KLMECLminTrackDist{ -1.}; //new
112 float m_KLMECLE9oE25{ -1.};
114 float m_KLMECLTiming{ -1.};
116 float m_KLMECLTerror{ -1.};
118 float m_KLMECLEerror{ -1.};
119
121 float m_KLMECLZMVA{ -1.};
123 float m_KLMECLZ40{ -1.};
125 float m_KLMECLZ51{ -1.};
126
131
133 std::vector<float> m_feature_variables;
134
136 std::string m_identifier =
137 "KLM_fBDT_10xbkg100k"; // assuming 1 times beambkg and generic BBbar events
138
140 std::unique_ptr<DBObjPtr<DatabaseRepresentationOfWeightfile>>
143 std::unique_ptr<MVA::Expert> m_expert;
145 std::unique_ptr<MVA::SingleDataset> m_dataset;
146
147
148 }; // end class
150} // 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.