File indexing completed on 2024-04-06 12:31:08
0001 #ifndef TOTEM_TRANSPORT
0002 #define TOTEM_TRANSPORT
0003 #include "SimTransport/PPSProtonTransport/interface/BaseProtonTransport.h"
0004 #include "SimTransport/TotemRPProtonTransportParametrization/interface/LHCOpticsApproximator.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007 #include "FWCore/Framework/interface/ESHandle.h"
0008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0009
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0013 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
0014
0015 namespace CLHEP {
0016 class HepRandomEngine;
0017 }
0018
0019 class TotemTransport : public BaseProtonTransport {
0020 public:
0021 TotemTransport(const edm::ParameterSet& ps);
0022 ~TotemTransport() override;
0023
0024 void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) override;
0025
0026 private:
0027 bool transportProton(HepMC::GenParticle*);
0028 LHCOpticsApproximator* ReadParameterization(const std::string&, const std::string&);
0029
0030 LHCOpticsApproximator* m_aprox_ip_150_r_;
0031 LHCOpticsApproximator* m_aprox_ip_150_l_;
0032
0033 std::string m_model_ip_150_r_name_;
0034 std::string m_model_ip_150_l_name_;
0035
0036 double m_beampipe_aperture_radius_;
0037 };
0038 #endif