CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/CommonTools/ParticleFlow/plugins/PFPileUp.h

Go to the documentation of this file.
00001 #ifndef PhysicsTools_PFCandProducer_PFPileUp_
00002 #define PhysicsTools_PFCandProducer_PFPileUp_
00003 
00004 // system include files
00005 #include <memory>
00006 #include <string>
00007 
00008 // user include files
00009 #include "FWCore/Framework/interface/Frameworkfwd.h"
00010 #include "FWCore/Framework/interface/EDProducer.h"
00011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00012 
00013 #include "FWCore/Framework/interface/Event.h"
00014 #include "FWCore/Framework/interface/MakerMacros.h"
00015 
00016 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
00017 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00018 
00019 #include "CommonTools/ParticleFlow/interface/PFPileUpAlgo.h"
00020 
00034 class PFPileUp : public edm::EDProducer {
00035  public:
00036 
00037   typedef std::vector< edm::FwdPtr<reco::PFCandidate> >  PFCollection;
00038   typedef edm::View<reco::PFCandidate>                   PFView;
00039   typedef std::vector<reco::PFCandidate>                 PFCollectionByValue;
00040 
00041   explicit PFPileUp(const edm::ParameterSet&);
00042 
00043   ~PFPileUp();
00044   
00045   virtual void produce(edm::Event&, const edm::EventSetup&);
00046 
00047   virtual void beginJob();
00048 
00049  private:
00050   
00051   PFPileUpAlgo    pileUpAlgo_;
00052   
00054   edm::InputTag   inputTagPFCandidates_;
00055   
00057   edm::InputTag   inputTagVertices_;
00058 
00060   bool   enable_;
00061 
00063   bool   verbose_;
00064 
00066   bool   checkClosestZVertex_;
00067 
00068 };
00069 
00070 #endif