CMS 3D CMS Logo

HectorTransport.h
Go to the documentation of this file.
1 #ifndef HECTOR_TRANSPORT
2 #define HECTOR_TRANSPORT
4 
7 
12 
14 
15 #include <cmath>
16 #include <iomanip>
17 #include <cstdlib>
18 
19 // HepMC headers
20 #include "HepMC/GenEvent.h"
21 #include "HepMC/GenVertex.h"
22 #include "HepMC/GenParticle.h"
23 #include "HepMC/SimpleVector.h"
24 
25 // user include files
26 #include <string>
27 
28 namespace CLHEP {
29  class HepRandomEngine;
30 }
31 
32 class H_BeamParticle;
33 class H_BeamLine;
34 
36 public:
38  ~HectorTransport() override;
39 
40  void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) override;
41 
42 private:
45 
46  static constexpr double fPPSBeamLineLength_ = 250.; // default beam line length
47 
50 
51  // New function to calculate the LorentzBoost
52 
53  bool setBeamLine();
54  // Defaults
55 
56  double m_fEtacut;
58 
59  // PPSHector
60  std::unique_ptr<H_BeamLine> m_beamline45;
61  std::unique_ptr<H_BeamLine> m_beamline56;
62 };
63 #endif
MessageLogger.h
ESHandle.h
HectorTransport
Definition: HectorTransport.h:35
RandomNumberGenerator.h
HectorTransport::transportProton
bool transportProton(const HepMC::GenParticle *)
propagate the particles through a beamline to PPS
Definition: HectorTransport.cc:73
HectorTransport::m_verbosity
bool m_verbosity
Definition: HectorTransport.h:43
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
HectorTransport::fPPSBeamLineLength_
static constexpr double fPPSBeamLineLength_
Definition: HectorTransport.h:46
HectorTransport::process
void process(const HepMC::GenEvent *ev, const edm::EventSetup &es, CLHEP::HepRandomEngine *engine) override
Definition: HectorTransport.cc:44
CLHEP
Definition: CocoaGlobals.h:27
HectorTransport::m_beamline56
std::unique_ptr< H_BeamLine > m_beamline56
Definition: HectorTransport.h:61
edm::ParameterSet
Definition: ParameterSet.h:47
ParticleDataTable.h
HectorTransport::HectorTransport
HectorTransport(const edm::ParameterSet &ps)
Definition: HectorTransport.cc:14
BaseProtonTransport.h
BaseProtonTransport
Definition: BaseProtonTransport.h:17
edm::EventSetup
Definition: EventSetup.h:58
HectorTransport::m_beamline45
std::unique_ptr< H_BeamLine > m_beamline45
Definition: HectorTransport.h:60
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
ev
bool ev
Definition: Hydjet2Hadronizer.cc:97
EventSetup.h
HectorTransport::m_fMomentumMin
double m_fMomentumMin
Definition: HectorTransport.h:57
ParameterSet.h
HectorTransport::m_fEtacut
double m_fEtacut
Definition: HectorTransport.h:56
HepMCProduct.h
HectorTransport::produceHitsRelativeToBeam_
bool produceHitsRelativeToBeam_
Definition: HectorTransport.h:44
HectorTransport::~HectorTransport
~HectorTransport() override
Definition: HectorTransport.cc:12
HectorTransport::setBeamLine
bool setBeamLine()
Definition: HectorTransport.cc:171