00001 00002 #ifndef L2TAUJETSMERGER_H 00003 #define L2TAUJETSMERGER_H 00004 00005 // user include files 00006 #include "FWCore/Framework/interface/Frameworkfwd.h" 00007 #include "FWCore/Framework/interface/EDProducer.h" 00008 00009 #include "FWCore/Framework/interface/Event.h" 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 #include "FWCore/Utilities/interface/InputTag.h" 00012 #include "DataFormats/Common/interface/Handle.h" 00013 #include "DataFormats/JetReco/interface/CaloJetCollection.h" 00014 00015 00016 #include <map> 00017 #include <vector> 00018 00019 class L2TauJetsMerger: public edm::EDProducer { 00020 public: 00021 explicit L2TauJetsMerger(const edm::ParameterSet&); 00022 ~L2TauJetsMerger(); 00023 virtual void produce(edm::Event&, const edm::EventSetup&); 00024 00025 private: 00026 00027 typedef std::vector<edm::InputTag> vtag; 00028 vtag jetSrc; 00029 double mEt_Min; 00030 std::map<int, const reco::CaloJet> myL2L1JetsMap; //first is # L1Tau , second is L2 jets 00031 00032 00033 class SorterByPt { 00034 public: 00035 SorterByPt() {} 00036 ~SorterByPt() {} 00037 bool operator()(reco::CaloJet jet1 , reco::CaloJet jet2) 00038 { 00039 return jet1.pt()>jet2.pt(); 00040 } 00041 }; 00042 00043 00044 }; 00045 #endif