CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/RecoEgamma/EgammaHLTProducers/interface/EgammaHLTElectronDetaDphiProducer.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    EgammaHLTProducers
00004 // Class:      EgammaHLTElectronDetaDphiProducer
00005 // 
00008 //
00009 // Original Author:  Roberto Covarelli (CERN)
00010 //
00011 // $Id: EgammaHLTElectronDetaDphiProducer.h,v 1.5 2012/02/10 22:41:25 dmytro Exp $
00012 //
00013 //
00014 
00015 
00016 // system include files
00017 #include <memory>
00018 
00019 // user include files
00020 #include "FWCore/Framework/interface/Frameworkfwd.h"
00021 #include "FWCore/Framework/interface/EDProducer.h"
00022 
00023 #include "FWCore/Framework/interface/Event.h"
00024 #include "FWCore/Framework/interface/MakerMacros.h"
00025 
00026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00027 
00028 #include "DataFormats/Common/interface/Handle.h"
00029 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00030 #include "DataFormats/Common/interface/Ref.h"
00031 #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
00032 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h"
00033 
00034 class MagneticField;
00035 
00036 #include "TTree.h"
00037 
00038 class MagneticField;
00039 //
00040 // class declaration
00041 //
00042 
00043 class EgammaHLTElectronDetaDphiProducer : public edm::EDProducer {
00044    public:
00045       explicit EgammaHLTElectronDetaDphiProducer(const edm::ParameterSet&);
00046       ~EgammaHLTElectronDetaDphiProducer();
00047 
00048 
00049       virtual void produce(edm::Event&, const edm::EventSetup&);
00050       virtual void beginRun(edm::Run&, edm::EventSetup const&);
00051       virtual void endRun(edm::Run&, edm::EventSetup const&);
00052    private:
00053   std::pair<float,float> calDEtaDPhiSCTrk(reco::ElectronRef& eleref, const reco::BeamSpot::Point& BSPosition,const MagneticField *magField);
00054   static reco::ElectronRef getEleRef(const reco::RecoEcalCandidateRef& recoEcalCandRef,const edm::Handle<reco::ElectronCollection>& electronHandle);
00055   
00056   edm::InputTag electronProducer_;
00057   edm::InputTag recoEcalCandidateProducer_;
00058 
00059   bool useSCRefs_;
00060   bool useTrackProjectionToEcal_;
00061   bool variablesAtVtx_;
00062   const MagneticField* magField_;
00063   edm::InputTag bsProducer_;
00064 
00065 };
00066