Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DataFormatsL1TCorrelator_TkEtMiss_h
0002 #define DataFormatsL1TCorrelator_TkEtMiss_h
0003 
0004 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0005 #include "DataFormats/Common/interface/Ref.h"
0006 #include "DataFormats/L1Trigger/interface/VertexWord.h"
0007 
0008 namespace l1t {
0009   class TkEtMiss : public L1Candidate {
0010   public:
0011     enum EtMissType { kMET, kMHT, kNumTypes };
0012     TkEtMiss();
0013     TkEtMiss(const LorentzVector& p4,
0014              EtMissType type,
0015              const double& etTotal,
0016              const double& etMissPU,
0017              const double& etTotalPU,
0018              const edm::Ref<l1t::VertexWordCollection>& aVtxRef = edm::Ref<l1t::VertexWordCollection>(),
0019              int bx = 0);
0020 
0021     TkEtMiss(const LorentzVector& p4,
0022              EtMissType type,
0023              const double& etTotal,
0024              const double& etMissPU,
0025              const double& etTotalPU,
0026              int bx = 0);
0027 
0028     TkEtMiss(const LorentzVector& p4, EtMissType type, const double& EtPhi, const int& NumTracks, int bx = 0);
0029 
0030     // ---------- const member functions ---------------------
0031     EtMissType type() const { return type_; }  // kMET or kMHT
0032     // For type = kMET, this is |MET|; for type = kMHT, this is |MHT|
0033     double etMiss() const { return et(); }
0034     // For type = kMET, this is total ET; for type = kMHT, this is total HT
0035     double etTotal() const { return etTot_; }
0036     // EtMiss and EtTot from PU vertices
0037     double etMissPU() const { return etMissPU_; }
0038     double etTotalPU() const { return etTotalPU_; }
0039     int bx() const { return bx_; }
0040     const edm::Ref<l1t::VertexWordCollection>& vtxRef() const { return vtxRef_; }
0041 
0042     double etPhi() const { return etPhi_; }
0043     int etQual() const { return etQual_; }
0044 
0045     // ---------- member functions ---------------------------
0046     void setEtTotal(const double& etTotal) { etTot_ = etTotal; }
0047     void setBx(int bx) { bx_ = bx; }
0048 
0049   private:
0050     // ---------- member data --------------------------------
0051     EtMissType type_;
0052     double etTot_;
0053     double etMissPU_;
0054     double etTotalPU_;
0055     edm::Ref<l1t::VertexWordCollection> vtxRef_;
0056 
0057     double etMiss_;
0058     double etPhi_;
0059     int etQual_;
0060 
0061     int bx_;
0062   };
0063 }  // namespace l1t
0064 
0065 #endif