CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
HectorTransport.h
Go to the documentation of this file.
1 #ifndef HECTOR_TRANSPORT
2 #define HECTOR_TRANSPORT
8 
16 
18 
19 #include <cmath>
20 #include <iomanip>
21 #include <cstdlib>
22 
23 // HepMC headers
24 #include "HepMC/GenEvent.h"
25 #include "HepMC/GenVertex.h"
26 #include "HepMC/GenParticle.h"
27 #include "HepMC/SimpleVector.h"
28 
29 // user include files
30 #include <string>
31 
32 namespace CLHEP {
33  class HepRandomEngine;
34 }
35 
36 class H_BeamParticle;
37 class H_BeamLine;
38 
40 public:
42  ~HectorTransport() override;
43 
44  void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) override;
45 
46 private:
48 
49  static constexpr double fPPSBeamLineLength_ = 250.; // default beam line length
50 
53 
54  // New function to calculate the LorentzBoost
55 
56  bool setBeamLine();
57  // Defaults
58 
59  double m_fEtacut;
61 
62  // PPSHector
63  std::unique_ptr<H_BeamLine> m_beamline45;
64  std::unique_ptr<H_BeamLine> m_beamline56;
65 
68 
71 };
72 #endif
~HectorTransport() override
bool ev
bool transportProton(const HepMC::GenParticle *)
propagate the particles through a beamline to PPS
edm::ESGetToken< CTPPSBeamParameters, CTPPSBeamParametersRcd > beamParametersToken_
const CTPPSBeamParameters * beamParameters_
const BeamSpotObjects * beamspot_
HectorTransport(const edm::ParameterSet &ps, edm::ConsumesCollector iC)
void process(const HepMC::GenEvent *ev, const edm::EventSetup &es, CLHEP::HepRandomEngine *engine) override
static constexpr double fPPSBeamLineLength_
std::unique_ptr< H_BeamLine > m_beamline56
std::unique_ptr< H_BeamLine > m_beamline45
edm::ESGetToken< BeamSpotObjects, BeamSpotObjectsRcd > beamspotToken_