![]() |
![]() |
#include <RecoVertex/BeamSpotProducer/interface/BeamSpotProducer.h>
Public Types | |
typedef std::vector < edm::ParameterSet > | Parameters |
Public Member Functions | |
BeamSpotProducer (const edm::ParameterSet &iConf) | |
constructor | |
virtual void | produce (edm::Event &iEvent, const edm::EventSetup &iSetup) |
produce a beam spot class | |
~BeamSpotProducer () | |
destructor |
author: Francisco Yumiceva, Fermilab (yumiceva@fnal.gov)
version
________________________________________________________________
Definition at line 23 of file BeamSpotProducer.h.
typedef std::vector<edm::ParameterSet> BeamSpotProducer::Parameters |
Definition at line 26 of file BeamSpotProducer.h.
BeamSpotProducer::BeamSpotProducer | ( | const edm::ParameterSet & | iConf | ) | [explicit] |
constructor
Definition at line 19 of file BeamSpotProducer.cc.
00019 { 00020 00021 edm::LogInfo("RecoVertex/BeamSpotProducer") 00022 << "Initializing Beam Spot producer " << "\n"; 00023 00024 //fVerbose=conf.getUntrackedParameter<bool>("verbose", false); 00025 00026 produces<reco::BeamSpot>(); 00027 00028 }
BeamSpotProducer::~BeamSpotProducer | ( | ) |
void BeamSpotProducer::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
produce a beam spot class
Implements edm::EDProducer.
Definition at line 39 of file BeamSpotProducer.cc.
References err, exception, edm::EventSetup::get(), BeamSpotObjects::GetBeamWidth(), BeamSpotObjects::GetCovariance(), BeamSpotObjects::Getdxdz(), BeamSpotObjects::Getdydz(), BeamSpotObjects::GetSigmaZ(), BeamSpotObjects::GetX(), BeamSpotObjects::GetY(), BeamSpotObjects::GetZ(), i, edm::Event::id(), j, matrix, edm::ESHandle< T >::product(), edm::Event::put(), and HLT_VtxMuL3::result.
00039 { 00040 00041 using namespace edm; 00042 00043 std::auto_ptr<reco::BeamSpot> result(new reco::BeamSpot); 00044 00045 reco::BeamSpot aSpot; 00046 00047 00048 //typedef math::XYZPoint Point; 00049 //enum { dimension = 7 }; 00050 //typedef math::Error<dimension>::type CovarianceMatrix; 00051 00052 00053 try { 00054 edm::LogInfo("RecoVertex/BeamSpotProducer") 00055 << "Reconstructing event number: " << iEvent.id() << "\n"; 00056 00057 edm::ESHandle< BeamSpotObjects > beamhandle; 00058 iSetup.get<BeamSpotObjectsRcd>().get(beamhandle); 00059 const BeamSpotObjects *spotDB = beamhandle.product(); 00060 00061 // translate from BeamSpotObjects to reco::BeamSpot 00062 reco::BeamSpot::Point apoint( spotDB->GetX(), spotDB->GetY(), spotDB->GetZ() ); 00063 00064 reco::BeamSpot::CovarianceMatrix matrix; 00065 for ( int i=0; i<7; ++i ) { 00066 for ( int j=0; j<7; ++j ) { 00067 matrix(i,j) = spotDB->GetCovariance(i,j); 00068 } 00069 } 00070 00071 aSpot = reco::BeamSpot( apoint, 00072 spotDB->GetSigmaZ(), 00073 spotDB->Getdxdz(), 00074 spotDB->Getdydz(), 00075 spotDB->GetBeamWidth(), 00076 matrix ); 00077 00078 } 00079 00080 catch (std::exception & err) { 00081 edm::LogInfo("RecoVertex/BeamSpotProducer") 00082 << "Exception during event number: " << iEvent.id() 00083 << "\n" << err.what() << "\n"; 00084 } 00085 00086 *result = aSpot; 00087 00088 iEvent.put(result); 00089 00090 }