Belle II Software  release-05-02-19
CDCTriggerNeuroTrainerModule.h
1 #ifndef CDCTRIGGERNEUROTRAINERMODULE_H
2 #define CDCTRIGGERNEUROTRAINERMODULE_H
3 
4 #include <framework/core/Module.h>
5 
6 #include <trg/cdc/NeuroTrigger.h>
7 #include <trg/cdc/dataobjects/CDCTriggerMLPData.h>
8 
9 #include <TH1D.h>
10 
11 namespace Belle2 {
25  public:
28 
31 
35  virtual void initialize() override;
36 
40  virtual void event() override;
41 
43  virtual void terminate() override;
44 
47  void updateRelevantID(unsigned isector);
48 
50  void train(unsigned isector);
51 
56  void saveTraindata(const std::string& filename, const std::string& arrayname = "trainSets");
57 
63  bool loadTraindata(const std::string& filename, const std::string& arrayname = "trainSets");
64 
65  protected:
66  //module parameters
68  std::string m_hitCollectionName;
70  std::string m_EventTimeName;
72  std::string m_inputCollectionName;
78  std::string m_filename;
80  std::string m_trainFilename;
82  std::string m_logFilename;
84  std::string m_arrayname;
86  std::string m_trainArrayname;
90  bool m_load;
98  std::vector<std::vector<float>> m_IDranges;
102  bool m_cutSum;
104  double m_nTrainMin;
106  double m_nTrainMax;
110  int m_nValid;
112  int m_nTest;
118  double m_wMax;
131 
132  //other data
136  std::vector<CDCTriggerMLPData> m_trainSets;
139 
140  //monitoring histograms
141  std::vector<TH1D*> phiHistsMC;
142  std::vector<TH1D*> ptHistsMC;
143  std::vector<TH1D*> thetaHistsMC;
144  std::vector<TH1D*> zHistsMC;
145  std::vector<TH1D*> phiHists2D;
146  std::vector<TH1D*> ptHists2D;
147  };
149 }
150 
151 #endif
Belle2::CDCTriggerNeuroTrainerModule::m_stopLoop
bool m_stopLoop
Switch for eary stopping.
Definition: CDCTriggerNeuroTrainerModule.h:114
Belle2::CDCTriggerNeuroTrainerModule::ptHistsMC
std::vector< TH1D * > ptHistsMC
pt of MCParticles
Definition: CDCTriggerNeuroTrainerModule.h:142
Belle2::CDCTriggerNeuroTrainerModule::m_nThreads
int m_nThreads
Number of threads for training.
Definition: CDCTriggerNeuroTrainerModule.h:120
Belle2::CDCTriggerNeuroTrainerModule::m_NeuroTrigger
NeuroTrigger m_NeuroTrigger
Instance of the NeuroTrigger.
Definition: CDCTriggerNeuroTrainerModule.h:134
Belle2::CDCTriggerNeuroTrainerModule::m_trainFilename
std::string m_trainFilename
Name of file where training samples are stored.
Definition: CDCTriggerNeuroTrainerModule.h:80
Belle2::CDCTriggerNeuroTrainerModule::terminate
virtual void terminate() override
Do the training for all sectors.
Definition: CDCTriggerNeuroTrainerModule.cc:479
Belle2::CDCTriggerNeuroTrainerModule::m_trainArrayname
std::string m_trainArrayname
Name of the TObjArray holding the training samples.
Definition: CDCTriggerNeuroTrainerModule.h:86
Belle2::CDCTriggerNeuroTrainerModule::m_arrayname
std::string m_arrayname
Name of the TObjArray holding the networks.
Definition: CDCTriggerNeuroTrainerModule.h:84
Belle2::CDCTriggerNeuroTrainerModule::m_nTrainMax
double m_nTrainMax
Maximal number of training samples.
Definition: CDCTriggerNeuroTrainerModule.h:106
Belle2::CDCTriggerNeuroTrainerModule::m_wMax
double m_wMax
Limit for weights.
Definition: CDCTriggerNeuroTrainerModule.h:118
Belle2::CDCTriggerNeuroTrainerModule::m_cutSum
bool m_cutSum
Switch to apply cut to single hit counter or to sum over counters.
Definition: CDCTriggerNeuroTrainerModule.h:102
Belle2::CDCTriggerNeuroTrainerModule::m_rescaleTarget
bool m_rescaleTarget
Switch to rescale out of range target values or ignore them.
Definition: CDCTriggerNeuroTrainerModule.h:116
Belle2::CDCTriggerNeuroTrainerModule::m_logFilename
std::string m_logFilename
Name of file where training log is stored.
Definition: CDCTriggerNeuroTrainerModule.h:82
Belle2::CDCTriggerNeuroTrainerModule::m_relevantCut
double m_relevantCut
Cut on the hit counters to get relevant ID ranges.
Definition: CDCTriggerNeuroTrainerModule.h:100
Belle2::CDCTriggerNeuroTrainerModule::loadTraindata
bool loadTraindata(const std::string &filename, const std::string &arrayname="trainSets")
Load saved training samples.
Definition: CDCTriggerNeuroTrainerModule.cc:797
Belle2::CDCTriggerNeuroTrainerModule::m_saveDebug
bool m_saveDebug
If true, save training curve and parameter distribution of training data.
Definition: CDCTriggerNeuroTrainerModule.h:88
Belle2::CDCTriggerNeuroTrainerModule::~CDCTriggerNeuroTrainerModule
virtual ~CDCTriggerNeuroTrainerModule()
Destructor.
Definition: CDCTriggerNeuroTrainerModule.h:30
Belle2::CDCTriggerNeuroTrainerModule::m_tracks
StoreArray< CDCTriggerTrack > m_tracks
List of input tracks.
Definition: CDCTriggerNeuroTrainerModule.h:138
Belle2::CDCTriggerNeuroTrainerModule::m_neuroTrackInputMode
bool m_neuroTrackInputMode
Use neurotracks instead of 2dtracks as input for the neurotrigger.
Definition: CDCTriggerNeuroTrainerModule.h:130
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2::CDCTriggerNeuroTrainerModule::saveTraindata
void saveTraindata(const std::string &filename, const std::string &arrayname="trainSets")
Save all training samples.
Definition: CDCTriggerNeuroTrainerModule.cc:760
Belle2::CDCTriggerNeuroTrainerModule::train
void train(unsigned isector)
Train a single MLP.
Definition: CDCTriggerNeuroTrainerModule.cc:587
Belle2::NeuroTrigger
Class to represent the CDC Neurotrigger.
Definition: NeuroTrigger.h:31
Belle2::CDCTriggerNeuroTrainerModule::initialize
virtual void initialize() override
Initialize the module.
Definition: CDCTriggerNeuroTrainerModule.cc:209
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDCTriggerNeuroTrainerModule::m_IDranges
std::vector< std::vector< float > > m_IDranges
Input ranges given over the module parameters.
Definition: CDCTriggerNeuroTrainerModule.h:98
Belle2::CDCTriggerNeuroTrainerModule::m_EventTimeName
std::string m_EventTimeName
name of the event time StoreObjPtr
Definition: CDCTriggerNeuroTrainerModule.h:70
Belle2::CDCTriggerNeuroTrainerModule::m_parameters
NeuroTrigger::Parameters m_parameters
Parameters for the NeuroTrigger.
Definition: CDCTriggerNeuroTrainerModule.h:92
Belle2::CDCTriggerNeuroTrainerModule::m_hitCollectionName
std::string m_hitCollectionName
Name of the StoreArray containing the input track segment hits.
Definition: CDCTriggerNeuroTrainerModule.h:68
Belle2::CDCTriggerNeuroTrainerModule::ptHists2D
std::vector< TH1D * > ptHists2D
pt of 2D tracks
Definition: CDCTriggerNeuroTrainerModule.h:146
Belle2::CDCTriggerNeuroTrainerModule::m_load
bool m_load
Switch to load saved parameters from a previous run.
Definition: CDCTriggerNeuroTrainerModule.h:90
Belle2::CDCTriggerNeuroTrainerModule::m_trainSets
std::vector< CDCTriggerMLPData > m_trainSets
Sets of training data for all sectors.
Definition: CDCTriggerNeuroTrainerModule.h:136
Belle2::CDCTriggerNeuroTrainerModule::m_repeatTrain
int m_repeatTrain
Number of training runs with different random start weights.
Definition: CDCTriggerNeuroTrainerModule.h:128
Belle2::CDCTriggerNeuroTrainerModule::m_selectSectorByMC
bool m_selectSectorByMC
Switch for sector selection during training.
Definition: CDCTriggerNeuroTrainerModule.h:94
Belle2::CDCTriggerNeuroTrainerModule::m_nTrainPrepare
int m_nTrainPrepare
Number of samples to prepare input ranges.
Definition: CDCTriggerNeuroTrainerModule.h:96
Belle2::CDCTriggerNeuroTrainerModule::updateRelevantID
void updateRelevantID(unsigned isector)
calculate and set the relevant id range for given sector based on hit counters of the track segments.
Definition: CDCTriggerNeuroTrainerModule.cc:515
Belle2::CDCTriggerNeuroTrainerModule::event
virtual void event() override
Called once for each event.
Definition: CDCTriggerNeuroTrainerModule.cc:297
Belle2::CDCTriggerNeuroTrainerModule::m_nValid
int m_nValid
Number of validation samples.
Definition: CDCTriggerNeuroTrainerModule.h:110
Belle2::CDCTriggerNeuroTrainerModule::m_inputCollectionName
std::string m_inputCollectionName
Name of the StoreArray containing the input 2D tracks.
Definition: CDCTriggerNeuroTrainerModule.h:72
Belle2::CDCTriggerNeuroTrainerModule::phiHists2D
std::vector< TH1D * > phiHists2D
phi of 2D tracks
Definition: CDCTriggerNeuroTrainerModule.h:145
Belle2::CDCTriggerNeuroTrainerModule::thetaHistsMC
std::vector< TH1D * > thetaHistsMC
theta of MCParticles
Definition: CDCTriggerNeuroTrainerModule.h:143
Belle2::CDCTriggerNeuroTrainerModule::m_filename
std::string m_filename
Name of file where network weights etc.
Definition: CDCTriggerNeuroTrainerModule.h:78
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::CDCTriggerNeuroTrainerModule::zHistsMC
std::vector< TH1D * > zHistsMC
z of MCParticles
Definition: CDCTriggerNeuroTrainerModule.h:144
Belle2::NeuroTrigger::Parameters
Struct to keep neurotrigger parameters.
Definition: NeuroTrigger.h:37
Belle2::CDCTriggerNeuroTrainerModule::m_trainOnRecoTracks
bool m_trainOnRecoTracks
Switch between MCParticles or RecoTracks as targets.
Definition: CDCTriggerNeuroTrainerModule.h:74
Belle2::CDCTriggerNeuroTrainerModule::m_nTest
int m_nTest
Number of test samples.
Definition: CDCTriggerNeuroTrainerModule.h:112
Belle2::CDCTriggerNeuroTrainerModule::m_maxEpochs
int m_maxEpochs
Maximal number of training epochs.
Definition: CDCTriggerNeuroTrainerModule.h:126
Belle2::CDCTriggerNeuroTrainerModule::m_nTrainMin
double m_nTrainMin
Minimal number of training samples.
Definition: CDCTriggerNeuroTrainerModule.h:104
Belle2::CDCTriggerNeuroTrainerModule::m_multiplyNTrain
bool m_multiplyNTrain
Switch to multiply number of samples with number of weights.
Definition: CDCTriggerNeuroTrainerModule.h:108
Belle2::CDCTriggerNeuroTrainerModule::m_checkInterval
int m_checkInterval
Training is stopped if validation error is higher than checkInterval epochs ago, i....
Definition: CDCTriggerNeuroTrainerModule.h:124
Belle2::CDCTriggerNeuroTrainerModule::CDCTriggerNeuroTrainerModule
CDCTriggerNeuroTrainerModule()
Constructor, for setting module description and parameters.
Definition: CDCTriggerNeuroTrainerModule.cc:31
Belle2::CDCTriggerNeuroTrainerModule::m_targetCollectionName
std::string m_targetCollectionName
Name of the MCParticles/RecoTracks collection used as target values.
Definition: CDCTriggerNeuroTrainerModule.h:76
Belle2::CDCTriggerNeuroTrainerModule
The trainer module for the neural networks of the CDC trigger.
Definition: CDCTriggerNeuroTrainerModule.h:24
Belle2::CDCTriggerNeuroTrainerModule::phiHistsMC
std::vector< TH1D * > phiHistsMC
phi of MCParticles
Definition: CDCTriggerNeuroTrainerModule.h:141