11#include <framework/core/Module.h>
12#include <framework/database/DBObjPtr.h>
13#include <framework/datastore/StoreArray.h>
15#include <klm/dataobjects/KLMHit2d.h>
16#include <klm/dataobjects/KLMMuidLikelihood.h>
17#include <klm/dataobjects/bklm/BKLMElementNumbers.h>
18#include <klm/dataobjects/eklm/EKLMElementNumbers.h>
20#include <mdst/dataobjects/Track.h>
22#include <reconstruction/dataobjects/KLMMuonIDDNNInputVariable.h>
24#include <mva/dataobjects/DatabaseRepresentationOfWeightfile.h>
25#include <mva/interface/Expert.h>
26#include <mva/interface/Weightfile.h>
65 void event()
override;
static constexpr int getMaximalLayerNumber()
Get maximal layer number (1-based).
Class for accessing objects in the database.
static constexpr int getMaximalLayerNumber()
Get maximal layer number.
Class to store the likelihoods from KLM with additional information related to the extrapolation.
KLMMuonIDDNNExpert for calculating Neural Network based muonID.
std::array< float, m_maxBKLMLayers+m_maxEKLMLayers > m_hitpattern_width
Container of hit widths of one track.
std::unique_ptr< MVA::SingleDataset > m_dataset
Pointer to the current dataset.
void initialize() override
Initializer.
float getHitWidth(const KLMHit2d *klmhit)
Get Hit width (cluster size) of a KLMHit2d.
void event() override
This method is called for each event.
KLMMuonIDDNNExpertModule()
Constructor.
float m_EndcapScintWidth
EKLM scintillator strip width (cm).
void endRun() override
This method is called if the current run ends.
static constexpr int m_maxBKLMLayers
Total BKLM layers.
std::array< float, m_maxBKLMLayers+m_maxEKLMLayers > m_hitpattern_chi2
Container of hit chi2 of one track.
void terminate() override
This method is called at the end of the event processing.
std::unique_ptr< MVA::Expert > m_expert
Pointer to the current MVA expert.
void beginRun() override
Called when entering a new run.
StoreArray< Track > m_tracks
Required array for Tracks.
std::array< float, m_maxBKLMLayers+m_maxEKLMLayers > m_hitpattern_steplength
Container of hit steplength of one track.
float getNNmuProbability(const Track *track, const KLMMuidLikelihood *klmll)
Get the NN-based muon probability.
std::array< float, m_maxBKLMLayers > m_BarrelPhiStripWidth
BKLM phi-measuring strip width (cm) by layer.
DBObjPtr< DatabaseRepresentationOfWeightfile > m_weightfile_representation
Database pointer to the database representation of the weightfile.
void initializeMVA(MVA::Weightfile &weightfile)
Initialize mva expert, dataset and features.
std::array< float, m_maxBKLMLayers > m_BarrelZStripWidth
BKLM Z-measuring strip width (cm) by layer.
std::array< bool, m_maxBKLMLayers+m_maxEKLMLayers > m_hitpattern_hasext
Container of extrapolation situation at each KLM layer of one track.
~KLMMuonIDDNNExpertModule()
Destructor.
const std::string m_identifier
Database identifier or file used to load the weights.
StoreArray< KLMMuonIDDNNInputVariable > m_inputVariable
Input variables of DNN.
static constexpr int m_maxEKLMLayers
Total EKLM layers.
The Weightfile class serializes all information about a training into an xml tree.
Accessor to arrays stored in the data store.
Class that bundles various TrackFitResults.
Abstract base class for different kinds of events.