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 
31 
33 
38 
40 #include <TLorentzVector.h>
41 
42 namespace reco {
44  public:
46  ~PFMETProducerMVA() override;
47 
48  private:
49  void produce(edm::Event&, const edm::EventSetup&) override;
50 
51  // auxiliary functions
52  std::vector<reco::PUSubMETCandInfo> computeLeptonInfo(
55  const reco::Vertex* hardScatterVertex,
56  int& lId,
57  bool& lHasPhotons,
59 
60  std::vector<reco::PUSubMETCandInfo> computeJetInfo(const reco::PFJetCollection&,
62  const edm::ValueMap<float>&,
64  const reco::Vertex*,
65  const reco::JetCorrector& iCorr,
67  const edm::EventSetup& iSetup,
68  std::vector<reco::PUSubMETCandInfo>& iLeptons,
69  std::vector<reco::PUSubMETCandInfo>& iCands);
70 
71  std::vector<reco::PUSubMETCandInfo> computePFCandidateInfo(const reco::CandidateView&, const reco::Vertex*);
72  std::vector<reco::Vertex::Point> computeVertexInfo(const reco::VertexCollection&);
73  double chargedEnFrac(const reco::Candidate* iCand,
75  const reco::Vertex* hardScatterVertex);
76 
77  bool passPFLooseId(const reco::PFJet* iJet);
78  bool istau(const reco::Candidate* iCand);
79  double chargedFracInCone(const reco::Candidate* iCand,
81  const reco::Vertex* hardScatterVertex,
82  double iDRMax = 0.2);
83 
84  // configuration parameter
88  //edm::EDGetTokenT<reco::PFCandidateCollection> srcPFCandidates_;
92  typedef std::vector<edm::InputTag> vInputTag;
93  std::vector<edm::EDGetTokenT<reco::CandidateView> > srcLeptons_;
94  int minNumLeptons_; // CV: option to skip MVA MET computation in case there are less than specified number of leptons in the event
95 
96  bool useType1_;
97 
99 
101 
106  // PileupJetIdAlgo mvaJetIdAlgo_;
107 
109  };
110 } // namespace reco
111 
112 #endif
PFMETAlgorithmMVA mvaMEtAlgo_
std::vector< edm::EDGetTokenT< reco::CandidateView > > srcLeptons_
PFMETProducerMVA(const edm::ParameterSet &)
void produce(edm::Event &, const edm::EventSetup &) override
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:20
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 *)