#include <RecoTauTag/RecoTau/interface/PFRecoTauDiscriminationByIsolationUsingLeadingPion.h>
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_ |
Definition at line 25 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.
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] |
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 }
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().
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().
Definition at line 46 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.
Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().
Definition at line 49 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.
Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().
Definition at line 52 of file PFRecoTauDiscriminationByIsolationUsingLeadingPion.h.
Referenced by PFRecoTauDiscriminationByIsolationUsingLeadingPion(), and produce().