Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:54:07

0001 #ifndef DataFormats_METReco_PUSubMETData_h
0002 #define DataFormats_METReco_PUSubMETData_h
0003 
0004 /** \class MVAMEtData.h
0005  *
0006  * Storage of PFCandidate and PFJet id. information used in MVA MET calculation.
0007  *
0008  * \authors Phil Harris, CERN
0009  *          Christian Veelken, LLR
0010  *
0011  *
0012  *
0013  */
0014 
0015 #include "DataFormats/Candidate/interface/Candidate.h"
0016 
0017 #include "DataFormats/METReco/interface/SigInputObj.h"
0018 
0019 namespace reco {
0020 
0021   class PUSubMETCandInfo {
0022     //functions
0023   public:
0024     PUSubMETCandInfo();
0025     ~PUSubMETCandInfo();
0026 
0027     bool operator<(const reco::PUSubMETCandInfo&) const;
0028 
0029     //Access functions ================
0030     const reco::Candidate::LorentzVector& p4() const { return p4_; };
0031     const float dZ() const { return dZ_; };
0032 
0033     int type() const { return type_; };
0034     int charge() const { return charge_; };
0035 
0036     //Jet specific
0037     bool isWithinJet() const { return isWithinJet_; };
0038     float passesLooseJetId() const { return passesLooseJetId_; };
0039     float offsetEnCorr() const { return offsetEnCorr_; };
0040     float mva() const { return mva_; };
0041     float chargedEnFrac() const { return chargedEnFrac_; };
0042 
0043     const metsig::SigInputObj& metSignObj() const { return pfMEtSignObj_; };
0044 
0045     //setting functions ================
0046     void setP4(const reco::Candidate::LorentzVector p4) { p4_ = p4; };
0047     void setDZ(float dZ) { dZ_ = dZ; };
0048 
0049     void setType(int type) { type_ = type; };
0050     void setCharge(int charge) { charge_ = charge; };
0051 
0052     //Jet specific
0053     void setIsWithinJet(bool isWJ) { isWithinJet_ = isWJ; };
0054     void setPassesLooseJetId(float jetId) { passesLooseJetId_ = jetId; };
0055     void setOffsetEnCorr(float offset) { offsetEnCorr_ = offset; };
0056     void setMvaVal(float mva) { mva_ = mva; };
0057     void setChargedEnFrac(float chEnF) { chargedEnFrac_ = chEnF; };
0058 
0059     void setMEtSignObj(metsig::SigInputObj msig) { pfMEtSignObj_ = msig; };
0060 
0061     //variables =================
0062   public:
0063     enum { kUndefined = 0, kHS, kChHS, kPU, kChPU, kNeutral };
0064 
0065   private:
0066     reco::Candidate::LorentzVector p4_;
0067     float dZ_;
0068 
0069     int type_;
0070     int charge_;
0071 
0072     //Jet specific
0073     bool isWithinJet_;
0074     float passesLooseJetId_;
0075     float offsetEnCorr_;
0076     float mva_;
0077     float chargedEnFrac_;
0078 
0079     metsig::SigInputObj pfMEtSignObj_;  // contribution of this PFJet to PFMET significance matrix
0080   };
0081 
0082 }  // namespace reco
0083 
0084 #endif