00001 #ifndef L1CaloJet_h 00002 #define L1CaloJet_h 00003 00004 /* 00005 This class describves the L1 Reconstructed jet M.Bachtis,S.Dasu University of Wisconsin - Madison */ 00006 00007 #include "DataFormats/Math/interface/LorentzVector.h" 00008 #include <vector> 00009 #include "SimDataFormats/SLHC/interface/L1CaloRegionFwd.h" 00010 #include "SimDataFormats/SLHC/interface/L1CaloRegion.h" 00011 00012 namespace l1slhc 00013 { 00014 00015 class L1CaloJet 00016 { 00017 00018 public: 00019 00020 L1CaloJet( ); 00021 L1CaloJet( const int&, const int& ); 00022 ~L1CaloJet( ); 00023 00024 // getters 00025 const int& iEta( ) const; 00026 const int& iPhi( ) const; 00027 const int& E( ) const; 00028 const bool& central( ) const; 00029 const math::PtEtaPhiMLorentzVector& p4( ) const; // returns LorentzVector in eta,phi space 00030 00031 // Setters 00032 void setP4( const math::PtEtaPhiMLorentzVector & ); 00033 void setCentral( const bool& ); 00034 void setE( const int& ); 00035 00036 void addConstituent( const L1CaloRegionRef & ); 00037 int hasConstituent( const int&, const int& ); 00038 void removeConstituent( const int&, const int& ); 00039 00040 const L1CaloRegionRefVector& getConstituents( ) const; 00041 00042 00043 00044 private: 00045 int mIeta; 00046 int mIphi; 00047 int mE; 00048 bool mCentral; 00049 00050 L1CaloRegionRefVector mConstituents; 00051 math::PtEtaPhiMLorentzVector mP4; 00052 00053 }; 00054 00055 00056 } 00057 00058 00059 // Sorting functor 00060 namespace std{ 00061 bool operator< ( const l1slhc::L1CaloJet & aLeft, const l1slhc::L1CaloJet & aRight ); 00062 } 00063 00064 00065 std::ostream & operator<<( std::ostream & , const l1slhc::L1CaloJet & ); 00066 00067 #endif