00001 #ifndef HcalIsolatedTrack_IsolatedPixelTrackCandidate_h 00002 #define HcalIsolatedTrack_IsolatedPixelTrackCandidate_h 00003 00008 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" 00009 #include "DataFormats/TrackReco/interface/Track.h" 00010 #include "DataFormats/L1Trigger/interface/L1JetParticle.h" 00011 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" 00012 00013 #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidateFwd.h" 00014 00015 namespace reco { 00016 00017 class IsolatedPixelTrackCandidate: public RecoCandidate { 00018 00019 public: 00020 00022 IsolatedPixelTrackCandidate() : RecoCandidate() { } 00024 IsolatedPixelTrackCandidate(const reco::TrackRef & tr, const l1extra::L1JetParticleRef & tauRef, double max, double sum): 00025 RecoCandidate( 0, LorentzVector(tr->px(),tr->py(),tr->pz(),tr->p()) ), 00026 track_(tr), l1tauJet_(tauRef), maxPtPxl_(max), sumPtPxl_(sum) 00027 { 00028 enIn_=-1; 00029 enOut_=-1; 00030 nhitIn_=-1; 00031 nhitOut_=-1; 00032 } 00033 00035 IsolatedPixelTrackCandidate(const l1extra::L1JetParticleRef & tauRef, double enIn, double enOut, int nhitIn, int nhitOut): 00036 RecoCandidate( 0, LorentzVector(tauRef->px(),tauRef->py(),tauRef->pz(),tauRef->p()) ), 00037 l1tauJet_(tauRef), enIn_(enIn), enOut_(enOut), nhitIn_(nhitIn), nhitOut_(nhitOut) 00038 { 00039 maxPtPxl_=-1; 00040 sumPtPxl_=-1; 00041 } 00042 00044 virtual ~IsolatedPixelTrackCandidate(); 00046 virtual IsolatedPixelTrackCandidate * clone() const; 00048 virtual reco::TrackRef track() const; 00050 double maxPtPxl() const {return maxPtPxl_;} 00052 double sumPtPxl() const {return sumPtPxl_;} 00053 00055 void setTrack( const reco::TrackRef & tr ) { track_ = tr; } 00056 00058 virtual l1extra::L1JetParticleRef l1tau() const; 00059 00061 double energyIn() const {return enIn_; } 00062 void SetEnergyIn(double a) {enIn_=a;} 00063 00065 double energyOut() const {return enOut_;} 00066 void SetEnergyOut(double a) {enOut_=a;} 00067 00069 int nHitIn() const {return nhitIn_;} 00070 void SetNHitIn(int a) {nhitIn_=a;} 00071 00073 int nHitOut() const {return nhitOut_;} 00074 void SetNHitOut(int a) {nhitOut_=a;} 00075 00077 void setL1TauJet( const l1extra::L1JetParticleRef & tauRef ) { l1tauJet_ = tauRef; } 00078 00079 private: 00081 virtual bool overlap( const Candidate & ) const; 00083 reco::TrackRef track_; 00085 l1extra::L1JetParticleRef l1tauJet_; 00087 double maxPtPxl_; 00089 double sumPtPxl_; 00091 double enIn_; 00093 double enOut_; 00095 int nhitIn_; 00097 int nhitOut_; 00098 00099 }; 00100 00101 00102 } 00103 00104 #endif