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