File indexing completed on 2024-04-06 12:11:35
0001 #include "Fireworks/Core/interface/FWBeamSpot.h"
0002 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0003 #include "FWCore/Common/interface/EventBase.h"
0004 #include "Fireworks/Core/interface/fwLog.h"
0005
0006 void FWBeamSpot::checkBeamSpot(const edm::EventBase* event) {
0007 try {
0008 edm::InputTag tag("offlineBeamSpot");
0009 edm::Handle<reco::BeamSpot> spot;
0010
0011 event->getByLabel(tag, spot);
0012 if (spot.isValid()) {
0013 m_beamspot = spot.product();
0014 } else {
0015 m_beamspot = nullptr;
0016 }
0017 } catch (cms::Exception& iException) {
0018 fwLog(fwlog::kWarning) << "Can't get beam spot info. Setting coordintes to (0, 0, 0).\n";
0019 m_beamspot = nullptr;
0020 }
0021 }
0022
0023 double FWBeamSpot::x0() const { return m_beamspot ? m_beamspot->x0() : 0.0; }
0024
0025 double FWBeamSpot::y0() const { return m_beamspot ? m_beamspot->y0() : 0.0; }
0026
0027 double FWBeamSpot::z0() const { return m_beamspot ? m_beamspot->z0() : 0.0; }
0028
0029 double FWBeamSpot::x0Error() const { return m_beamspot ? m_beamspot->x0Error() : 0.0; }
0030
0031 double FWBeamSpot::y0Error() const { return m_beamspot ? m_beamspot->y0Error() : 0.0; }
0032
0033 double FWBeamSpot::z0Error() const { return m_beamspot ? m_beamspot->z0Error() : 0.0; }