Go to the documentation of this file.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 #include <vector>
00016 #include <map>
00017 #include <utility>
00018
00019 namespace reco {
00020
00021 class IsolatedPixelTrackCandidate: public RecoCandidate {
00022
00023 public:
00024
00026 IsolatedPixelTrackCandidate() : RecoCandidate() { }
00028 IsolatedPixelTrackCandidate(const LorentzVector& v): RecoCandidate(0,v)
00029 {
00030 enIn_=-1;
00031 enOut_=-1;
00032 nhitIn_=-1;
00033 nhitOut_=-1;
00034 maxPtPxl_=-1;
00035 sumPtPxl_=-1;
00036 }
00038 IsolatedPixelTrackCandidate(const reco::TrackRef & tr, const l1extra::L1JetParticleRef & tauRef, double max, double sum):
00039 RecoCandidate( 0, LorentzVector((tr.get()->px()),(tr.get())->py(),(tr.get())->pz(),(tr.get())->p()) ),
00040 track_(tr), l1tauJet_(tauRef), maxPtPxl_(max), sumPtPxl_(sum)
00041 {
00042 enIn_=-1;
00043 enOut_=-1;
00044 nhitIn_=-1;
00045 nhitOut_=-1;
00046 }
00047
00049 IsolatedPixelTrackCandidate(const l1extra::L1JetParticleRef & tauRef, double enIn, double enOut, int nhitIn, int nhitOut):
00050 RecoCandidate( 0, LorentzVector(tauRef->px(),tauRef->py(),tauRef->pz(),tauRef->p()) ),
00051 l1tauJet_(tauRef), enIn_(enIn), enOut_(enOut), nhitIn_(nhitIn), nhitOut_(nhitOut)
00052 {
00053 maxPtPxl_=-1;
00054 sumPtPxl_=-1;
00055 }
00056
00057
00058
00059
00061 virtual ~IsolatedPixelTrackCandidate();
00062
00064 virtual IsolatedPixelTrackCandidate * clone() const;
00065
00067 virtual reco::TrackRef track() const;
00068 void setTrack( const reco::TrackRef & tr ) { track_ = tr; }
00069
00071 double maxPtPxl() const {return maxPtPxl_;}
00072 void SetMaxPtPxl(double mptpxl) {maxPtPxl_=mptpxl;}
00073
00075 double sumPtPxl() const {return sumPtPxl_;}
00076 void SetSumPtPxl(double sumptpxl) {sumPtPxl_=sumptpxl;}
00077
00079 virtual l1extra::L1JetParticleRef l1tau() const;
00080 void setL1TauJet( const l1extra::L1JetParticleRef & tauRef ) { l1tauJet_ = tauRef; }
00081
00083 double energyIn() const {return enIn_; }
00084 void SetEnergyIn(double a) {enIn_=a;}
00085
00087 double energyOut() const {return enOut_;}
00088 void SetEnergyOut(double a) {enOut_=a;}
00089
00091 int nHitIn() const {return nhitIn_;}
00092 void SetNHitIn(int a) {nhitIn_=a;}
00093
00095 int nHitOut() const {return nhitOut_;}
00096 void SetNHitOut(int a) {nhitOut_=a;}
00097
00099 std::pair<int,int> towerIndex() const;
00100
00101 private:
00103 virtual bool overlap( const Candidate & ) const;
00105 reco::TrackRef track_;
00107 l1extra::L1JetParticleRef l1tauJet_;
00109 double maxPtPxl_;
00111 double sumPtPxl_;
00113 double enIn_;
00115 double enOut_;
00117 int nhitIn_;
00119 int nhitOut_;
00120
00121 };
00122
00123
00124 }
00125
00126 #endif