CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/Validation/RecoJets/plugins/PartonQualifier.h

Go to the documentation of this file.
00001 #ifndef PartonQualifier_h
00002 #define PartonQualifier_h
00003 
00004 #include <memory>
00005 #include <string>
00006 #include <vector>
00007 
00008 #include "FWCore/Utilities/interface/InputTag.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00010 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
00011 
00012 class PartonQualifier {
00013   
00014  public:
00015   PartonQualifier(const edm::ParameterSet&);
00016   ~PartonQualifier(){};
00017   bool operator()(const reco::GenParticle&);
00018 
00019  private:
00020 
00021   int status_;
00022   std::vector<int> partons_;
00023 };
00024 
00025 inline 
00026 PartonQualifier::PartonQualifier(const edm::ParameterSet& cfg):
00027   status_ ( cfg.getParameter<int>( "status" ) ),
00028   partons_( cfg.getParameter<std::vector<int> >( "partons" ) )
00029 {
00030 }
00031 
00032 inline bool
00033 PartonQualifier::operator()(const reco::GenParticle& part)
00034 {
00035   if( part.status()!=status_) 
00036     // does the particle have the correct status?
00037     return false;
00038   
00039   if( !(std::count(partons_.begin(), partons_.end(), fabs(part.pdgId()))>0) )
00040     // is the particle pdg contained in the list of partons?
00041     return false;
00042   
00043   return true;
00044 }
00045 
00046 #endif