CMS 3D CMS Logo

PFRecoTauDiscriminationByIsolationUsingLeadingPion Class Reference

#include <RecoTauTag/RecoTau/interface/PFRecoTauDiscriminationByIsolationUsingLeadingPion.h>

Inheritance diagram for PFRecoTauDiscriminationByIsolationUsingLeadingPion:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 PFRecoTauDiscriminationByIsolationUsingLeadingPion (const ParameterSet &iConfig)
virtual void produce (Event &, const EventSetup &)
 ~PFRecoTauDiscriminationByIsolationUsingLeadingPion ()

Private Attributes

bool ApplyDiscriminationByECALIsolation_
bool ApplyDiscriminationByTrackerIsolation_
int ECALIsolAnnulus_Candsmaxn_
bool ManipulateTracks_insteadofChargedHadrCands_
InputTag PFTauProducer_
int TrackerIsolAnnulus_Candsmaxn_
int TrackerIsolAnnulus_Tracksmaxn_


Detailed Description

Definition at line 25 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.


Constructor & Destructor Documentation

PFRecoTauDiscriminationByIsolationUsingLeadingPion::PFRecoTauDiscriminationByIsolationUsingLeadingPion ( const ParameterSet iConfig  )  [inline, explicit]

Definition at line 27 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

References ApplyDiscriminationByECALIsolation_, ApplyDiscriminationByTrackerIsolation_, ECALIsolAnnulus_Candsmaxn_, edm::ParameterSet::getParameter(), ManipulateTracks_insteadofChargedHadrCands_, PFTauProducer_, TrackerIsolAnnulus_Candsmaxn_, and TrackerIsolAnnulus_Tracksmaxn_.

00027                                                                                           {   
00028     PFTauProducer_                      = iConfig.getParameter<InputTag>("PFTauProducer");
00029     ApplyDiscriminationByTrackerIsolation_ = iConfig.getParameter<bool>("ApplyDiscriminationByTrackerIsolation");
00030     ManipulateTracks_insteadofChargedHadrCands_ = iConfig.getParameter<bool>("ManipulateTracks_insteadofChargedHadrCands");
00031     TrackerIsolAnnulus_Candsmaxn_       = iConfig.getParameter<int>("TrackerIsolAnnulus_Candsmaxn");       
00032     ApplyDiscriminationByECALIsolation_ = iConfig.getParameter<bool>("ApplyDiscriminationByECALIsolation");
00033     ECALIsolAnnulus_Candsmaxn_          = iConfig.getParameter<int>("ECALIsolAnnulus_Candsmaxn");
00034     //     following parameters are considered when ManipulateTracks_insteadofChargedHadrCands_ parameter is set true
00035     //     *BEGIN*
00036     TrackerIsolAnnulus_Tracksmaxn_      = iConfig.getParameter<int>("TrackerIsolAnnulus_Tracksmaxn");   
00037     //     *END*    
00038     
00039     produces<PFTauDiscriminator>();
00040   }

PFRecoTauDiscriminationByIsolationUsingLeadingPion::~PFRecoTauDiscriminationByIsolationUsingLeadingPion (  )  [inline]

Definition at line 41 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

00041                                                        {
00042     //delete ;
00043   } 


Member Function Documentation

void PFRecoTauDiscriminationByIsolationUsingLeadingPion::produce ( Event iEvent,
const EventSetup iEventSetup 
) [virtual]

Implements edm::EDProducer.

Definition at line 3 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.cc.

References ApplyDiscriminationByECALIsolation_, ApplyDiscriminationByTrackerIsolation_, PFTauElementsOperators::discriminatorByIsolPFChargedHadrCandsN(), PFTauElementsOperators::discriminatorByIsolPFGammaCandsN(), TauElementsOperators::discriminatorByIsolTracksN(), ECALIsolAnnulus_Candsmaxn_, edm::Event::getByLabel(), reco::PFTau::leadPFCand(), reco::BaseTau::leadTrack(), ManipulateTracks_insteadofChargedHadrCands_, reco::Particle::momentum(), PFTauProducer_, edm::Event::put(), TrackerIsolAnnulus_Candsmaxn_, and TrackerIsolAnnulus_Tracksmaxn_.

