00001 #include "Fireworks/Core/interface/FWBeamSpot.h" 00002 #include "DataFormats/BeamSpot/interface/BeamSpot.h" 00003 #include "FWCore/Common/interface/EventBase.h" 00004 #include "Fireworks/Core/interface/fwLog.h" 00005 00006 void FWBeamSpot::checkBeamSpot(const edm::EventBase* event) 00007 { 00008 try 00009 { 00010 edm::InputTag tag("offlineBeamSpot"); 00011 edm::Handle<reco::BeamSpot> spot; 00012 00013 event->getByLabel(tag, spot); 00014 if (spot.isValid()) 00015 { 00016 m_beamspot = spot.product(); 00017 } 00018 else 00019 { 00020 m_beamspot = 0; 00021 } 00022 } 00023 catch (cms::Exception& iException) 00024 { 00025 fwLog(fwlog::kError) <<"FWBeamSpot::checkBeamSpot failed "<<iException.what() <<std::endl; 00026 m_beamspot = 0; 00027 } 00028 } 00029 00030 double FWBeamSpot::x0() const 00031 { 00032 return m_beamspot ? m_beamspot->x0() : 0.0; 00033 } 00034 00035 double FWBeamSpot::y0() const 00036 { 00037 return m_beamspot ? m_beamspot->y0() : 0.0; 00038 } 00039 00040 double FWBeamSpot::z0() const 00041 { 00042 return m_beamspot ? m_beamspot->z0() : 0.0; 00043 } 00044 00045 double FWBeamSpot::x0Error() const 00046 { 00047 return m_beamspot ? m_beamspot->x0Error() : 0.0; 00048 } 00049 00050 double FWBeamSpot::y0Error() const 00051 { 00052 return m_beamspot ? m_beamspot->y0Error() : 0.0; 00053 } 00054 00055 double FWBeamSpot::z0Error() const 00056 { 00057 return m_beamspot ? m_beamspot->z0Error() : 0.0; 00058 }