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
0071 EtSumType type_;
0072
0073
0074
0075 };
0076
0077 }
0078
0079 #endif