Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include "DataFormats/TauReco/interface/BaseTau.h"

using namespace reco;

BaseTau::BaseTau() {
  alternatLorentzVect_.SetPx(NAN);
  alternatLorentzVect_.SetPy(NAN);
  alternatLorentzVect_.SetPz(NAN);
  alternatLorentzVect_.SetE(NAN);
}

BaseTau::BaseTau(Charge q, const LorentzVector& p4, const Point& vtx) : RecoCandidate(q, p4, vtx, -15 * q) {
  alternatLorentzVect_.SetPx(NAN);
  alternatLorentzVect_.SetPy(NAN);
  alternatLorentzVect_.SetPz(NAN);
  alternatLorentzVect_.SetE(NAN);
}

BaseTau* BaseTau::clone() const { return new BaseTau(*this); }

math::XYZTLorentzVector BaseTau::alternatLorentzVect() const { return (alternatLorentzVect_); }
void BaseTau::setalternatLorentzVect(const math::XYZTLorentzVector& x) { alternatLorentzVect_ = x; }

TrackRef BaseTau::leadTrack() const { return leadTrack_; }
void BaseTau::setleadTrack(const TrackRef& myTrack) { leadTrack_ = myTrack; }
const TrackRefVector& BaseTau::signalTracks() const { return signalTracks_; }
void BaseTau::setsignalTracks(const TrackRefVector& myTracks) { signalTracks_ = myTracks; }
const TrackRefVector& BaseTau::isolationTracks() const { return isolationTracks_; }
void BaseTau::setisolationTracks(const TrackRefVector& myTracks) { isolationTracks_ = myTracks; }

bool BaseTau::overlap(const Candidate& theCand) const {
  const RecoCandidate* theRecoCand = dynamic_cast<const RecoCandidate*>(&theCand);
  return (theRecoCand != nullptr && (checkOverlap(track(), theRecoCand->track())));
}