CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
BaseProtonTransport.h
Go to the documentation of this file.
1 #ifndef BASEPROTONTRANSPORT
2 #define BASEPROTONTRANSPORT
5 #include "HepMC/GenEvent.h"
9 #include <vector>
10 #include <map>
11 #include <string>
12 #include "TLorentzVector.h"
13 
14 namespace CLHEP {
15  class HepRandomEngine;
16 }
18 public:
20  virtual ~BaseProtonTransport() { this->clear(); };
21 
22  std::vector<LHCTransportLink>& getCorrespondenceMap() { return m_CorrespondenceMap; }
23  virtual void process(const HepMC::GenEvent* ev, const edm::EventSetup& es, CLHEP::HepRandomEngine* engine) = 0;
24 
25  void clear();
26 
28 
30  void ApplyBeamCorrection(TLorentzVector& p);
31 
32  void setBeamEnergy(double e) {
33  beamEnergy_ = e;
35  }
36 
37  double beamEnergy() { return beamEnergy_; };
38  double beamMomentum() { return beamMomentum_; };
39 
40 protected:
43 
44  int NEvent;
45  CLHEP::HepRandomEngine* engine_;
46  std::vector<LHCTransportLink> m_CorrespondenceMap;
47  std::map<unsigned int, TLorentzVector> m_beamPart;
48  std::map<unsigned int, double> m_xAtTrPoint;
49  std::map<unsigned int, double> m_yAtTrPoint;
50 
51  bool verbosity_;
55 
58 
65 
66  double beamMomentum_;
67  double beamEnergy_;
68  double etaCut_;
69  double momentumCut_;
70 
71  double m_sigmaSTX;
72  double m_sigmaSTY;
73  double m_sigmaSX;
74  double m_sigmaSY;
75  double m_sig_E;
76 };
77 #endif
virtual void process(const HepMC::GenEvent *ev, const edm::EventSetup &es, CLHEP::HepRandomEngine *engine)=0
BaseProtonTransport(const edm::ParameterSet &iConfig)
void setBeamEnergy(double e)
std::vector< LHCTransportLink > & getCorrespondenceMap()
bool ev
T sqrt(T t)
Definition: SSEVec.h:19
CLHEP::HepRandomEngine * engine_
std::map< unsigned int, double > m_xAtTrPoint
void ApplyBeamCorrection(HepMC::GenParticle *p)
std::map< unsigned int, TLorentzVector > m_beamPart
static const double ProtonMassSQ
std::map< unsigned int, double > m_yAtTrPoint
std::vector< LHCTransportLink > m_CorrespondenceMap
void addPartToHepMC(const HepMC::GenEvent *, HepMC::GenEvent *)