Go to the documentation of this file.00001 #ifndef L1Trigger_L1EmParticle_h
00002 #define L1Trigger_L1EmParticle_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 L1EmParticle : public reco::LeafCandidate
00030 {
00031
00032 public:
00033 enum EmType
00034 {
00035 kIsolated,
00036 kNonIsolated,
00037 kUndefined,
00038 kNumOfEmTypes
00039 } ;
00040
00041 L1EmParticle();
00042
00043 L1EmParticle( const LorentzVector& p4,
00044 const edm::Ref< L1GctEmCandCollection >& aRef,
00045 int bx = 0 ) ;
00046
00047 L1EmParticle( const PolarLorentzVector& p4,
00048 const edm::Ref< L1GctEmCandCollection >& aRef,
00049 int bx = 0 ) ;
00050
00051
00052 L1EmParticle( const LorentzVector& p4,
00053 EmType type = kUndefined,
00054 int bx = 0 ) ;
00055
00056 L1EmParticle( const PolarLorentzVector& p4,
00057 EmType type = kUndefined,
00058 int bx = 0 ) ;
00059
00060 virtual ~L1EmParticle() {}
00061
00062
00063 EmType type() const
00064 { return type_ ; }
00065
00066 const edm::Ref< L1GctEmCandCollection >& gctEmCandRef() const
00067 { return ref_ ; }
00068
00069 const L1GctEmCand* gctEmCand() const
00070 { return ref_.get() ; }
00071
00072 virtual L1EmParticle* clone() const
00073 { return new L1EmParticle( *this ) ; }
00074
00075 int bx() const
00076 { return bx_ ; }
00077
00078
00079
00080
00081 void setType( EmType type )
00082 { type_ = type ; }
00083
00084 void setBx( int bx )
00085 { bx_ = bx ; }
00086
00087 private:
00088
00089
00090
00091
00092
00093 EmType type_ ;
00094 edm::Ref< L1GctEmCandCollection > ref_ ;
00095 int bx_ ;
00096 };
00097 }
00098
00099 #endif