CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/CommonTools/ParticleFlow/interface/PFPileUpAlgo.h

Go to the documentation of this file.
00001 #ifndef CommonTools_PFCandProducer_PFPileUpAlgo_
00002 #define CommonTools_PFCandProducer_PFPileUpAlgo_
00003 
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/EDProducer.h"
00006 
00007 #include "FWCore/Framework/interface/Event.h"
00008 
00009 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
00010 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00011 
00012 class PFPileUpAlgo {
00013  public:
00014   PFPileUpAlgo():checkClosestZVertex_(true), verbose_(false) {;}
00015     
00016   PFPileUpAlgo( bool checkClosestZVertex, bool verbose=false):
00017     checkClosestZVertex_(checkClosestZVertex), verbose_(verbose) {;}
00018 
00019   ~PFPileUpAlgo(){;}
00020 
00021   // the last parameter is needed if you want to use the sourceCandidatePtr
00022   void process(const reco::PFCandidateCollection & pfCandidates, 
00023                const reco::VertexCollection & vertices, 
00024                const edm::Handle<reco::PFCandidateCollection> * handle=0)  ;
00025 
00026   inline void setVerbose(bool verbose) { verbose_ = verbose; }
00027 
00028   inline void setCheckClosestZVertex(bool val) { checkClosestZVertex_ = val;}
00029 
00030   const reco::PFCandidateCollection & getPFCandidatesFromPU() const {return pfCandidatesFromPU_;}
00031   
00032   const reco::PFCandidateCollection & getPFCandidatesFromVtx() const {return pfCandidatesFromVtx_;}
00033 
00034   int chargedHadronVertex(const reco::VertexCollection& vertices, 
00035                         const reco::PFCandidate& pfcand ) const;
00036 
00037 
00038  private  :
00039 
00041   bool   checkClosestZVertex_;
00042   
00043   
00045   bool   verbose_;
00046 
00047   reco::PFCandidateCollection pfCandidatesFromVtx_;
00048   reco::PFCandidateCollection pfCandidatesFromPU_;
00049   
00050 };
00051 
00052 #endif