JetType

L1JetParticle

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
#ifndef L1Trigger_L1JetParticle_h
#define L1Trigger_L1JetParticle_h
// -*- C++ -*-
//
// Package:     L1Trigger
// Class  :     L1JetParticle
//
/**\class L1JetParticle \file L1JetParticle.h DataFormats/L1Trigger/interface/L1JetParticle.h \author Werner Sun

 Description: L1Extra particle class for jet objects.
*/
//
// Original Author:  Werner Sun
//         Created:  Sat Jul 15 12:41:07 EDT 2006
//

// system include files

// user include files
#include "DataFormats/Candidate/interface/LeafCandidate.h"
#include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h"
#include "DataFormats/Common/interface/Ref.h"

// forward declarations

namespace l1extra {

  class L1JetParticle : public reco::LeafCandidate {
  public:
    enum JetType { kCentral, kForward, kTau, kUndefined, kNumOfJetTypes };

    L1JetParticle();

    L1JetParticle(const LorentzVector& p4, const edm::Ref<L1GctJetCandCollection>& aRef, int bx = 0);

    L1JetParticle(const PolarLorentzVector& p4, const edm::Ref<L1GctJetCandCollection>& aRef, int bx = 0);

    // Creates null Ref.
    L1JetParticle(const LorentzVector& p4, JetType type = kUndefined, int bx = 0);

    L1JetParticle(const PolarLorentzVector& p4, JetType type = kUndefined, int bx = 0);

    ~L1JetParticle() override {}

    // ---------- const member functions ---------------------
    JetType type() const { return type_; }

    const edm::Ref<L1GctJetCandCollection>& gctJetCandRef() const { return ref_; }

    const L1GctJetCand* gctJetCand() const { return ref_.get(); }

    L1JetParticle* clone() const override { return new L1JetParticle(*this); }

    int bx() const { return bx_; }

    // ---------- static member functions --------------------

    // ---------- member functions ---------------------------
    void setType(JetType type) { type_ = type; }

    void setBx(int bx) { bx_ = bx; }

  private:
    // L1JetParticle(const L1JetParticle&); // stop default

    // const L1JetParticle& operator=(const L1JetParticle&); // stop default

    // ---------- member data --------------------------------
    JetType type_;
    edm::Ref<L1GctJetCandCollection> ref_;
    int bx_;
  };
}  // namespace l1extra

#endif