CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/RecoTauTag/HLTProducers/interface/PFTauVertexSelector.h

Go to the documentation of this file.
00001 #ifndef PFTauVertexSelector_H
00002 #define PFTauVertexSelector_H
00003 
00004 #include "FWCore/Framework/interface/Event.h"
00005 #include "FWCore/Framework/interface/MakerMacros.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "FWCore/Framework/interface/EDFilter.h"
00008 
00009 #include "DataFormats/TauReco/interface/PFTau.h"
00010 #include "DataFormats/VertexReco/interface/Vertex.h"
00011 #include "DataFormats/TrackReco/interface/Track.h"
00012 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
00013 #include "DataFormats/Math/interface/Point3D.h"
00014 #include "DataFormats/Math/interface/Error.h"
00015 
00016 /* 
00017  * class PFTauVertexSelector
00018  * created : January 26 2012,
00019  * revised : Wed Jan 26 11:13:04 PDT 2012
00020  * Authors : Andreas Hinzmann (CERN)
00021  */
00022 
00023 class PFTauVertexSelector : public edm::EDFilter  {
00024    public:
00025       explicit PFTauVertexSelector(const edm::ParameterSet& iConfig){   
00026          tauSrc_ = iConfig.getParameter<edm::InputTag>("tauSrc");
00027          useVertex_ = iConfig.getParameter<bool>("useVertex");
00028          vertexSrc_ = iConfig.getParameter<edm::InputTag>("vertexSrc");
00029          useBeamSpot_ = iConfig.getParameter<bool>("useBeamSpot");
00030          beamSpotSrc_ = iConfig.getParameter<edm::InputTag>("beamSpotSrc");
00031          useLeadingTrack_ = iConfig.getParameter<bool>("useLeadingTrack");
00032          trackSrc_ = iConfig.getParameter<std::vector<edm::InputTag> >("trackSrc");
00033          useLeadingRecoCandidate_ = iConfig.getParameter<bool>("useLeadingRecoCandidate");
00034          recoCandidateSrc_ = iConfig.getParameter<std::vector<edm::InputTag> >("recoCandidateSrc");
00035          useTriggerFilterElectrons_ = iConfig.getParameter<bool>("useTriggerFilterElectrons");
00036          triggerFilterElectronsSrc_ = iConfig.getParameter<edm::InputTag>("triggerFilterElectronsSrc");
00037          useTriggerFilterMuons_ = iConfig.getParameter<bool>("useTriggerFilterMuons");
00038          triggerFilterMuonsSrc_ = iConfig.getParameter<edm::InputTag>("triggerFilterMuonsSrc");
00039          dZ_ = iConfig.getParameter<double>("dZ");
00040          filterOnNTaus_ = iConfig.getParameter<uint32_t>("filterOnNTaus");
00041          produces<reco::PFTauCollection>();
00042       }
00043       ~PFTauVertexSelector(){} 
00044    private:
00045       virtual bool filter(edm::Event&, const edm::EventSetup&);
00046       edm::InputTag tauSrc_;
00047       bool useVertex_;
00048       edm::InputTag vertexSrc_;
00049       bool useBeamSpot_;
00050       edm::InputTag beamSpotSrc_;
00051       bool useLeadingTrack_;
00052       std::vector<edm::InputTag> trackSrc_;
00053       bool useLeadingRecoCandidate_;
00054       std::vector<edm::InputTag> recoCandidateSrc_;
00055       bool useTriggerFilterElectrons_;
00056       edm::InputTag triggerFilterElectronsSrc_;
00057       bool useTriggerFilterMuons_;
00058       edm::InputTag triggerFilterMuonsSrc_;
00059       double dZ_;
00060       uint32_t filterOnNTaus_;
00061 };
00062 
00063 #endif