CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidate.h

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