00001 #ifndef RecoParticleFlow_Benchmark_CandidateBenchmark_h 00002 #define RecoParticleFlow_Benchmark_CandidateBenchmark_h 00003 00004 #include "DQMOffline/PFTau/interface/Benchmark.h" 00005 00006 #include "DataFormats/Candidate/interface/CandidateFwd.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 00010 class CandidateBenchmark : public Benchmark { 00011 00012 public: 00013 00014 00015 CandidateBenchmark(Mode mode); 00016 virtual ~CandidateBenchmark(); 00017 00019 void setup(); 00021 void setup(const edm::ParameterSet& parameterSet); 00022 00023 template< class C> 00024 void fill( const C& candidates); 00025 00027 void fillOne( const reco::Candidate& candidate); 00028 00029 protected: 00030 00031 00032 TH1F* pt_; 00033 TH1F* eta_; 00034 TH1F* phi_; 00035 TH1F* charge_; 00037 TH1F* pdgId_; 00038 00039 bool histogramBooked_; 00040 }; 00041 00042 template< class C> 00043 void CandidateBenchmark::fill(const C& candCollection) { 00044 00045 for (unsigned int i = 0; i < candCollection.size(); i++) { 00046 const reco::Candidate& cand = candCollection[i]; 00047 fillOne(cand); 00048 } 00049 } 00050 00051 00052 #endif