CMS 3D CMS Logo

ConeIsolationAlgorithm Class Reference

#include <RecoTauTag/ConeIsolation/interface/ConeIsolationAlgorithm.h>

List of all members.

Public Member Functions

 ConeIsolationAlgorithm ()
 ConeIsolationAlgorithm (const edm::ParameterSet &parameters)
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::Vertexm_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


Detailed Description

Definition at line 15 of file ConeIsolationAlgorithm.h.


Constructor & Destructor Documentation

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   ) 

Definition at line 6 of file ConeIsolationAlgorithm.cc.

00007 { }

ConeIsolationAlgorithm::~ConeIsolationAlgorithm (  )  [inline]

Definition at line 25 of file ConeIsolationAlgorithm.h.

00025 {}


Member Function Documentation

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 }


Member Data Documentation

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.

reco::Vertex* ConeIsolationAlgorithm::m_primaryVertex [private]

Definition at line 34 of file ConeIsolationAlgorithm.h.

Referenced by setPrimaryVertex().

double ConeIsolationAlgorithm::matching_cone [private]

Definition at line 44 of file ConeIsolationAlgorithm.h.

Referenced by ConeIsolationAlgorithm(), and tag().

int ConeIsolationAlgorithm::n_tracks_isolation_ring [private]

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().

bool ConeIsolationAlgorithm::useVertexConstrain_ [private]

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:16:44 2009 for CMSSW by  doxygen 1.5.4