File indexing completed on 2024-04-06 12:23:40
0001
0002
0003
0004
0005
0006 #include "FWCore/Framework/interface/Frameworkfwd.h"
0007 #include "FWCore/Framework/interface/stream/EDProducer.h"
0008
0009 #include "FWCore/Framework/interface/Event.h"
0010 #include "FWCore/Framework/interface/MakerMacros.h"
0011
0012 #include "DataFormats/PatCandidates/interface/Muon.h"
0013 #include "PhysicsTools/PatAlgos/interface/BaseMVAValueMapProducer.h"
0014 #include <vector>
0015
0016 class EvaluateMuonMVAID : public BaseMVAValueMapProducer<pat::Muon> {
0017 public:
0018 explicit EvaluateMuonMVAID(const edm::ParameterSet& iConfig, const BaseMVACache* cache)
0019 : BaseMVAValueMapProducer<pat::Muon>(iConfig, cache) {}
0020
0021 void fillAdditionalVariables(const pat::Muon& m) override {
0022 float norm_chi2;
0023 float n_Valid_hits;
0024 if (m.globalTrack().isNonnull()) {
0025 norm_chi2 = m.globalTrack()->normalizedChi2();
0026 n_Valid_hits = m.globalTrack()->hitPattern().numberOfValidMuonHits();
0027 } else if (m.innerTrack().isNonnull()) {
0028 norm_chi2 = m.innerTrack()->normalizedChi2();
0029 n_Valid_hits = m.innerTrack()->hitPattern().numberOfValidMuonHits();
0030 } else {
0031 norm_chi2 = -99;
0032 n_Valid_hits = -99;
0033 }
0034
0035 this->setValue("Muon_norm_chi2_extended", norm_chi2);
0036 this->setValue("Muon_n_Valid_hits_extended", n_Valid_hits);
0037 }
0038
0039 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0040 edm::ParameterSetDescription desc = BaseMVAValueMapProducer<pat::Muon>::getDescription();
0041 descriptions.add("EvaluateMuonMVAID", desc);
0042 }
0043 };
0044
0045
0046 DEFINE_FWK_MODULE(EvaluateMuonMVAID);