File indexing completed on 2024-05-02 05:10:04
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/stream/EDProducer.h"
0025
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028
0029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0030 #include "FWCore/Utilities/interface/StreamID.h"
0031
0032 #include "DataFormats/Math/interface/Error.h"
0033 #include "DataFormats/Math/interface/Point3D.h"
0034 #include "DataFormats/VertexReco/interface/Vertex.h"
0035 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0036
0037 #include "DataFormats/TrackReco/interface/Track.h"
0038 #include "DataFormats/TrackReco/interface/TrackBase.h"
0039 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0040
0041 #include "DataFormats/Common/interface/RefToBase.h"
0042
0043 class EmbeddingHltPixelVerticesProducer : public edm::stream::EDProducer<> {
0044 public:
0045 explicit EmbeddingHltPixelVerticesProducer(const edm::ParameterSet &);
0046 ~EmbeddingHltPixelVerticesProducer() override;
0047
0048 static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0049
0050 private:
0051 void beginStream(edm::StreamID) override;
0052 void produce(edm::Event &, const edm::EventSetup &) override;
0053 void endStream() override;
0054 edm::InputTag vertexPositionLabel;
0055
0056
0057 };
0058
0059 EmbeddingHltPixelVerticesProducer::EmbeddingHltPixelVerticesProducer(const edm::ParameterSet &iConfig) {
0060 vertexPositionLabel = edm::InputTag("externalLHEProducer", "vertexPosition");
0061 consumes<math::XYZTLorentzVectorD>(vertexPositionLabel);
0062 produces<reco::VertexCollection>();
0063 }
0064
0065 EmbeddingHltPixelVerticesProducer::~EmbeddingHltPixelVerticesProducer() {}
0066
0067
0068 void EmbeddingHltPixelVerticesProducer::produce(edm::Event &iEvent, const edm::EventSetup &iSetup) {
0069 using namespace edm;
0070 std::unique_ptr<reco::VertexCollection> embeddingVertex(new reco::VertexCollection);
0071 Handle<math::XYZTLorentzVectorD> vertex_position;
0072 iEvent.getByLabel(vertexPositionLabel, vertex_position);
0073 math::XYZPoint genVertex =
0074 math::XYZPoint(vertex_position.product()->x(), vertex_position.product()->y(), vertex_position.product()->z());
0075 math::Error<3>::type Error;
0076
0077
0078 reco::Vertex saveVertex = reco::Vertex(genVertex, Error, 1.0, 6.0, 6);
0079 embeddingVertex->push_back(saveVertex);
0080 iEvent.put(std::move(embeddingVertex));
0081 }
0082
0083
0084 void EmbeddingHltPixelVerticesProducer::beginStream(edm::StreamID) {}
0085
0086
0087 void EmbeddingHltPixelVerticesProducer::endStream() {}
0088
0089 void EmbeddingHltPixelVerticesProducer::fillDescriptions(edm::ConfigurationDescriptions &descriptions) {
0090
0091
0092 edm::ParameterSetDescription desc;
0093 desc.setUnknown();
0094 descriptions.addDefault(desc);
0095 }
0096
0097
0098 DEFINE_FWK_MODULE(EmbeddingHltPixelVerticesProducer);