CMS 3D CMS Logo

MuonMETAlgo.h

Go to the documentation of this file.
00001 #ifndef Type1MET_MuonMETAlgo_h
00002 #define Type1MET_MuonMETAlgo_h
00003 
00011 #include "FWCore/Framework/interface/Event.h"
00012 #include "FWCore/Framework/interface/EventSetup.h"
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 
00015 #include "DataFormats/Math/interface/Point3D.h"
00016 #include "DataFormats/Math/interface/LorentzVector.h"
00017 
00018 #include "DataFormats/Common/interface/View.h"
00019 #include "DataFormats/METReco/interface/METCollection.h"
00020 #include "DataFormats/METReco/interface/MET.h"
00021 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00022 #include "DataFormats/METReco/interface/CorrMETData.h"
00023 #include "DataFormats/MuonReco/interface/Muon.h"
00024 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00025 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h"
00026 #include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h"
00027 
00028 #include "JetMETCorrections/Type1MET/interface/MuonMETInfo.h"
00029 
00030 class MuonMETAlgo 
00031 {
00032  public:
00033   MuonMETAlgo();
00034   virtual ~MuonMETAlgo();
00035    
00036   reco::CaloMET makeMET(const reco::CaloMET& fMet, double fSumEt,
00037                         const std::vector<CorrMETData>& fCorrections, 
00038                         const reco::MET::LorentzVector&);
00039   reco::MET     makeMET(const reco::MET&, double fSumEt,
00040                         const std::vector<CorrMETData>& fCorrections, 
00041                         const MET::LorentzVector& fP4);
00042   
00043   virtual void run(const edm::Event& iEvent,
00044                    const edm::EventSetup& iSetup, 
00045                    const edm::View<reco::MET>& uncorMET,
00046                    const edm::View<reco::Muon>& Muons,
00047                    TrackDetectorAssociator& trackAssociator,
00048                    TrackAssociatorParameters& trackAssociatorParameters,
00049                    reco::METCollection* corMET,
00050                    bool useTrackAssociatorPositions,
00051                    bool useRecHits,
00052                    bool useHO,
00053                    double towerEtThreshold);
00054   virtual void run(const edm::Event& iEvent,
00055                    const edm::EventSetup& iSetup, 
00056                    const edm::View<reco::CaloMET>& uncorMET, 
00057                    const edm::View<reco::Muon>& Muons,
00058                    TrackDetectorAssociator& trackAssociator,
00059                    TrackAssociatorParameters& trackAssociatorParameters,
00060                    reco::CaloMETCollection* corMET,
00061                    bool useTrackAssociatorPositions,
00062                    bool useRecHits,
00063                    bool useHO,
00064                    double towerEtThreshold);
00065                    
00066   template <class T> void MuonMETAlgo_run(const edm::Event& iEvent,
00067                                           const edm::EventSetup& iSetup,
00068                                           const edm::View<T>& v_uncorMET,
00069                                           const edm::View<reco::Muon>& inputMuons,
00070                                           TrackDetectorAssociator& trackAssociator,
00071                                           TrackAssociatorParameters& trackAssociatorParameters,
00072                                           std::vector<T>* v_corMET,
00073                                           bool useTrackAssociatorPositions,
00074                                           bool useRecHits,
00075                                           bool useHO,
00076                                           double towerEtThreshold);
00077                                           
00078   static void  correctMETforMuon(double& metx, double& mety,
00079                                  double bfield, int muonCharge,
00080                                  const math::XYZTLorentzVector muonP4,
00081                                  const math::XYZPoint muonVertex,
00082                                  MuonMETInfo&);
00083     
00084 };
00085 
00086 #endif // Type1MET_MuonMETAlgo_h
00087 
00088 /*  LocalWords:  MuonMETAlgo
00089  */

Generated on Tue Jun 9 17:39:40 2009 for CMSSW by  doxygen 1.5.4