CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2_patch1/src/SimDataFormats/SLHC/interface/L1CaloJet.h

Go to the documentation of this file.
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