00003                                                                                                            {
00004   Handle<PFTauCollection> thePFTauCollection;
00005   iEvent.getByLabel(PFTauProducer_,thePFTauCollection);
00006   
00007   // fill the AssociationVector object
00008   auto_ptr<PFTauDiscriminator> thePFTauDiscriminatorByIsolationUsingLeadingPion(new PFTauDiscriminator(PFTauRefProd(thePFTauCollection)));
00009   
00010   for(size_t iPFTau=0;iPFTau<thePFTauCollection->size();++iPFTau) {
00011     PFTauRef thePFTauRef(thePFTauCollection,iPFTau);
00012     PFTau thePFTau=*thePFTauRef;
00013     math::XYZVector thePFTau_XYZVector=thePFTau.momentum();   
00014     PFTauElementsOperators thePFTauElementsOperators(thePFTau);
00015     
00016     if (ApplyDiscriminationByTrackerIsolation_){  
00017       // optional selection by a tracker isolation : ask for 0 charged hadron PFCand / reco::Track in an isolation annulus around a leading PFCand / reco::Track axis
00018       double theTrackerIsolationDiscriminator = 0.;
00019       if (ManipulateTracks_insteadofChargedHadrCands_){
00020         theTrackerIsolationDiscriminator=thePFTauElementsOperators.discriminatorByIsolTracksN(TrackerIsolAnnulus_Tracksmaxn_);
00021       } else theTrackerIsolationDiscriminator=thePFTauElementsOperators.discriminatorByIsolPFChargedHadrCandsN(TrackerIsolAnnulus_Candsmaxn_);      
00022       if (theTrackerIsolationDiscriminator==0.){
00023         thePFTauDiscriminatorByIsolationUsingLeadingPion->setValue(iPFTau,0.);
00024           continue;
00025       }
00026     }    
00027     
00028     if (ApplyDiscriminationByECALIsolation_){
00029       // optional selection by an ECAL isolation : ask for 0 gamma PFCand in an isolation annulus around a leading PFCand
00030       double theECALIsolationDiscriminator =0.;
00031       theECALIsolationDiscriminator=thePFTauElementsOperators.discriminatorByIsolPFGammaCandsN(ECALIsolAnnulus_Candsmaxn_);
00032       if (theECALIsolationDiscriminator==0.){
00033         thePFTauDiscriminatorByIsolationUsingLeadingPion->setValue(iPFTau,0);
00034         continue;
00035       }
00036     }
00037     
00038     // not optional selection : ask for a leading (Pt>minPt) PFCand / reco::Track in a matching cone around the PFJet axis
00039     double theleadElementDiscriminator=1.;
00040     if (ManipulateTracks_insteadofChargedHadrCands_){
00041       if (!thePFTau.leadTrack()) theleadElementDiscriminator=0.;
00042     }else{
00043       if (!thePFTau.leadPFCand()) {
00044         theleadElementDiscriminator=0.;
00045       }
00046     }
00047     if (theleadElementDiscriminator < 0.5)thePFTauDiscriminatorByIsolationUsingLeadingPion->setValue(iPFTau,0);
00048     else thePFTauDiscriminatorByIsolationUsingLeadingPion->setValue(iPFTau,1);
00049   }    
00050   
00051   iEvent.put(thePFTauDiscriminatorByIsolationUsingLeadingPion);
00052   
00053 }


Member Data Documentation

bool PFRecoTauDiscriminationByIsolationUsingLeadingPion::ApplyDiscriminationByECALIsolation_ [private]

Definition at line 50 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().

bool PFRecoTauDiscriminationByIsolationUsingLeadingPion::ApplyDiscriminationByTrackerIsolation_ [private]

Definition at line 47 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().

int PFRecoTauDiscriminationByIsolationUsingLeadingPion::ECALIsolAnnulus_Candsmaxn_ [private]

Definition at line 51 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().

bool PFRecoTauDiscriminationByIsolationUsingLeadingPion::ManipulateTracks_insteadofChargedHadrCands_ [private]

Definition at line 48 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().

InputTag PFRecoTauDiscriminationByIsolationUsingLeadingPion::PFTauProducer_ [private]

Definition at line 46 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().

int PFRecoTauDiscriminationByIsolationUsingLeadingPion::TrackerIsolAnnulus_Candsmaxn_ [private]

Definition at line 49 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().

int PFRecoTauDiscriminationByIsolationUsingLeadingPion::TrackerIsolAnnulus_Tracksmaxn_ [private]

Definition at line 52 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.

Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().


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