00001 #ifndef RecoTauTag_RecoTau_PFRecoTauDiscriminationByIsolationUsingLeadingPion_H_ 00002 #define RecoTauTag_RecoTau_PFRecoTauDiscriminationByIsolationUsingLeadingPion_H_ 00003 00004 /* class PFRecoTauDiscriminationByIsolationUsingLeadingPion 00005 * created : Jul 23 2007, 00006 * revised : Sep 5 2007, 00007 * contributors : Ludovic Houchu (Ludovic.Houchu@cern.ch ; IPHC, Strasbourg), Christian Veelken (veelken@fnal.gov ; UC Davis) 00008 */ 00009 00010 #include "FWCore/Framework/interface/EDProducer.h" 00011 #include "FWCore/Framework/interface/Event.h" 00012 #include "FWCore/Framework/interface/EventSetup.h" 00013 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00014 00015 #include "DataFormats/TauReco/interface/PFTau.h" 00016 #include "DataFormats/TauReco/interface/PFTauDiscriminator.h" 00017 00018 #include "RecoTauTag/TauTagTools/interface/PFTauElementsOperators.h" 00019 00020 using namespace std; 00021 using namespace edm; 00022 using namespace edm::eventsetup; 00023 using namespace reco; 00024 00025 class PFRecoTauDiscriminationByIsolationUsingLeadingPion : public EDProducer { 00026 public: 00027 explicit PFRecoTauDiscriminationByIsolationUsingLeadingPion(const ParameterSet& iConfig){ 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 } 00041 ~PFRecoTauDiscriminationByIsolationUsingLeadingPion(){ 00042 //delete ; 00043 } 00044 virtual void produce(Event&, const EventSetup&); 00045 private: 00046 InputTag PFTauProducer_; 00047 bool ApplyDiscriminationByTrackerIsolation_; 00048 bool ManipulateTracks_insteadofChargedHadrCands_; 00049 int TrackerIsolAnnulus_Candsmaxn_; 00050 bool ApplyDiscriminationByECALIsolation_; 00051 int ECALIsolAnnulus_Candsmaxn_; 00052 int TrackerIsolAnnulus_Tracksmaxn_; 00053 }; 00054 #endif 00055