CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/RecoMET/METProducers/interface/MuonTCMETValueMapProducer.h

Go to the documentation of this file.
00001 #ifndef RecoMET_MuonTCMETValueMapProducer_h
00002 #define RecoMET_MuonTCMETValueMapProducer_h
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:    Test
00007 // Class:      Test
00008 // 
00016 //
00017 // Created:  Wed Aug 29 2007
00018 //
00019 //
00020 
00021 #include "FWCore/Framework/interface/Frameworkfwd.h"
00022 #include "FWCore/Framework/interface/EDProducer.h"
00023 #include "FWCore/Framework/interface/Event.h"
00024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00025 #include "DataFormats/Common/interface/Handle.h"
00026 #include "DataFormats/MuonReco/interface/Muon.h"
00027 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00028 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00029 #include "DataFormats/VertexReco/interface/Vertex.h"
00030 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00031 #include "TH2.h"
00032 #include "TVector3.h"
00033 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00034 
00035 class TCMETAlgo;
00036 
00037 namespace cms {
00038 class MuonTCMETValueMapProducer : public edm::EDProducer {
00039    public:
00040       explicit MuonTCMETValueMapProducer(const edm::ParameterSet&);
00041       ~MuonTCMETValueMapProducer();
00042 
00043 //      TH2D* getResponseFunction_fit ( );
00044 //      TH2D* getResponseFunction_mode ( );
00045 
00046    private:
00047       virtual void beginJob() ;
00048       virtual void produce(edm::Event&, const edm::EventSetup&);
00049       virtual void endJob() ;
00050       
00051       // ----------member data ---------------------------
00052       edm::Handle<reco::MuonCollection>    muon_h;
00053       edm::Handle<reco::BeamSpot>          beamSpot_h;
00054       edm::Handle<reco::VertexCollection>  VertexHandle;
00055 
00056       edm::InputTag muonInputTag_;  
00057       edm::InputTag beamSpotInputTag_;
00058       edm::InputTag vertexInputTag_;
00059 
00060       const class MagneticField* bField;
00061 
00062       const reco::VertexCollection *vertexColl;
00063 
00064       class TH2D* response_function;
00065 
00066       bool muonGlobal_;
00067       bool muonTracker_;
00068       bool useCaloMuons_;
00069       bool hasValidVertex;
00070 
00071       int     rfType_;
00072       int     nLayers_;
00073       int     nLayersTight_;
00074       int     vertexNdof_;
00075       double  vertexZ_;
00076       double  vertexRho_;
00077       double  vertexMaxDZ_;
00078       double  maxpt_eta25_;
00079       double  maxpt_eta20_;
00080       int     maxTrackAlgo_;
00081       double  minpt_;
00082       double  maxpt_;
00083       double  maxeta_;
00084       double  maxchi2_;
00085       double  minhits_;
00086       double  maxPtErr_;
00087       double  maxd0cut_;
00088       double  maxchi2_tight_;
00089       double  minhits_tight_;
00090       double  maxPtErr_tight_;
00091       double  d0cuta_;
00092       double  d0cutb_;
00093       bool    usePvtxd0_;      
00094       std::vector<int> trkQuality_;
00095       std::vector<int> trkAlgos_;
00096 
00097       int     muonMinValidStaHits_;
00098       double  muonpt_;
00099       double  muoneta_;
00100       double  muonchi2_;
00101       double  muonhits_;
00102       double  muond0_;
00103       double  muonDeltaR_;
00104       double  muon_dptrel_;
00105       TCMETAlgo *tcmetAlgo_;
00106 
00107       //functions
00108       bool isGoodMuon( const reco::Muon* );
00109       bool isGoodCaloMuon( const reco::Muon*, const unsigned int );
00110       bool isGoodTrack( const reco::Muon* );
00111       class TVector3 propagateTrack( const reco::Muon* );
00112       int nLayers(const reco::TrackRef);
00113       bool isValidVertex();
00114   };
00115 }
00116 #endif
00117 
00118