File indexing completed on 2023-03-17 11:22:08
0001 #include "FWCore/Framework/interface/stream/EDProducer.h"
0002 #include "FWCore/Utilities/interface/InputTag.h"
0003 #include "FWCore/Utilities/interface/Exception.h"
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "FWCore/Utilities/interface/Visibility.h"
0006
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "DataFormats/Common/interface/Handle.h"
0009 #include "FWCore/Framework/interface/EventSetup.h"
0010 #include "FWCore/Framework/interface/ESHandle.h"
0011
0012 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0013 #include "PhotonConversionTrajectorySeedProducerFromSingleLegAlgo.h"
0014
0015
0016 class dso_hidden PhotonConversionTrajectorySeedProducerFromSingleLeg final : public edm::stream::EDProducer<> {
0017 public:
0018 PhotonConversionTrajectorySeedProducerFromSingleLeg(const edm::ParameterSet&);
0019 ~PhotonConversionTrajectorySeedProducerFromSingleLeg() override { delete _theFinder; }
0020 PhotonConversionTrajectorySeedProducerFromSingleLeg(const PhotonConversionTrajectorySeedProducerFromSingleLeg&) =
0021 delete;
0022 PhotonConversionTrajectorySeedProducerFromSingleLeg& operator=(
0023 const PhotonConversionTrajectorySeedProducerFromSingleLeg&) = delete;
0024 void produce(edm::Event&, const edm::EventSetup&) override;
0025
0026 private:
0027 std::string _newSeedCandidates;
0028 PhotonConversionTrajectorySeedProducerFromSingleLegAlgo* _theFinder;
0029 };
0030
0031 PhotonConversionTrajectorySeedProducerFromSingleLeg::PhotonConversionTrajectorySeedProducerFromSingleLeg(
0032 const edm::ParameterSet& conf)
0033 : _newSeedCandidates(conf.getParameter<std::string>("newSeedCandidates")) {
0034 _theFinder = new PhotonConversionTrajectorySeedProducerFromSingleLegAlgo(conf, consumesCollector());
0035 produces<TrajectorySeedCollection>(_newSeedCandidates);
0036 }
0037
0038 void PhotonConversionTrajectorySeedProducerFromSingleLeg::produce(edm::Event& ev, const edm::EventSetup& es) {
0039 auto result = std::make_unique<TrajectorySeedCollection>();
0040
0041 _theFinder->find(ev, es, *result);
0042 result->shrink_to_fit();
0043 ev.put(std::move(result), _newSeedCandidates);
0044 }
0045
0046 #include "FWCore/Framework/interface/MakerMacros.h"
0047 DEFINE_FWK_MODULE(PhotonConversionTrajectorySeedProducerFromSingleLeg);