Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-04-26 22:29:21

0001 #ifndef DataFormats_L1Trigger_ETSum_h
0002 #define DataFormats_L1Trigger_ETSum_h
0003 
0004 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0005 #include "DataFormats/L1Trigger/interface/BXVector.h"
0006 #include "DataFormats/L1Trigger/interface/L1TObjComparison.h"
0007 
0008 namespace l1t {
0009 
0010   class EtSum;
0011   typedef BXVector<EtSum> EtSumBxCollection;
0012   typedef edm::Ref<EtSumBxCollection> EtSumRef;
0013   typedef edm::RefVector<EtSumBxCollection> EtSumRefVector;
0014   typedef std::vector<EtSumRef> EtSumVectorRef;
0015 
0016   typedef ObjectRefBxCollection<EtSum> EtSumRefBxCollection;
0017   typedef ObjectRefPair<EtSum> EtSumRefPair;
0018   typedef ObjectRefPairBxCollection<EtSum> EtSumRefPairBxCollection;
0019 
0020   class EtSum : public L1Candidate {
0021   public:
0022     enum EtSumType {
0023       kTotalEt,
0024       kTotalHt,
0025       kMissingEt,
0026       kMissingHt,
0027       kTotalEtx,
0028       kTotalEty,
0029       kTotalHtx,
0030       kTotalHty,
0031       kMissingEtHF,
0032       kTotalEtxHF,
0033       kTotalEtyHF,
0034       kMinBiasHFP0,
0035       kMinBiasHFM0,
0036       kMinBiasHFP1,
0037       kMinBiasHFM1,
0038       kTotalEtHF,
0039       kTotalEtEm,
0040       kTotalHtHF,
0041       kTotalHtxHF,
0042       kTotalHtyHF,
0043       kMissingHtHF,
0044       kTowerCount,
0045       kCentrality,
0046       kAsymEt,
0047       kAsymHt,
0048       kAsymEtHF,
0049       kAsymHtHF,
0050       kUninitialized
0051     };
0052 
0053     EtSum() : type_{kUninitialized} {}
0054     explicit EtSum(EtSumType type) : type_{type} {}
0055 
0056     EtSum(const LorentzVector& p4, EtSumType type, int pt = 0, int eta = 0, int phi = 0, int qual = 0);
0057 
0058     EtSum(const PolarLorentzVector& p4, EtSumType type, int pt = 0, int eta = 0, int phi = 0, int qual = 0);
0059 
0060     ~EtSum() override;
0061 
0062     void setType(EtSumType type);
0063 
0064     EtSumType getType() const;
0065 
0066     virtual bool operator==(const l1t::EtSum& rhs) const;
0067     virtual inline bool operator!=(const l1t::EtSum& rhs) const { return !(operator==(rhs)); };
0068 
0069   private:
0070     // type of EtSum
0071     EtSumType type_;
0072 
0073     // additional hardware quantities common to L1 global EtSum
0074     // there are currently none
0075   };
0076 
0077 }  // namespace l1t
0078 
0079 #endif