Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:08

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