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.
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.