CMS 3D CMS Logo

ProtonTransport.h
Go to the documentation of this file.
1 #ifndef PROTONTRANSPORT
2 #define PROTONTRANSPORT
4 #include "HepMC/GenEvent.h"
8 #include <vector>
9 #include <map>
10 #include "TLorentzVector.h"
11 
12 namespace CLHEP {
13  class HepRandomEngine;
14 }
16 public:
18  virtual ~ProtonTransport();
19  std::vector<LHCTransportLink>& getCorrespondenceMap() { return m_CorrespondenceMap; }
20  virtual void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) = 0;
21  void ApplyBeamCorrection(HepMC::GenParticle* p);
22  void ApplyBeamCorrection(TLorentzVector& p);
23  void addPartToHepMC(HepMC::GenEvent*);
24  void clear();
25 
26 protected:
27  enum class TransportMode { HECTOR, TOTEM };
29  int NEvent;
31  CLHEP::HepRandomEngine* engine;
32 
38 
39  std::vector<LHCTransportLink> m_CorrespondenceMap;
40  std::map<unsigned int, TLorentzVector> m_beamPart;
41  std::map<unsigned int, double> m_xAtTrPoint;
42  std::map<unsigned int, double> m_yAtTrPoint;
43 
44  double m_sigmaSX;
45  double m_sigmaSY;
46  double m_sigmaSTX;
47  double m_sigmaSTY;
48  double m_sig_E;
49  double fVtxMeanX;
50  double fVtxMeanY;
51  double fVtxMeanZ;
52  double fBeamXatIP;
53  double fBeamYatIP;
54  double fBeamMomentum;
55  double fBeamEnergy;
56 };
57 #endif
double fPPSRegionStart_45
std::map< unsigned int, TLorentzVector > m_beamPart
TransportMode MODE
std::map< unsigned int, double > m_yAtTrPoint
std::vector< LHCTransportLink > m_CorrespondenceMap
bool ev
double fCrossingAngle_45
std::map< unsigned int, double > m_xAtTrPoint
double fCrossingAngle_56
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
Definition: matutil.cc:151
double fPPSRegionStart_56
std::vector< LHCTransportLink > & getCorrespondenceMap()
CLHEP::HepRandomEngine * engine