00001 #include "DataFormats/TauReco/interface/BaseTau.h" 00002 00003 using namespace reco; 00004 00005 BaseTau::BaseTau() { 00006 alternatLorentzVect_.SetPx(NAN); 00007 alternatLorentzVect_.SetPy(NAN); 00008 alternatLorentzVect_.SetPz(NAN); 00009 alternatLorentzVect_.SetE(NAN); 00010 00011 TrackRefVector tmp; 00012 TrackRef leadTk; 00013 leadTrack_ = leadTk; 00014 signalTracks_ =tmp ; 00015 isolationTracks_= tmp; 00016 } 00017 00018 BaseTau::BaseTau(Charge q,const LorentzVector& p4,const Point& vtx) : RecoCandidate(q,p4,vtx,-15*q){ 00019 alternatLorentzVect_.SetPx(NAN); 00020 alternatLorentzVect_.SetPy(NAN); 00021 alternatLorentzVect_.SetPz(NAN); 00022 alternatLorentzVect_.SetE(NAN); 00023 00024 TrackRefVector tmp; 00025 TrackRef leadTk; 00026 leadTrack_ = leadTk; 00027 signalTracks_ =tmp ; 00028 isolationTracks_= tmp; 00029 } 00030 00031 BaseTau* BaseTau::clone()const{return new BaseTau(*this);} 00032 00033 math::XYZTLorentzVector BaseTau::alternatLorentzVect()const{return(alternatLorentzVect_);} 00034 void BaseTau::setalternatLorentzVect(math::XYZTLorentzVector x){alternatLorentzVect_=x;} 00035 00036 TrackRef BaseTau::leadTrack() const {return leadTrack_;} 00037 void BaseTau::setleadTrack(const TrackRef& myTrack) { leadTrack_ = myTrack;} 00038 const TrackRefVector& BaseTau::signalTracks() const {return signalTracks_;} 00039 void BaseTau::setsignalTracks(const TrackRefVector& myTracks) { signalTracks_ = myTracks;} 00040 const TrackRefVector& BaseTau::isolationTracks() const {return isolationTracks_;} 00041 void BaseTau::setisolationTracks(const TrackRefVector& myTracks) { isolationTracks_ = myTracks;} 00042 00043 bool BaseTau::overlap(const Candidate& theCand)const{ 00044 const RecoCandidate* theRecoCand=dynamic_cast<const RecoCandidate *>(&theCand); 00045 return (theRecoCand!=0 && (checkOverlap(track(),theRecoCand->track()))); 00046 }