CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/PhysicsTools/PatAlgos/plugins/PATJetProducer.h

Go to the documentation of this file.
00001 //
00002 // $Id: PATJetProducer.h,v 1.26 2010/08/09 18:13:54 srappocc Exp $
00003 //
00004 
00005 #ifndef PhysicsTools_PatAlgos_PATJetProducer_h
00006 #define PhysicsTools_PatAlgos_PATJetProducer_h
00007 
00020 #include "FWCore/Framework/interface/EDProducer.h"
00021 #include "FWCore/Framework/interface/Event.h"
00022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00023 #include "FWCore/Utilities/interface/InputTag.h"
00024 #include "DataFormats/Common/interface/View.h"
00025 
00026 #include "CommonTools/Utils/interface/PtComparator.h"
00027 
00028 #include "DataFormats/PatCandidates/interface/Jet.h"
00029 #include "DataFormats/PatCandidates/interface/Electron.h"
00030 #include "DataFormats/PatCandidates/interface/Muon.h"
00031 
00032 #include "PhysicsTools/PatAlgos/interface/EfficiencyLoader.h"
00033 #include "PhysicsTools/PatAlgos/interface/KinResolutionsLoader.h"
00034 
00035 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
00036 
00037 #include "DataFormats/PatCandidates/interface/UserData.h"
00038 #include "PhysicsTools/PatAlgos/interface/PATUserDataHelper.h"
00039 
00040 class JetFlavourIdentifier;
00041 
00042 
00043 namespace pat {
00044 
00045   class PATJetProducer : public edm::EDProducer {
00046 
00047     public:
00048 
00049       explicit PATJetProducer(const edm::ParameterSet & iConfig);
00050       ~PATJetProducer();
00051 
00052       virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup);
00053 
00054       static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
00055 
00056     private:
00057 
00058       // configurables
00059       edm::InputTag            jetsSrc_;
00060       bool                     embedCaloTowers_;
00061       bool                     embedPFCandidates_;
00062       bool                     getJetMCFlavour_;
00063       edm::InputTag            jetPartonMapSource_;
00064       bool                     addGenPartonMatch_;
00065       bool                     embedGenPartonMatch_;
00066       edm::InputTag            genPartonSrc_;
00067       bool                     addGenJetMatch_;
00068       bool                     embedGenJetMatch_;
00069       edm::InputTag            genJetSrc_;
00070       bool                     addPartonJetMatch_;
00071       edm::InputTag            partonJetSrc_;
00072       bool                     addJetCorrFactors_;
00073       std::vector<edm::InputTag> jetCorrFactorsSrc_;
00074 
00075       bool                       addBTagInfo_;
00076       bool                       addDiscriminators_; 
00077       std::vector<edm::InputTag> discriminatorTags_;
00078       std::vector<std::string>   discriminatorLabels_;
00079       bool                       addTagInfos_; 
00080       std::vector<edm::InputTag> tagInfoTags_;
00081       std::vector<std::string>   tagInfoLabels_;
00082       bool                       addAssociatedTracks_;
00083       edm::InputTag              trackAssociation_;
00084       bool                       addJetCharge_;
00085       edm::InputTag              jetCharge_;
00086       bool                       addJetID_;
00087       edm::InputTag              jetIDMapLabel_;
00088       // tools
00089       GreaterByPt<Jet>                   pTComparator_;
00090       GreaterByPt<CaloTower>             caloPTComparator_;
00091 
00092       bool addEfficiencies_;
00093       pat::helper::EfficiencyLoader efficiencyLoader_;
00094 
00095       bool                     addResolutions_;
00096       pat::helper::KinResolutionsLoader resolutionLoader_;
00097 
00098       bool useUserData_;
00099       pat::PATUserDataHelper<pat::Jet>      userDataHelper_;
00100 
00101       
00102 
00103   };
00104 
00105 
00106 }
00107 
00108 #endif