00001 // $Id: RecoCandidate.cc,v 1.14 2008/07/18 15:48:32 gpetrucc Exp $ 00002 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" 00003 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h" 00004 00005 using namespace reco; 00006 00007 RecoCandidate::~RecoCandidate() { } 00008 00009 TrackRef RecoCandidate::track() const { 00010 return TrackRef(); 00011 } 00012 00013 TrackRef RecoCandidate::track( size_t ) const { 00014 return TrackRef(); 00015 } 00016 00017 size_t RecoCandidate::numberOfTracks() const { 00018 return 0; 00019 } 00020 00021 GsfTrackRef RecoCandidate::gsfTrack() const { 00022 return GsfTrackRef(); 00023 } 00024 00025 TrackRef RecoCandidate::standAloneMuon() const { 00026 return TrackRef(); 00027 } 00028 00029 TrackRef RecoCandidate::combinedMuon() const { 00030 return TrackRef(); 00031 } 00032 00033 SuperClusterRef RecoCandidate::superCluster() const { 00034 return SuperClusterRef(); 00035 } 00036 00037 CaloTowerRef RecoCandidate::caloTower() const { 00038 return CaloTowerRef(); 00039 } 00040 00041 const Track * RecoCandidate::bestTrack() const { 00042 TrackRef muRef = combinedMuon(); 00043 if( muRef.isNonnull() ) 00044 return muRef.get(); 00045 TrackRef trkRef = track(); 00046 if ( trkRef.isNonnull() ) 00047 return trkRef.get(); 00048 GsfTrackRef gsfTrkRef = gsfTrack(); 00049 if ( gsfTrkRef.isNonnull() ) 00050 return gsfTrkRef.get(); 00051 TrackRef staRef = standAloneMuon(); 00052 if ( staRef.isNonnull() ) 00053 return staRef.get(); 00054 return 0; 00055 } 00056 00057 TrackBaseRef RecoCandidate::bestTrackRef() const { 00058 TrackRef muRef = combinedMuon(); 00059 if( muRef.isNonnull() ) return TrackBaseRef(muRef); 00060 TrackRef trkRef = track(); 00061 if ( trkRef.isNonnull() ) return TrackBaseRef(trkRef); 00062 GsfTrackRef gsfTrkRef = gsfTrack(); 00063 if ( gsfTrkRef.isNonnull() ) return TrackBaseRef(gsfTrkRef); 00064 TrackRef staRef = standAloneMuon(); 00065 if ( staRef.isNonnull() ) return TrackBaseRef(staRef); 00066 return TrackBaseRef(); 00067 } 00068 00069 00070 RecoCandidate::TrackType RecoCandidate::bestTrackType() const { 00071 if( combinedMuon().isNonnull() ) 00072 return recoTrackType; 00073 if ( track().isNonnull() ) 00074 return recoTrackType; 00075 if ( gsfTrack().isNonnull() ) 00076 return gsfTrackType; 00077 return noTrackType; 00078 }