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 {
14  class HepRandomEngine;
15 }
17  public:
19  virtual ~ProtonTransport();
20  std::vector<LHCTransportLink>& getCorrespondenceMap() { return m_CorrespondenceMap; }
21  virtual void process(const HepMC::GenEvent * ev , const edm::EventSetup & es, CLHEP::HepRandomEngine * engine)=0;
22  void ApplyBeamCorrection(HepMC::GenParticle* p);
23  void ApplyBeamCorrection(TLorentzVector& p);
24  void addPartToHepMC( HepMC::GenEvent * );
25  void clear();
26 
27  protected:
28  enum class TransportMode {HECTOR,TOTEM};
30  int NEvent;
32  CLHEP::HepRandomEngine * engine;
33 
39 
40  std::vector<LHCTransportLink> m_CorrespondenceMap;
41  std::map<unsigned int, TLorentzVector> m_beamPart;
42  std::map<unsigned int, double> m_xAtTrPoint;
43  std::map<unsigned int, double> m_yAtTrPoint;
44 
45  double m_sigmaSX;
46  double m_sigmaSY;
47  double m_sigmaSTX;
48  double m_sigmaSTY;
49  double m_sig_E;
50  double fVtxMeanX;
51  double fVtxMeanY;
52  double fVtxMeanZ;
53  double fBeamXatIP;
54  double fBeamYatIP;
55  double fBeamMomentum;
56  double fBeamEnergy;
57 
58 };
59 #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:167
double fPPSRegionStart_56
std::vector< LHCTransportLink > & getCorrespondenceMap()
CLHEP::HepRandomEngine * engine