4 #include <Math/GenVector/VectorUtil.h>
14 for(;myTrack != selectedTracks_.
end(); myTrack++)
17 float pt_tk = (*myTrack)->pt();
19 if ( deltaR < size && pt_tk > pt_min) tmp.
push_back( *myTrack);
31 for(;myTrack != selectedTracks_.
end(); myTrack++)
34 float pt_tk = (*myTrack)->pt();
36 if ( deltaR < size && pt_tk > pt_min && fabs((*myTrack)->dz() - z_pv) < dz_lt) tmp.
push_back( *myTrack);
44 void IsolatedTauTagInfo::setLeadingTrack(
const TrackRef leadTk) {
49 const TrackRef IsolatedTauTagInfo::leadingSignalTrack()
const {
53 const TrackRef IsolatedTauTagInfo::leadingSignalTrack(
const float rm_cone,
const float pt_min)
const {
55 const Jet & myjet = *
jet();
60 float pt_cut = pt_min;
61 if (sTracks.size() >0)
64 for(;myTrack!=sTracks.
end();myTrack++)
66 if((*myTrack)->pt() > pt_cut) {
68 pt_cut = (*myTrack)->pt();
76 const TrackRef IsolatedTauTagInfo::leadingSignalTrack(
const math::XYZVector& myVector,
const float rm_cone,
const float pt_min)
const {
79 float pt_cut = pt_min;
80 if (sTracks.
size() >0)
83 for(;myTrack!=sTracks.
end();myTrack++)
85 if((*myTrack)->pt() > pt_cut) {
87 pt_cut = (*myTrack)->pt();
96 double myDiscriminator = 0.;
97 const TrackRef leadTk = leadingSignalTrack(m_cone, pt_min_lt);
100 return myDiscriminator;
103 if(sig_cone > iso_cone)
return 1.;
109 if (signalTracks.
size() > 0 && (int)(isolationTracks.
size() - signalTracks.
size()) <= nTracksIsoRing)
112 return myDiscriminator;
117 double myDiscriminator = 0;
119 if(sig_cone > iso_cone)
return 1.;
121 const TrackRef leadTk = leadingSignalTrack(myVector, m_cone, pt_min_lt);
122 if(!leadTk)
return myDiscriminator;
125 if(sig_cone > iso_cone)
return 1.;
131 if (signalTracks.
size() > 0 && (int)(isolationTracks.
size() - signalTracks.
size()) <= nTracksIsoRing)
134 return myDiscriminator;
139 double myDiscriminator = 0;
141 const TrackRef leadTk = leadingSignalTrack(m_cone, pt_min_lt);
144 return myDiscriminator;
147 if(sig_cone > iso_cone)
return 1.;
150 float z_pv = leadTk->dz();
154 if (signalTracks.
size() > 0 && (int)(isolationTracks.
size() - signalTracks.
size()) <= nTracksIsoRing)
157 return myDiscriminator;
162 double myDiscriminator = 0;
164 const TrackRef leadTk = leadingSignalTrack(myVector, m_cone, pt_min_lt);
165 if(!leadTk)
return myDiscriminator;
167 if(sig_cone > iso_cone)
return 1.;
170 float z_pv = leadTk->dz();
174 if (signalTracks.
size() > 0 && (int)(isolationTracks.
size() - signalTracks.
size()) <= nTracksIsoRing)
177 return myDiscriminator;
Base class for all types of Jets.
const_iterator end() const
Termination of iteration.
const_iterator begin() const
Initialize an iterator over the RefVector.
double deltaR(double eta1, double eta2, double phi1, double phi2)
virtual double px() const
x coordinate of momentum vector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
virtual double pz() const
z coordinate of momentum vector
std::vector< std::vector< double > > tmp
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
size_type size() const
Size of the RefVector.
tuple size
Write out results.
virtual double py() const
y coordinate of momentum vector