CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFMETProducerMVA.h
Go to the documentation of this file.
1 #ifndef RecoMET_METPUSubtraction_PFMETProducerMVA_h
2 #define RecoMET_METPUSubtraction_PFMETProducerMVA_h
3 
21 
22 
46 
49 
54 
56 
57 #include <algorithm>
58 #include <vector>
59 
60 #include "TLorentzVector.h"
61 
62 namespace reco
63 {
65  {
66  public:
67 
70 
71  private:
72 
73  void produce(edm::Event&, const edm::EventSetup&);
74 
75  // auxiliary functions
76  std::vector<reco::PUSubMETCandInfo> computeLeptonInfo(const std::vector<edm::EDGetTokenT<reco::CandidateView > >& srcLeptons_,
78  const reco::Vertex* hardScatterVertex,
79  int& lId, bool& lHasPhotons, edm::Event & iEvent);
80 
81  std::vector<reco::PUSubMETCandInfo> computeJetInfo(const reco::PFJetCollection&, const edm::Handle<reco::PFJetCollection>&,
83  const reco::Vertex*, const JetCorrector &iCorr,
84  edm::Event & iEvent,const edm::EventSetup &iSetup,
85  std::vector<reco::PUSubMETCandInfo> &iLeptons,
86  std::vector<reco::PUSubMETCandInfo> &iCands);
87 
88  std::vector<reco::PUSubMETCandInfo> computePFCandidateInfo(const reco::CandidateView&, const reco::Vertex*);
89  std::vector<reco::Vertex::Point> computeVertexInfo(const reco::VertexCollection&);
90  double chargedEnFrac(const reco::Candidate *iCand,const reco::CandidateView& pfCandidates,const reco::Vertex* hardScatterVertex);
91 
92  bool passPFLooseId(const reco::PFJet *iJet);
93  bool istau (const reco::Candidate *iCand);
94  double chargedFracInCone(const reco::Candidate *iCand,const reco::CandidateView& pfCandidates,const reco::Vertex* hardScatterVertex,double iDRMax=0.2);
95 
96  // configuration parameter
100  //edm::EDGetTokenT<reco::PFCandidateCollection> srcPFCandidates_;
103  typedef std::vector<edm::InputTag> vInputTag;
104  std::vector<edm::EDGetTokenT<reco::CandidateView > > srcLeptons_;
105  int minNumLeptons_; // CV: option to skip MVA MET computation in case there are less than specified number of leptons in the event
107 
109  bool isOld42_ ;
110  bool useType1_;
111 
113 
115 
120  // PileupJetIdAlgo mvaJetIdAlgo_;
121 
123  };
124 }
125 
126 #endif
PFMETAlgorithmMVA mvaMEtAlgo_
PFMETProducerMVA(const edm::ParameterSet &)
std::vector< edm::EDGetTokenT< reco::CandidateView > > srcLeptons_
PFSpecificAlgo pfMEtSpecificAlgo_
void produce(edm::Event &, const edm::EventSetup &)
std::vector< reco::Vertex::Point > computeVertexInfo(const reco::VertexCollection &)
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
Jets made from PFObjects.
Definition: PFJet.h:21
double chargedFracInCone(const reco::Candidate *iCand, const reco::CandidateView &pfCandidates, const reco::Vertex *hardScatterVertex, double iDRMax=0.2)
edm::EDGetTokenT< edm::ValueMap< float > > srcJetIds_
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
bool istau(const reco::Candidate *iCand)
int iEvent
Definition: GenABIO.cc:230
edm::EDGetTokenT< edm::View< reco::Candidate > > srcPFCandidatesView_
bool passPFLooseId(const reco::PFJet *iJet)
edm::EDGetTokenT< reco::PFJetCollection > srcCorrJets_
std::vector< edm::InputTag > vInputTag
std::vector< reco::PUSubMETCandInfo > computeJetInfo(const reco::PFJetCollection &, const edm::Handle< reco::PFJetCollection > &, const edm::ValueMap< float > &, const reco::VertexCollection &, const reco::Vertex *, const JetCorrector &iCorr, edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< reco::PUSubMETCandInfo > &iLeptons, std::vector< reco::PUSubMETCandInfo > &iCands)
edm::EDGetTokenT< reco::VertexCollection > srcVertices_
std::vector< reco::PUSubMETCandInfo > computeLeptonInfo(const std::vector< edm::EDGetTokenT< reco::CandidateView > > &srcLeptons_, const reco::CandidateView &pfCandidates, const reco::Vertex *hardScatterVertex, int &lId, bool &lHasPhotons, edm::Event &iEvent)
edm::EDGetTokenT< edm::Handle< double > > srcRho_
std::vector< PFJet > PFJetCollection
collection of PFJet objects
double chargedEnFrac(const reco::Candidate *iCand, const reco::CandidateView &pfCandidates, const reco::Vertex *hardScatterVertex)
edm::EDGetTokenT< reco::PFJetCollection > srcUncorrJets_
std::vector< reco::PUSubMETCandInfo > computePFCandidateInfo(const reco::CandidateView &, const reco::Vertex *)