Go to the documentation of this file.00001 #ifndef L1Trigger_L1EtMissParticle_h
00002 #define L1Trigger_L1EtMissParticle_h
00003
00004
00005
00006
00007
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "DataFormats/Candidate/interface/LeafCandidate.h"
00022 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h"
00023 #include "DataFormats/Common/interface/Ref.h"
00024
00025
00026
00027 namespace l1extra {
00028 class L1EtMissParticle : public reco::LeafCandidate
00029 {
00030 public:
00031 enum EtMissType{ kMET, kMHT, kNumTypes } ;
00032
00033 L1EtMissParticle();
00034
00035
00036
00037 L1EtMissParticle(
00038 const LorentzVector& p4,
00039 EtMissType type,
00040 const double& etTotal,
00041 const edm::Ref< L1GctEtMissCollection >& aEtMissRef = edm::Ref<
00042 L1GctEtMissCollection >(),
00043 const edm::Ref< L1GctEtTotalCollection >& aEtTotalRef = edm::Ref<
00044 L1GctEtTotalCollection >(),
00045 const edm::Ref< L1GctHtMissCollection >& aHtMissRef = edm::Ref<
00046 L1GctHtMissCollection >(),
00047 const edm::Ref< L1GctEtHadCollection >& aEtHadRef = edm::Ref<
00048 L1GctEtHadCollection >(),
00049 int bx = 0 ) ;
00050
00051 L1EtMissParticle(
00052 const PolarLorentzVector& p4,
00053 EtMissType type,
00054 const double& etTotal,
00055 const edm::Ref< L1GctEtMissCollection >& aEtMissRef = edm::Ref<
00056 L1GctEtMissCollection >(),
00057 const edm::Ref< L1GctEtTotalCollection >& aEtTotalRef = edm::Ref<
00058 L1GctEtTotalCollection >(),
00059 const edm::Ref< L1GctHtMissCollection >& aHtMissRef = edm::Ref<
00060 L1GctHtMissCollection >(),
00061 const edm::Ref< L1GctEtHadCollection >& aEtHadRef = edm::Ref<
00062 L1GctEtHadCollection >(),
00063 int bx = 0 ) ;
00064
00065 virtual ~L1EtMissParticle() {}
00066
00067
00068
00069 EtMissType type() const { return type_ ; }
00070
00071
00072 double etMiss() const
00073 { return et() ; }
00074
00075
00076 const double& etTotal() const
00077 { return etTot_ ; }
00078
00079
00080 const edm::Ref< L1GctEtMissCollection >& gctEtMissRef() const
00081 { return etMissRef_ ; }
00082
00083
00084 const edm::Ref< L1GctEtTotalCollection >& gctEtTotalRef() const
00085 { return etTotRef_ ; }
00086
00087
00088 const edm::Ref< L1GctHtMissCollection >& gctHtMissRef() const
00089 { return htMissRef_ ; }
00090
00091
00092 const edm::Ref< L1GctEtHadCollection >& gctEtHadRef() const
00093 { return etHadRef_ ; }
00094
00095
00096 const L1GctEtMiss* gctEtMiss() const
00097 { return etMissRef_.get() ; }
00098
00099
00100 const L1GctEtTotal* gctEtTotal() const
00101 { return etTotRef_.get() ; }
00102
00103
00104 const L1GctHtMiss* gctHtMiss() const
00105 { return htMissRef_.get() ; }
00106
00107
00108 const L1GctEtHad* gctEtHad() const
00109 { return etHadRef_.get() ; }
00110
00111 virtual L1EtMissParticle* clone() const
00112 { return new L1EtMissParticle( *this ) ; }
00113
00114 int bx() const
00115 { return bx_ ; }
00116
00117
00118
00119
00120 void setEtTotal( const double& etTotal )
00121 { etTot_ = etTotal ; }
00122
00123 void setBx( int bx )
00124 { bx_ = bx ; }
00125
00126 private:
00127
00128
00129
00130
00131
00132 EtMissType type_ ;
00133
00134 double etTot_ ;
00135
00136 edm::Ref< L1GctEtMissCollection > etMissRef_ ;
00137 edm::Ref< L1GctEtTotalCollection > etTotRef_ ;
00138 edm::Ref< L1GctHtMissCollection > htMissRef_ ;
00139 edm::Ref< L1GctEtHadCollection > etHadRef_ ;
00140
00141 int bx_ ;
00142 };
00143 }
00144
00145 #endif