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
00029 class L1EtMissParticle : public reco::LeafCandidate
00030 {
00031
00032 public:
00033 L1EtMissParticle();
00034
00035
00036 L1EtMissParticle(
00037 const LorentzVector& p4,
00038 const double& etTotal,
00039 const double& etHad,
00040 const edm::Ref< L1GctEtMissCollection >& aEtMissRef =
00041 edm::Ref< L1GctEtMissCollection >(),
00042 const edm::Ref< L1GctEtTotalCollection >& aEtTotalRef =
00043 edm::Ref< L1GctEtTotalCollection >(),
00044 const edm::Ref< L1GctEtHadCollection >& aEtHadRef =
00045 edm::Ref< L1GctEtHadCollection >(),
00046 int bx = 0 ) ;
00047
00048 L1EtMissParticle(
00049 const PolarLorentzVector& p4,
00050 const double& etTotal,
00051 const double& etHad,
00052 const edm::Ref< L1GctEtMissCollection >& aEtMissRef =
00053 edm::Ref< L1GctEtMissCollection >(),
00054 const edm::Ref< L1GctEtTotalCollection >& aEtTotalRef =
00055 edm::Ref< L1GctEtTotalCollection >(),
00056 const edm::Ref< L1GctEtHadCollection >& aEtHadRef =
00057 edm::Ref< L1GctEtHadCollection >(),
00058 int bx = 0 ) ;
00059
00060 virtual ~L1EtMissParticle() {}
00061
00062
00063 double etMiss() const
00064 { return et() ; }
00065
00066 const double& etTotal() const
00067 { return etTot_ ; }
00068
00069 const double& etHad() const
00070 { return etHad_ ; }
00071
00072 const edm::Ref< L1GctEtMissCollection >& gctEtMissRef() const
00073 { return etMissRef_ ; }
00074
00075 const edm::Ref< L1GctEtTotalCollection >& gctEtTotalRef() const
00076 { return etTotRef_ ; }
00077
00078 const edm::Ref< L1GctEtHadCollection >& gctEtHadRef() const
00079 { return etHadRef_ ; }
00080
00081 const L1GctEtMiss* gctEtMiss() const
00082 { return etMissRef_.get() ; }
00083
00084 const L1GctEtTotal* gctEtTotal() const
00085 { return etTotRef_.get() ; }
00086
00087 const L1GctEtHad* gctEtHad() const
00088 { return etHadRef_.get() ; }
00089
00090 virtual L1EtMissParticle* clone() const
00091 { return new L1EtMissParticle( *this ) ; }
00092
00093 int bx() const
00094 { return bx_ ; }
00095
00096
00097
00098
00099 void setEtTotal( const double& etTotal )
00100 { etTot_ = etTotal ; }
00101
00102 void setEtHad( const double& etHad )
00103 { etHad_ = etHad ; }
00104
00105 void setBx( int bx )
00106 { bx_ = bx ; }
00107
00108 private:
00109
00110
00111
00112
00113
00114 double etTot_ ;
00115 double etHad_ ;
00116
00117 edm::Ref< L1GctEtMissCollection > etMissRef_ ;
00118 edm::Ref< L1GctEtTotalCollection > etTotRef_ ;
00119 edm::Ref< L1GctEtHadCollection > etHadRef_ ;
00120
00121 int bx_ ;
00122 };
00123 }
00124
00125 #endif