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 } 00012 00013 BaseTau::BaseTau(Charge q,const LorentzVector& p4,const Point& vtx) : RecoCandidate(q,p4,vtx,-15*q){ 00014 alternatLorentzVect_.SetPx(NAN); 00015 alternatLorentzVect_.SetPy(NAN); 00016 alternatLorentzVect_.SetPz(NAN); 00017 alternatLorentzVect_.SetE(NAN); 00018 00019 } 00020 00021 BaseTau* BaseTau::clone()const{return new BaseTau(*this);} 00022 00023 math::XYZTLorentzVector BaseTau::alternatLorentzVect()const{return(alternatLorentzVect_);} 00024 void BaseTau::setalternatLorentzVect(math::XYZTLorentzVector x){alternatLorentzVect_=x;} 00025 00026 TrackRef BaseTau::leadTrack() const {return leadTrack_;} 00027 void BaseTau::setleadTrack(const TrackRef& myTrack) { leadTrack_ = myTrack;} 00028 const TrackRefVector& BaseTau::signalTracks() const {return signalTracks_;} 00029 void BaseTau::setsignalTracks(const TrackRefVector& myTracks) { signalTracks_ = myTracks;} 00030 const TrackRefVector& BaseTau::isolationTracks() const {return isolationTracks_;} 00031 void BaseTau::setisolationTracks(const TrackRefVector& myTracks) { isolationTracks_ = myTracks;} 00032 00033 bool BaseTau::overlap(const Candidate& theCand)const{ 00034 const RecoCandidate* theRecoCand=dynamic_cast<const RecoCandidate *>(&theCand); 00035 return (theRecoCand!=0 && (checkOverlap(track(),theRecoCand->track()))); 00036 }