Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:38

0001 #ifndef L1Candidate_h
0002 #define L1Candidate_h
0003 
0004 #include "DataFormats/Candidate/interface/LeafCandidate.h"
0005 #include "DataFormats/L1Trigger/interface/BXVector.h"
0006 namespace l1t {
0007 
0008   class L1Candidate;
0009   typedef BXVector<L1Candidate> L1CandidateBxCollection;
0010   typedef edm::Ref<L1CandidateBxCollection> L1CandidateRef;
0011   typedef edm::RefVector<L1CandidateBxCollection> L1CandidateRefVector;
0012   typedef std::vector<L1CandidateRef> L1CandidateVectorRef;
0013 
0014   // All L1 data formats which encode physically meaningful quantities inherit from Candidate
0015   class L1Candidate : public reco::LeafCandidate {
0016   public:
0017     L1Candidate();
0018 
0019     // construct from *both* physical and integer values
0020     L1Candidate(const LorentzVector& p4, int pt = 0, int eta = 0, int phi = 0, int qual = 0, int iso = 0);
0021 
0022     L1Candidate(const PolarLorentzVector& p4, int pt = 0, int eta = 0, int phi = 0, int qual = 0, int iso = 0);
0023 
0024     ~L1Candidate() override;
0025 
0026     // methods to set integer values
0027     // in general, these should not be needed
0028     void setHwPt(int pt) { hwPt_ = pt; }
0029     void setHwEta(int eta) { hwEta_ = eta; }
0030     void setHwPhi(int phi) { hwPhi_ = phi; }
0031     void setHwQual(int qual) { hwQual_ = qual; }
0032     void setHwIso(int iso) { hwIso_ = iso; }
0033 
0034     // methods to retrieve integer values
0035     int hwPt() const { return hwPt_; }
0036     int hwEta() const { return hwEta_; }
0037     int hwPhi() const { return hwPhi_; }
0038     int hwQual() const { return hwQual_; }
0039     int hwIso() const { return hwIso_; }
0040 
0041     virtual bool operator==(const l1t::L1Candidate& rhs) const;
0042     virtual inline bool operator!=(const l1t::L1Candidate& rhs) const { return !(operator==(rhs)); };
0043 
0044   private:
0045     // integer "hardware" values
0046     int hwPt_;
0047     int hwEta_;
0048     int hwPhi_;
0049     int hwQual_;
0050     int hwIso_;
0051   };
0052 
0053 };  // namespace l1t
0054 
0055 #endif