CMS 3D CMS Logo

PFMETProducerMVA.h
Go to the documentation of this file.
1 #ifndef RecoMET_METPUSubtraction_PFMETProducerMVA_h
2 #define RecoMET_METPUSubtraction_PFMETProducerMVA_h
3 
18 
19 
32 
34 
39 
41 #include <TLorentzVector.h>
42 
43 namespace reco
44 {
46  {
47  public:
48 
50  ~PFMETProducerMVA() override;
51 
52  private:
53 
54  void produce(edm::Event&, const edm::EventSetup&) override;
55 
56  // auxiliary functions
57  std::vector<reco::PUSubMETCandInfo> computeLeptonInfo(const std::vector<edm::EDGetTokenT<reco::CandidateView > >& srcLeptons_,
59  const reco::Vertex* hardScatterVertex,
60  int& lId, bool& lHasPhotons, edm::Event & iEvent);
61 
62  std::vector<reco::PUSubMETCandInfo> computeJetInfo(const reco::PFJetCollection&, const edm::Handle<reco::PFJetCollection>&,
64  const reco::Vertex*, const reco::JetCorrector &iCorr,
65  edm::Event & iEvent,const edm::EventSetup &iSetup,
66  std::vector<reco::PUSubMETCandInfo> &iLeptons,
67  std::vector<reco::PUSubMETCandInfo> &iCands);
68 
69  std::vector<reco::PUSubMETCandInfo> computePFCandidateInfo(const reco::CandidateView&, const reco::Vertex*);
70  std::vector<reco::Vertex::Point> computeVertexInfo(const reco::VertexCollection&);
71  double chargedEnFrac(const reco::Candidate *iCand,const reco::CandidateView& pfCandidates,const reco::Vertex* hardScatterVertex);
72 
73  bool passPFLooseId(const reco::PFJet *iJet);
74  bool istau (const reco::Candidate *iCand);
75  double chargedFracInCone(const reco::Candidate *iCand,const reco::CandidateView& pfCandidates,const reco::Vertex* hardScatterVertex,double iDRMax=0.2);
76 
77  // configuration parameter
81  //edm::EDGetTokenT<reco::PFCandidateCollection> srcPFCandidates_;
85  typedef std::vector<edm::InputTag> vInputTag;
86  std::vector<edm::EDGetTokenT<reco::CandidateView > > srcLeptons_;
87  int minNumLeptons_; // CV: option to skip MVA MET computation in case there are less than specified number of leptons in the event
88 
89  bool useType1_;
90 
92 
93  double minCorrJetPt_;
94 
99  // PileupJetIdAlgo mvaJetIdAlgo_;
100 
102  };
103 }
104 
105 #endif
PFMETAlgorithmMVA mvaMEtAlgo_
PFMETProducerMVA(const edm::ParameterSet &)
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< edm::EDGetTokenT< reco::CandidateView > > srcLeptons_
PFSpecificAlgo pfMEtSpecificAlgo_
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_
bool istau(const reco::Candidate *iCand)
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< edm::View< reco::Candidate > > srcPFCandidatesView_
bool passPFLooseId(const reco::PFJet *iJet)
edm::EDGetTokenT< reco::PFJetCollection > srcCorrJets_
std::vector< edm::InputTag > vInputTag
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< reco::JetCorrector > mJetCorrector_
std::vector< reco::PUSubMETCandInfo > computeJetInfo(const reco::PFJetCollection &, const edm::Handle< reco::PFJetCollection > &, const edm::ValueMap< float > &, const reco::VertexCollection &, const reco::Vertex *, const reco::JetCorrector &iCorr, edm::Event &iEvent, const edm::EventSetup &iSetup, std::vector< reco::PUSubMETCandInfo > &iLeptons, std::vector< reco::PUSubMETCandInfo > &iCands)
std::vector< PFJet > PFJetCollection
collection of PFJet objects
fixed size matrix
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 *)