CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/RecoParticleFlow/PFProducer/plugins/PFCandidateChecker.h

Go to the documentation of this file.
00001 #ifndef RecoParticleFlow_PFCandidateChecker_
00002 #define RecoParticleFlow_PFCandidateChecker_
00003 
00004 // system include files
00005 #include <memory>
00006 #include <string>
00007 #include <iostream>
00008 
00009 // user include files
00010 #include "FWCore/Framework/interface/Frameworkfwd.h"
00011 #include "FWCore/Framework/interface/EDAnalyzer.h"
00012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00013 
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/MakerMacros.h"
00016 
00017 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
00018 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
00019 #include "DataFormats/JetReco/interface/PFJetCollection.h"
00020 
00031 class PFCandidateChecker : public edm::EDAnalyzer {
00032  public:
00033 
00034   explicit PFCandidateChecker(const edm::ParameterSet&);
00035 
00036   ~PFCandidateChecker();
00037   
00038   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00039 
00040   virtual void beginRun(const edm::Run & r, const edm::EventSetup & c);
00041 
00042  private:
00043   
00044   void printJets(const reco::PFJetCollection& pfJetsReco,
00045                  const reco::PFJetCollection& pfJetsReReco) const;
00046 
00047   void printMet(const reco::PFCandidateCollection& pfReco,
00048                 const reco::PFCandidateCollection& pfReReco) const; 
00049 
00050   void printElementsInBlocks(const reco::PFCandidate& cand,
00051                              std::ostream& out=std::cout) const;
00052 
00053 
00054   
00056   edm::InputTag   inputTagPFCandidatesReco_;
00057   edm::InputTag   inputTagPFCandidatesReReco_;
00058   edm::InputTag   inputTagPFJetsReco_;
00059   edm::InputTag   inputTagPFJetsReReco_;
00060 
00062   double deltaEMax_;
00063   double deltaEtaMax_;
00064   double deltaPhiMax_;
00065   
00067   bool   verbose_;
00068 
00070   bool   printBlocks_;
00071 
00073   bool rankByPt_;
00074 
00076   unsigned entry_;
00077 
00078   static bool greaterPt( const reco::PFCandidate& a, const reco::PFCandidate& b ) {
00079     return (a.pt()>b.pt());
00080   }
00081 
00082 
00083 
00084 };
00085 
00086 #endif