File indexing completed on 2023-10-25 09:39:26
0001 #ifndef L1Trigger_L1EtMissParticle_h
0002 #define L1Trigger_L1EtMissParticle_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include "DataFormats/Candidate/interface/LeafCandidate.h"
0021 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h"
0022 #include "DataFormats/Common/interface/Ref.h"
0023
0024
0025
0026 namespace l1extra {
0027 class L1EtMissParticle : public reco::LeafCandidate {
0028 public:
0029 enum EtMissType { kMET, kMHT, kNumTypes };
0030
0031 L1EtMissParticle();
0032
0033
0034
0035 L1EtMissParticle(const LorentzVector& p4,
0036 EtMissType type,
0037 const double& etTotal,
0038 const edm::Ref<L1GctEtMissCollection>& aEtMissRef = edm::Ref<L1GctEtMissCollection>(),
0039 const edm::Ref<L1GctEtTotalCollection>& aEtTotalRef = edm::Ref<L1GctEtTotalCollection>(),
0040 const edm::Ref<L1GctHtMissCollection>& aHtMissRef = edm::Ref<L1GctHtMissCollection>(),
0041 const edm::Ref<L1GctEtHadCollection>& aEtHadRef = edm::Ref<L1GctEtHadCollection>(),
0042 int bx = 0);
0043
0044 L1EtMissParticle(const PolarLorentzVector& p4,
0045 EtMissType type,
0046 const double& etTotal,
0047 const edm::Ref<L1GctEtMissCollection>& aEtMissRef = edm::Ref<L1GctEtMissCollection>(),
0048 const edm::Ref<L1GctEtTotalCollection>& aEtTotalRef = edm::Ref<L1GctEtTotalCollection>(),
0049 const edm::Ref<L1GctHtMissCollection>& aHtMissRef = edm::Ref<L1GctHtMissCollection>(),
0050 const edm::Ref<L1GctEtHadCollection>& aEtHadRef = edm::Ref<L1GctEtHadCollection>(),
0051 int bx = 0);
0052
0053 ~L1EtMissParticle() override {}
0054
0055
0056
0057 EtMissType type() const { return type_; }
0058
0059
0060 double etMiss() const { return et(); }
0061
0062
0063 const double& etTotal() const { return etTot_; }
0064
0065
0066 const edm::Ref<L1GctEtMissCollection>& gctEtMissRef() const { return etMissRef_; }
0067
0068
0069 const edm::Ref<L1GctEtTotalCollection>& gctEtTotalRef() const { return etTotRef_; }
0070
0071
0072 const edm::Ref<L1GctHtMissCollection>& gctHtMissRef() const { return htMissRef_; }
0073
0074
0075 const edm::Ref<L1GctEtHadCollection>& gctEtHadRef() const { return etHadRef_; }
0076
0077
0078 const L1GctEtMiss* gctEtMiss() const { return etMissRef_.get(); }
0079
0080
0081 const L1GctEtTotal* gctEtTotal() const { return etTotRef_.get(); }
0082
0083
0084 const L1GctHtMiss* gctHtMiss() const { return htMissRef_.get(); }
0085
0086
0087 const L1GctEtHad* gctEtHad() const { return etHadRef_.get(); }
0088
0089 L1EtMissParticle* clone() const override { return new L1EtMissParticle(*this); }
0090
0091 int bx() const { return bx_; }
0092
0093
0094
0095
0096 void setEtTotal(const double& etTotal) { etTot_ = etTotal; }
0097
0098 void setBx(int bx) { bx_ = bx; }
0099
0100 private:
0101
0102
0103
0104
0105
0106 EtMissType type_;
0107
0108 double etTot_;
0109
0110 edm::Ref<L1GctEtMissCollection> etMissRef_;
0111 edm::Ref<L1GctEtTotalCollection> etTotRef_;
0112 edm::Ref<L1GctHtMissCollection> htMissRef_;
0113 edm::Ref<L1GctEtHadCollection> etHadRef_;
0114
0115 int bx_;
0116 };
0117 }
0118
0119 #endif