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