Back to home page

Project CMSSW displayed by LXR

 
 

    


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 //define this as a plug-in
0046 DEFINE_FWK_MODULE(EvaluateMuonMVAID);