00001 // 00002 // $Id: PATJetProducer.h,v 1.10.4.5 2009/01/22 12:08:59 gpetrucc 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/ParameterSet/interface/InputTag.h" 00024 #include "DataFormats/Common/interface/View.h" 00025 00026 #include "PhysicsTools/Utilities/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 00034 #include "DataFormats/PatCandidates/interface/UserData.h" 00035 #include "PhysicsTools/PatAlgos/interface/PATUserDataHelper.h" 00036 00037 class JetFlavourIdentifier; 00038 00039 00040 namespace pat { 00041 00042 class PATJetProducer : public edm::EDProducer { 00043 00044 public: 00045 00046 explicit PATJetProducer(const edm::ParameterSet & iConfig); 00047 ~PATJetProducer(); 00048 00049 virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup); 00050 00051 private: 00052 00053 // configurables 00054 edm::InputTag jetsSrc_; 00055 bool embedCaloTowers_; 00056 bool getJetMCFlavour_; 00057 edm::InputTag jetPartonMapSource_; 00058 bool addGenPartonMatch_; 00059 bool embedGenPartonMatch_; 00060 edm::InputTag genPartonSrc_; 00061 bool addGenJetMatch_; 00062 edm::InputTag genJetSrc_; 00063 bool addPartonJetMatch_; 00064 edm::InputTag partonJetSrc_; 00065 bool addJetCorrFactors_; 00066 std::vector<edm::InputTag> jetCorrFactorsSrc_; 00067 bool addTrigMatch_; 00068 std::vector<edm::InputTag> trigMatchSrc_; 00069 00070 bool addBTagInfo_; 00071 bool addDiscriminators_; 00072 std::vector<edm::InputTag> discriminatorTags_; 00073 std::vector<std::string> discriminatorLabels_; 00074 bool addTagInfos_; 00075 std::vector<edm::InputTag> tagInfoTags_; 00076 std::vector<std::string> tagInfoLabels_; 00077 bool addAssociatedTracks_; 00078 edm::InputTag trackAssociation_; 00079 bool addJetCharge_; 00080 edm::InputTag jetCharge_; 00081 // tools 00082 GreaterByPt<Jet> pTComparator_; 00083 00084 bool addEfficiencies_; 00085 pat::helper::EfficiencyLoader efficiencyLoader_; 00086 00087 bool addResolutions_; 00088 00089 bool useUserData_; 00090 pat::PATUserDataHelper<pat::Jet> userDataHelper_; 00091 00092 }; 00093 00094 00095 } 00096 00097 #endif