CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/RecoMET/METProducers/interface/METProducer.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    METProducers
00004 // Class:      METProducer
00005 // 
00013 //
00014 // Original Author:  Rick Cavanaugh
00015 //         Created:  May 14, 2005
00016 // $Id: METProducer.h,v 1.30 2012/07/12 08:14:37 sakuma Exp $
00017 //
00018 //
00019 
00020 #ifndef METProducer_h
00021 #define METProducer_h
00022 
00023 #include <string.h>
00024 #include "FWCore/Framework/interface/EDProducer.h"
00025 #include "RecoMET/METAlgorithms/interface/TCMETAlgo.h"
00026 #include "FWCore/Utilities/interface/InputTag.h"
00027 
00028 namespace edm {
00029   class ParameterSet;
00030   class Event;
00031   class EventSetup;
00032 }
00033 
00034 class TCMETAlgo;
00035 
00036 namespace metsig {
00037     class SignAlgoResolutions;
00038 }
00039 
00040 namespace cms 
00041 {
00042   class METProducer: public edm::EDProducer 
00043     {
00044     public:
00045       explicit METProducer(const edm::ParameterSet&);
00046       virtual ~METProducer() { }
00047       virtual void produce(edm::Event&, const edm::EventSetup&);
00048 
00049     private:
00050 
00051       void produce_CaloMET(edm::Event& event);
00052       void produce_TCMET(edm::Event& event, const edm::EventSetup& setup);
00053       void produce_PFMET(edm::Event& event);
00054       void produce_PFClusterMET(edm::Event& event);
00055       void produce_GenMET(edm::Event& event);
00056       void produce_else(edm::Event& event);
00057       
00058 
00059       edm::InputTag inputLabel;
00060       std::string inputType;
00061       std::string METtype;
00062       std::string alias;
00063       
00064       //Calculate MET Significance (not necessary at HLT)
00065       bool calculateSignificance_;
00066       metsig::SignAlgoResolutions *resolutions_;
00067       edm::InputTag jetsLabel_; //used for jet-based significance calculation
00068      
00069       //Use HF in CaloMET calculation?
00070       bool noHF;
00071       
00072       //Use an Et threshold on all of the objects in the CaloMET calculation?
00073       double globalThreshold;
00074 
00075       //Use only fiducial GenParticles in GenMET calculation? 
00076       bool onlyFiducial;
00077 
00078       //Use Pt instaed of Et
00079       bool usePt; 
00080 
00081       TCMETAlgo tcMetAlgo_;
00082     };
00083 }
00084 
00085 #endif // METProducer_h