Back to home page

Project CMSSW displayed by LXR

 
 

    


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   // look for scattered protons, propagates them, add them to the event
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