File indexing completed on 2023-03-17 11:25:55
0001 #ifndef PROTONTRANSPORT
0002 #define PROTONTRANSPORT
0003 #include "FWCore/Framework/interface/ConsumesCollector.h"
0004 #include "FWCore/Framework/interface/EventSetup.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "HepMC/GenEvent.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008 #include "SimDataFormats/Forward/interface/LHCTransportLink.h"
0009 #include "SimTransport/PPSProtonTransport/interface/BaseProtonTransport.h"
0010
0011 #include <memory>
0012 #include <vector>
0013
0014 class ProtonTransport {
0015 public:
0016 ProtonTransport(const edm::ParameterSet& iConfig, edm::ConsumesCollector iC);
0017 ~ProtonTransport() = default;
0018
0019 std::vector<LHCTransportLink>& getCorrespondenceMap() { return instance_->getCorrespondenceMap(); }
0020 void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) {
0021 instance_->process(ev, es, engine);
0022 }
0023 void addPartToHepMC(const HepMC::GenEvent* iev, HepMC::GenEvent* ev) { instance_->addPartToHepMC(iev, ev); }
0024
0025 private:
0026 std::unique_ptr<BaseProtonTransport> instance_;
0027 };
0028 #endif