Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1Trigger_L1MuonParticle_h
0002 #define L1Trigger_L1MuonParticle_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     L1Trigger
0006 // Class  :     L1MuonParticle
0007 //
0008 /**\class L1MuonParticle \file L1MuonParticle.h DataFormats/L1Trigger/interface/L1MuonParticle.h \author Werner Sun
0009 
0010  Description: L1Extra particle class for muon objects.
0011 */
0012 //
0013 // Original Author:  Werner Sun
0014 //         Created:  Sat Jul 15 12:41:07 EDT 2006
0015 //
0016 
0017 // system include files
0018 
0019 // user include files
0020 #include "DataFormats/Candidate/interface/LeafCandidate.h"
0021 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTExtendedCand.h"
0022 
0023 // forward declarations
0024 
0025 namespace l1extra {
0026 
0027   class L1MuonParticle : public reco::LeafCandidate {
0028   public:
0029     L1MuonParticle();
0030 
0031     // Eventually, all L1MuGMTCands will be L1MuGMTExtendedCands,
0032     // as soon as dictionaries for them exist in
0033     // L1Trigger/GlobalMuonTrigger.
0034 
0035     L1MuonParticle(Charge q, const LorentzVector& p4, const L1MuGMTExtendedCand& aCand, int bx = 0);
0036 
0037     L1MuonParticle(Charge q, const PolarLorentzVector& p4, const L1MuGMTExtendedCand& aCand, int bx = 0);
0038 
0039     // Creates null Ref.
0040     L1MuonParticle(Charge q,
0041                    const LorentzVector& p4,
0042                    bool isolated = false,
0043                    bool mip = false,
0044                    bool forward = false,
0045                    bool rpc = false,
0046                    unsigned int detector = 0,
0047                    int bx = 0);
0048 
0049     L1MuonParticle(Charge q,
0050                    const PolarLorentzVector& p4,
0051                    bool isolated = false,
0052                    bool mip = false,
0053                    bool forward = false,
0054                    bool rpc = false,
0055                    unsigned int detector = 0,
0056                    int bx = 0);
0057 
0058     ~L1MuonParticle() override {}
0059 
0060     // ---------- const member functions ---------------------
0061     bool isIsolated() const { return isolated_; }
0062 
0063     bool isMip() const { return mip_; }
0064 
0065     bool isForward() const { return forward_; }
0066 
0067     bool isRPC() const { return rpc_; }
0068 
0069     const L1MuGMTExtendedCand& gmtMuonCand() const { return cand_; }
0070 
0071     L1MuonParticle* clone() const override { return new L1MuonParticle(*this); }
0072 
0073     int bx() const { return bx_; }
0074 
0075     // ---------- static member functions --------------------
0076 
0077     // ---------- member functions ---------------------------
0078     void setIsolated(bool isIso) { isolated_ = isIso; }
0079 
0080     void setMip(bool isMip) { mip_ = isMip; }
0081 
0082     void setForward(bool isForward) { forward_ = isForward; }
0083 
0084     void setRPC(bool isRPC) { rpc_ = isRPC; }
0085 
0086     void setBx(int bx) { bx_ = bx; }
0087 
0088   private:
0089     // L1MuonParticle(const L1MuonParticle&); // stop default
0090 
0091     // const L1MuonParticle& operator=(const L1MuonParticle&); // stop default
0092 
0093     // ---------- member data --------------------------------
0094     bool isolated_;
0095     bool mip_;
0096     bool forward_;
0097     bool rpc_;
0098     L1MuGMTExtendedCand cand_;
0099     int bx_;
0100   };
0101 }  // namespace l1extra
0102 
0103 #endif