#include <RecoTauTag/ConeIsolation/interface/ConeIsolationAlgorithm.h>
Public Member Functions | |
ConeIsolationAlgorithm () | |
ConeIsolationAlgorithm (const edm::ParameterSet ¶meters) | |
void | setPrimaryVertex (reco::Vertex *pv) |
std::pair< float, reco::IsolatedTauTagInfo > | tag (const reco::JetTracksAssociationRef &jetTracks, const reco::Vertex &pv) |
~ConeIsolationAlgorithm () | |
Private Attributes | |
double | dZ_vertex |
double | isolation_cone |
double | m_cutMaxChiSquared |
double | m_cutMaxDecayLen |
double | m_cutMaxTIP |
double | m_cutMinPt |
int | m_cutPixelHits |
int | m_cutTotalHits |
int | m_nthTrack |
reco::Vertex * | m_primaryVertex |
double | matching_cone |
int | n_tracks_isolation_ring |
double | pt_min_isolation |
double | pt_min_leadTrack |
double | signal_cone |
bool | useFixedSizeCone |
bool | useVertexConstrain_ |
double | variableConeParameter |
double | variableMaxCone |
double | variableMinCone |
Definition at line 15 of file ConeIsolationAlgorithm.h.
ConeIsolationAlgorithm::ConeIsolationAlgorithm | ( | const edm::ParameterSet & | parameters | ) |
Definition at line 9 of file ConeIsolationAlgorithm.cc.
References dZ_vertex, edm::ParameterSet::getParameter(), isolation_cone, m_cutMaxChiSquared, m_cutMaxTIP, m_cutMinPt, m_cutPixelHits, m_cutTotalHits, matching_cone, n_tracks_isolation_ring, pt_min_isolation, pt_min_leadTrack, signal_cone, useFixedSizeCone, useVertexConstrain_, variableConeParameter, variableMaxCone, and variableMinCone.
00010 { 00011 //FIXME: use unsigned int where needed 00012 m_cutPixelHits = parameters.getParameter<int>("MinimumNumberOfPixelHits"); // not used 00013 m_cutTotalHits = parameters.getParameter<int>("MinimumNumberOfHits"); 00014 m_cutMaxTIP = parameters.getParameter<double>("MaximumTransverseImpactParameter"); 00015 m_cutMinPt = parameters.getParameter<double>("MinimumTransverseMomentum"); 00016 m_cutMaxChiSquared = parameters.getParameter<double>("MaximumChiSquared"); 00017 dZ_vertex = parameters.getParameter<double>("DeltaZetTrackVertex"); // to be modified 00018 useVertexConstrain_ = parameters.getParameter<bool>("useVertex"); 00019 00020 matching_cone = parameters.getParameter<double>("MatchingCone"); 00021 signal_cone = parameters.getParameter<double>("SignalCone"); 00022 isolation_cone = parameters.getParameter<double>("IsolationCone"); 00023 pt_min_isolation = parameters.getParameter<double>("MinimumTransverseMomentumInIsolationRing"); 00024 pt_min_leadTrack = parameters.getParameter<double>("MinimumTransverseMomentumLeadingTrack"); 00025 n_tracks_isolation_ring = parameters.getParameter<int>("MaximumNumberOfTracksIsolationRing"); 00026 00027 useFixedSizeCone = parameters.getParameter<bool>("UseFixedSizeCone"); 00028 variableConeParameter = parameters.getParameter<double>("VariableConeParameter"); 00029 variableMaxCone = parameters.getParameter<double>("VariableMaxCone"); 00030 variableMinCone = parameters.getParameter<double>("VariableMinCone"); 00031 }
ConeIsolationAlgorithm::ConeIsolationAlgorithm | ( | void | ) |
ConeIsolationAlgorithm::~ConeIsolationAlgorithm | ( | ) | [inline] |
void ConeIsolationAlgorithm::setPrimaryVertex | ( | reco::Vertex * | pv | ) | [inline] |
Definition at line 28 of file ConeIsolationAlgorithm.h.
References m_primaryVertex.
00028 {m_primaryVertex = pv;}
pair< float, IsolatedTauTagInfo > ConeIsolationAlgorithm::tag | ( | const reco::JetTracksAssociationRef & | jetTracks, | |
const reco::Vertex & | pv | |||
) |
Definition at line 33 of file ConeIsolationAlgorithm.cc.
References edm::RefVector< C, T, F >::begin(), reco::IsolatedTauTagInfo::discriminator(), dZ_vertex, edm::RefVector< C, T, F >::end(), int, isolation_cone, it, reco::IsolatedTauTagInfo::leadingSignalTrack(), m_cutMaxChiSquared, m_cutMaxTIP, m_cutMinPt, m_cutPixelHits, m_cutTotalHits, matching_cone, max, min, n_tracks_isolation_ring, reco::Vertex::position(), pt_min_isolation, pt_min_leadTrack, edm::RefVector< C, T, F >::push_back(), reco::IsolatedTauTagInfo::setDiscriminator(), reco::IsolatedTauTagInfo::setLeadingTrack(), signal_cone, tracks, useFixedSizeCone, useVertexConstrain_, variableConeParameter, variableMaxCone, variableMinCone, and reco::Vertex::z().
Referenced by ConeIsolation::produce().
00034 { 00035 const edm::RefVector<reco::TrackCollection> & tracks = jetTracks->second; 00036 edm::RefVector<reco::TrackCollection> myTracks; 00037 00038 // Selection of the Tracks 00039 float z_pv = pv.z(); 00040 for(edm::RefVector<reco::TrackCollection>::const_iterator it = tracks.begin(); it!= tracks.end(); ++it) 00041 { 00042 if ( (*it)->pt() > m_cutMinPt && 00043 (*it)->normalizedChi2() < m_cutMaxChiSquared && 00044 fabs((*it)->dxy(pv.position())) < m_cutMaxTIP && 00045 (*it)->recHitsSize() >= (unsigned int) m_cutTotalHits && 00046 (*it)->hitPattern().numberOfValidPixelHits() >= m_cutPixelHits ) 00047 { 00048 if (useVertexConstrain_ && z_pv > -500.) { 00049 if (fabs((*it)->dz(pv.position())) < dZ_vertex) 00050 myTracks.push_back(*it); 00051 } else 00052 myTracks.push_back(*it); 00053 } 00054 } 00055 IsolatedTauTagInfo resultExtended(myTracks,jetTracks); 00056 00057 double r_sigCone = signal_cone; 00058 double energyJet = jetTracks->first->energy(); 00059 if (not useFixedSizeCone) { 00060 r_sigCone = std::min(variableMaxCone, variableConeParameter / energyJet); 00061 r_sigCone = std::max((double)r_sigCone, variableMinCone); 00062 } 00063 00064 // now I can use it for the discriminator; 00065 math::XYZVector jetDir(jetTracks->first->px(), jetTracks->first->py(), jetTracks->first->pz()); 00066 float discriminator = 0.; 00067 if (useVertexConstrain_) { 00068 // In this case all the selected tracks comes from the same vertex, so no need to pass the dZ_vertex requirement to the discriminator 00069 const TrackRef myLeadTk = resultExtended.leadingSignalTrack( matching_cone, pt_min_leadTrack); 00070 resultExtended.setLeadingTrack(myLeadTk); 00071 discriminator = resultExtended.discriminator(jetDir, matching_cone, r_sigCone, isolation_cone, pt_min_leadTrack, pt_min_isolation, n_tracks_isolation_ring); 00072 resultExtended.setDiscriminator(discriminator); 00073 } else { 00074 // In this case the dZ_vertex is used to associate the tracks to the Z_imp parameter of the Leading Track 00075 const TrackRef myLeadTk = resultExtended.leadingSignalTrack( matching_cone, pt_min_leadTrack); 00076 resultExtended.setLeadingTrack(myLeadTk); 00077 discriminator = resultExtended.discriminator(jetDir, matching_cone, r_sigCone, isolation_cone, pt_min_leadTrack, pt_min_isolation, n_tracks_isolation_ring, dZ_vertex); 00078 resultExtended.setDiscriminator(discriminator); 00079 } 00080 00081 return std::make_pair(discriminator, resultExtended); 00082 }
double ConeIsolationAlgorithm::dZ_vertex [private] |
Definition at line 49 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::isolation_cone [private] |
Definition at line 46 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::m_cutMaxChiSquared [private] |
Definition at line 43 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::m_cutMaxDecayLen [private] |
Definition at line 42 of file ConeIsolationAlgorithm.h.
double ConeIsolationAlgorithm::m_cutMaxTIP [private] |
Definition at line 40 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::m_cutMinPt [private] |
Definition at line 41 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
int ConeIsolationAlgorithm::m_cutPixelHits [private] |
Definition at line 38 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
int ConeIsolationAlgorithm::m_cutTotalHits [private] |
Definition at line 39 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
int ConeIsolationAlgorithm::m_nthTrack [private] |
Definition at line 37 of file ConeIsolationAlgorithm.h.
double ConeIsolationAlgorithm::matching_cone [private] |
Definition at line 44 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
Definition at line 50 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::pt_min_isolation [private] |
Definition at line 47 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::pt_min_leadTrack [private] |
Definition at line 48 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::signal_cone [private] |
Definition at line 45 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
bool ConeIsolationAlgorithm::useFixedSizeCone [private] |
Definition at line 52 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
Definition at line 51 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::variableConeParameter [private] |
Definition at line 53 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::variableMaxCone [private] |
Definition at line 54 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().
double ConeIsolationAlgorithm::variableMinCone [private] |
Definition at line 55 of file ConeIsolationAlgorithm.h.
Referenced by ConeIsolationAlgorithm(), and tag().