![]() |
![]() |
00001 #ifndef METProducer_h 00002 #define METProducer_h 00003 00015 #include <vector> 00016 #include <cstdlib> 00017 #include <string.h> 00018 #include "FWCore/Framework/interface/EDProducer.h" 00019 #include "DataFormats/Common/interface/EDProduct.h" 00020 #include "FWCore/Framework/interface/Event.h" 00021 #include "DataFormats/Common/interface/Handle.h" 00022 #include "FWCore/Framework/interface/EventSetup.h" 00023 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00024 #include "RecoMET/METAlgorithms/interface/METAlgo.h" 00025 #include "RecoMET/METAlgorithms/interface/TCMETAlgo.h" 00026 #include "DataFormats/Math/interface/LorentzVector.h" 00027 #include "DataFormats/Math/interface/Point3D.h" 00028 #include "DataFormats/JetReco/interface/CaloJetCollection.h" 00029 #include "DataFormats/METReco/interface/METFwd.h" 00030 #include "DataFormats/METReco/interface/CaloMETFwd.h" 00031 #include "DataFormats/METReco/interface/GenMETFwd.h" 00032 #include "DataFormats/METReco/interface/PFMETFwd.h" 00033 #include "DataFormats/Candidate/interface/Candidate.h" 00034 #include "DataFormats/Common/interface/OwnVector.h" 00035 #include "TH2F.h" 00036 00037 namespace metsig{ 00038 class SignAlgoResolutions; 00039 } 00040 00041 namespace cms 00042 { 00043 class METProducer: public edm::EDProducer 00044 { 00045 public: 00046 typedef math::XYZTLorentzVector LorentzVector; 00047 typedef math::XYZPoint Point; 00048 typedef edm::OwnVector<reco::Candidate> CandidateCollection; 00049 explicit METProducer(const edm::ParameterSet&); 00050 explicit METProducer(); 00051 virtual ~METProducer(); 00052 //const CandidateCollection* convert( const reco::CaloJetCollection* ); 00053 virtual void produce(edm::Event&, const edm::EventSetup&); 00054 00055 private: 00056 edm::ParameterSet conf_; 00057 METAlgo alg_; 00058 edm::InputTag inputLabel; 00059 std::string inputType; 00060 std::string METtype; 00061 std::string alias; 00062 00063 //Calculate MET Significance (not necessary at HLT) 00064 bool calculateSignificance_; 00065 metsig::SignAlgoResolutions *resolutions_; 00066 edm::InputTag jetsLabel_; //used for jet-based significance calculation 00067 00068 //Use HF in CaloMET calculation? 00069 bool noHF; 00070 00071 //Use an Et threshold on all of the objects in the CaloMET calculation? 00072 double globalThreshold; 00073 00074 //Use only fiducial GenParticles in GenMET calculation? 00075 bool onlyFiducial; 00076 00077 //Use Pt instaed of Et 00078 bool usePt; 00079 00080 //Temporary implementation of response function for Track Corrected MET 00081 //TH2D *responseFunction_; 00082 TH2D responseFunction_; 00083 TH2D showerRF_; 00084 00085 }; 00086 } 00087 00088 #endif // METProducer_h