Belle II Software  release-05-01-25
VXDQETrainingDataCollectorModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jonas Wagner, Sebastian Racs *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <tracking/spacePointCreation/SpacePointTrackCand.h>
14 #include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorBase.h>
15 #include <tracking/trackFindingVXD/variableExtractors/SimpleVariableRecorder.h>
16 #include <tracking/trackFindingVXD/variableExtractors/ClusterInfoExtractor.h>
17 #include <tracking/trackFindingVXD/variableExtractors/QEResultsExtractor.h>
18 
19 
20 #include <framework/datastore/StoreArray.h>
21 #include <framework/core/Module.h>
22 
23 #include <memory>
24 
25 
26 namespace Belle2 {
35  class VXDQETrainingDataCollectorModule : public Module {
36 
37  public:
40 
42  void initialize() override;
43 
45  void beginRun() override;
46 
48  void event() override;
49 
51  void terminate() override;
52 
53 
54  protected:
55 
56  // -----module parameters---
57 
63  std::string m_EstimationMethod = "tripletFit";
64 
66  bool m_MCInfo = true;
67 
69  std::string m_SpacePointTrackCandsStoreArrayName = "SPTrackCands";
70 
72  std::string m_MCRecoTracksStoreArrayName = "MCRecoTracks";
73 
75  bool m_MCStrictQualityEstimator = true;
76 
79  bool m_mva_target = false;
80 
82  std::string m_TrainingDataOutputName = "QETrainingOutput.root";
83 
85  std::string m_ClusterInformation = "Average";
86 
88  bool m_UseTimingInfo = false;
89 
90  // -------------------------
91 
94 
96  std::unique_ptr<QualityEstimatorBase> m_estimator;
97 
99  std::unique_ptr<QualityEstimatorBase> m_estimatorMC;
100 
103  std::unique_ptr<QEResultsExtractor> m_qeResultsExtractor;
104 
106  std::unique_ptr<ClusterInfoExtractor> m_clusterInfoExtractor;
107 
109  std::unique_ptr<SimpleVariableRecorder> m_recorder;
110 
112  std::vector<Named<float*>> m_variableSet;
113 
116  float m_nSpacePoints = NAN;
117 
120  float m_truth = NAN;
121 
122  };
124 }
Belle2::VXDQETrainingDataCollectorModule::m_qeResultsExtractor
std::unique_ptr< QEResultsExtractor > m_qeResultsExtractor
pointer to object that extracts the results from the estimation mehtod (including QI,...
Definition: VXDQETrainingDataCollectorModule.h:111
Belle2::VXDQETrainingDataCollectorModule::terminate
void terminate() override
write out data from m_recorder
Definition: VXDQETrainingDataCollectorModule.cc:144
Belle2::VXDQETrainingDataCollectorModule::m_UseTimingInfo
bool m_UseTimingInfo
whether to collect timing information
Definition: VXDQETrainingDataCollectorModule.h:96
Belle2::VXDQETrainingDataCollectorModule::beginRun
void beginRun() override
sets magnetic field strength
Definition: VXDQETrainingDataCollectorModule.cc:111
Belle2::VXDQETrainingDataCollectorModule::m_clusterInfoExtractor
std::unique_ptr< ClusterInfoExtractor > m_clusterInfoExtractor
pointer to object that extracts info from the clusters of a SPTC
Definition: VXDQETrainingDataCollectorModule.h:114
Belle2::VXDQETrainingDataCollectorModule::VXDQETrainingDataCollectorModule
VXDQETrainingDataCollectorModule()
Constructor of the module.
Definition: VXDQETrainingDataCollectorModule.cc:23
Belle2::VXDQETrainingDataCollectorModule::m_ClusterInformation
std::string m_ClusterInformation
how to compile information from clusters ['Average']
Definition: VXDQETrainingDataCollectorModule.h:93
Belle2::VXDQETrainingDataCollectorModule::m_EstimationMethod
std::string m_EstimationMethod
Identifier which estimation method to use.
Definition: VXDQETrainingDataCollectorModule.h:71
Belle2::VXDQETrainingDataCollectorModule::m_estimator
std::unique_ptr< QualityEstimatorBase > m_estimator
pointer to the selected QualityEstimator
Definition: VXDQETrainingDataCollectorModule.h:104
Belle2::VXDQETrainingDataCollectorModule::m_recorder
std::unique_ptr< SimpleVariableRecorder > m_recorder
pointer to the object that writes out the collected data into a root file
Definition: VXDQETrainingDataCollectorModule.h:117
Belle2::VXDQETrainingDataCollectorModule::m_spacePointTrackCands
StoreArray< SpacePointTrackCand > m_spacePointTrackCands
the storeArray for SpacePointTrackCands as member, is faster than recreating link for each event
Definition: VXDQETrainingDataCollectorModule.h:101
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::VXDQETrainingDataCollectorModule::m_SpacePointTrackCandsStoreArrayName
std::string m_SpacePointTrackCandsStoreArrayName
sets the name of the expected StoreArray containing SpacePointTrackCands
Definition: VXDQETrainingDataCollectorModule.h:77
Belle2::VXDQETrainingDataCollectorModule::m_mva_target
bool m_mva_target
Bool to indicate if mva target requiring complete agreement in SVD Clusters between MC and PR track t...
Definition: VXDQETrainingDataCollectorModule.h:87
Belle2::VXDQETrainingDataCollectorModule::event
void event() override
applies the selected quality estimation method for a given set of TCs
Definition: VXDQETrainingDataCollectorModule.cc:121
Belle2::VXDQETrainingDataCollectorModule::m_variableSet
std::vector< Named< float * > > m_variableSet
set of named variables to be collected
Definition: VXDQETrainingDataCollectorModule.h:120
Belle2::VXDQETrainingDataCollectorModule::m_estimatorMC
std::unique_ptr< QualityEstimatorBase > m_estimatorMC
QualityEstimatorMC as target for training.
Definition: VXDQETrainingDataCollectorModule.h:107
Belle2::VXDQETrainingDataCollectorModule::initialize
void initialize() override
Initializes the Module.
Definition: VXDQETrainingDataCollectorModule.cc:79
Belle2::VXDQETrainingDataCollectorModule::m_truth
float m_truth
truth information collected with m_estimatorMC type is float to be consistend with m_variableSet (and...
Definition: VXDQETrainingDataCollectorModule.h:128
Belle2::VXDQETrainingDataCollectorModule::m_TrainingDataOutputName
std::string m_TrainingDataOutputName
name of the output rootfile
Definition: VXDQETrainingDataCollectorModule.h:90
Belle2::VXDQETrainingDataCollectorModule::m_MCStrictQualityEstimator
bool m_MCStrictQualityEstimator
Required for MCInfo method, activates its strict version.
Definition: VXDQETrainingDataCollectorModule.h:83
Belle2::VXDQETrainingDataCollectorModule::m_MCInfo
bool m_MCInfo
whether to collect MC truth information
Definition: VXDQETrainingDataCollectorModule.h:74
Belle2::VXDQETrainingDataCollectorModule::m_nSpacePoints
float m_nSpacePoints
number of SpacePoints in SPTC as additional info to be collected, type is float to be consistend with...
Definition: VXDQETrainingDataCollectorModule.h:124
Belle2::StoreArray< SpacePointTrackCand >
Belle2::VXDQETrainingDataCollectorModule::m_MCRecoTracksStoreArrayName
std::string m_MCRecoTracksStoreArrayName
sets the name of the expected StoreArray containing MCRecoTracks.
Definition: VXDQETrainingDataCollectorModule.h:80