Belle II Software  release-05-02-19
MLSegmentNetworkProducerModule.h
1 /*************************************************************************
2 * BASF2 (Belle Analysis Framework 2) *
3 * Copyright(C) 2016 - Belle II Collaboration *
4 * *
5 * Author: The Belle II Collaboration *
6 * Contributors: Thomas Madlener *
7 * *
8 * This software is provided "as is" without any warranty. *
9 **************************************************************************/
10 
11 #pragma once
12 
13 #include <tracking/spacePointCreation/SpacePoint.h>
14 #include <tracking/trackFindingVXD/filterTools/MLRange.h>
15 #include <tracking/trackFindingVXD/filterMap/threeHitVariables/MLHandover.h>
16 #include <tracking/trackFindingVXD/filterTools/FBDTClassifier.h>
17 
18 #include <tracking/trackFindingVXD/segmentNetwork/DirectedNodeNetworkContainer.h>
19 #include <framework/datastore/StoreObjPtr.h>
20 
21 #include <framework/core/Module.h>
22 
23 // stl
24 #include <string>
25 #include <memory>
26 
27 namespace Belle2 {
43  class MLSegmentNetworkProducerModule : public Module {
44 
45  public:
46 
52  VoidObserver >;
53 
54  void initialize() override;
56  void event() override;
58  void terminate() override;
60  private:
61 
63  std::string m_PARAMfbdtFileName;
64 
66  std::string m_PARAMnetworkInputName;
67 
69  std::string m_PARAMsecMapName;
70 
72  std::string m_PARAMrootFileName;
73 
75  double m_PARAMcutVal;
76 
78  std::unique_ptr<MLFilter> m_filter{nullptr};
79 
81  std::unique_ptr<Belle2::FBDTClassifier<9> > m_classifier{nullptr};
82 
85 
87  void setupClassifier(const std::string& filename);
88 
90  void setupFilter();
91 
92  };
93 
95 } // end namespace Belle2
Belle2::MLSegmentNetworkProducerModule::m_PARAMnetworkInputName
std::string m_PARAMnetworkInputName
name of the StoreObjPtr pointing to the network container used in this module.
Definition: MLSegmentNetworkProducerModule.h:74
Belle2::MLSegmentNetworkProducerModule::m_PARAMfbdtFileName
std::string m_PARAMfbdtFileName
file where the FastBDT classifier is stored.
Definition: MLSegmentNetworkProducerModule.h:71
Belle2::MLSegmentNetworkProducerModule::setupClassifier
void setupClassifier(const std::string &filename)
construct the classifier from file
Definition: MLSegmentNetworkProducerModule.cc:141
Belle2::MLSegmentNetworkProducerModule::MLFilter
Belle2::Filter< Belle2::MLHandover< Belle2::SpacePoint, 9 >, Belle2::MLRange< Belle2::FBDTClassifier< 9 >, 9, double >, VoidObserver > MLFilter
typedef with complete definition
Definition: MLSegmentNetworkProducerModule.h:60
Belle2::MLSegmentNetworkProducerModule::m_PARAMsecMapName
std::string m_PARAMsecMapName
the name of the used SectorMap.
Definition: MLSegmentNetworkProducerModule.h:77
Belle2::MLSegmentNetworkProducerModule::m_PARAMcutVal
double m_PARAMcutVal
cut value to be used with classifier
Definition: MLSegmentNetworkProducerModule.h:83
Belle2::MLSegmentNetworkProducerModule::m_classifier
std::unique_ptr< Belle2::FBDTClassifier< 9 > > m_classifier
classifier used throughout this module
Definition: MLSegmentNetworkProducerModule.h:89
Belle2::MLSegmentNetworkProducerModule::event
void event() override
event
Definition: MLSegmentNetworkProducerModule.cc:54
Belle2::MLSegmentNetworkProducerModule::terminate
void terminate() override
terminate module
Definition: MLSegmentNetworkProducerModule.cc:135
Belle2::MLSegmentNetworkProducerModule::m_network
Belle2::StoreObjPtr< Belle2::DirectedNodeNetworkContainer > m_network
StoreObjPtr to access the DNNs that are used in this module.
Definition: MLSegmentNetworkProducerModule.h:92
Belle2::MLSegmentNetworkProducerModule::m_PARAMrootFileName
std::string m_PARAMrootFileName
name of the root file name
Definition: MLSegmentNetworkProducerModule.h:80
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr< Belle2::DirectedNodeNetworkContainer >
Belle2::MLSegmentNetworkProducerModule::m_filter
std::unique_ptr< MLFilter > m_filter
internal three hit filter
Definition: MLSegmentNetworkProducerModule.h:86
Belle2::MLSegmentNetworkProducerModule::initialize
void initialize() override
initialize module
Definition: MLSegmentNetworkProducerModule.cc:42
Belle2::MLRange
Range used for the Machine Learning assisted TrackFinding approach.
Definition: MLRange.h:39
Belle2::MLSegmentNetworkProducerModule::setupFilter
void setupFilter()
setup the filter
Definition: MLSegmentNetworkProducerModule.cc:155
Belle2::Filter
This class is used to select pairs, triplets...
Definition: Filter.h:44
Belle2::VoidObserver
The most CPU efficient Observer for the VXDTF filter tools (even if useless).
Definition: VoidObserver.h:40
Belle2::MLSegmentNetworkProducerModule::MLSegmentNetworkProducerModule
MLSegmentNetworkProducerModule()
module constructor
Definition: MLSegmentNetworkProducerModule.cc:22