CMS 3D CMS Logo

Public Member Functions | Private Attributes

PFRecoTauDiscriminationByLeadingObjectPtCut Class Reference

Inheritance diagram for PFRecoTauDiscriminationByLeadingObjectPtCut:
TauDiscriminationProducerBase< TauType, TauDiscriminator > edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

double discriminate (const PFTauRef &pfTau)
 PFRecoTauDiscriminationByLeadingObjectPtCut (const edm::ParameterSet &iConfig)
 ~PFRecoTauDiscriminationByLeadingObjectPtCut ()

Private Attributes

bool chargedOnly_
double minPtLeadObject_

Detailed Description

Definition at line 12 of file PFRecoTauDiscriminationByLeadingObjectPtCut.cc.


Constructor & Destructor Documentation

PFRecoTauDiscriminationByLeadingObjectPtCut::PFRecoTauDiscriminationByLeadingObjectPtCut ( const edm::ParameterSet iConfig) [inline, explicit]

Definition at line 14 of file PFRecoTauDiscriminationByLeadingObjectPtCut.cc.

References edm::ParameterSet::getParameter().

                                                                                          :PFTauDiscriminationProducerBase(iConfig){   
         chargedOnly_     = iConfig.getParameter<bool>("UseOnlyChargedHadrons");
         minPtLeadObject_ = iConfig.getParameter<double>("MinPtLeadingObject");
      }
PFRecoTauDiscriminationByLeadingObjectPtCut::~PFRecoTauDiscriminationByLeadingObjectPtCut ( ) [inline]

Definition at line 18 of file PFRecoTauDiscriminationByLeadingObjectPtCut.cc.

{} 

Member Function Documentation

double PFRecoTauDiscriminationByLeadingObjectPtCut::discriminate ( const PFTauRef pfTau)

Definition at line 25 of file PFRecoTauDiscriminationByLeadingObjectPtCut.cc.

References edm::Ref< C, T, F >::isNonnull().

{
   double leadObjectPt = -1.;
   if( chargedOnly_ )
   {
      // consider only charged hadrons.  note that the leadPFChargedHadrCand is the highest pt
      // charged signal cone object above the quality cut level (typically 0.5 GeV).  
      if( thePFTauRef->leadPFChargedHadrCand().isNonnull() )
      {
         leadObjectPt = thePFTauRef->leadPFChargedHadrCand()->pt();
      }
   } 
   else
   {
      // If using the 'leading pion' option, require that:
      //   1) at least one charged hadron exists above threshold (thePFTauRef->leadPFChargedHadrCand().isNonnull())
      //   2) the lead PFCand exists.  In the case that the highest pt charged hadron is above the PFRecoTauProducer threshold 
      //      (typically 5 GeV), the leadPFCand and the leadPFChargedHadrCand are the same object.  If the leadPFChargedHadrCand
      //      is below 5GeV, but there exists a neutral PF particle > 5 GeV, it is set to be the leadPFCand
      if( thePFTauRef->leadPFCand().isNonnull() && thePFTauRef->leadPFChargedHadrCand().isNonnull() )
      {
         leadObjectPt = thePFTauRef->leadPFCand()->pt();
      }
   }

   return ( leadObjectPt > minPtLeadObject_ ? 1. : 0. );
}

Member Data Documentation