CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLLHCEvtVtxGenerator.h
Go to the documentation of this file.
1 #ifndef IOMC_HLLHCEvtVtxGenerator_H
2 #define IOMC_HLLHCEvtVtxGenerator_H
3 
15 
16 #include <string>
17 
18 namespace CLHEP {
19  class RandFlat;
20 }
21 
22 namespace edm {
24 }
25 
27 {
28 public:
29 
31 
32  virtual ~HLLHCEvtVtxGenerator();
33 
34  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
35 
37  virtual HepMC::FourVector* newVertex(CLHEP::HepRandomEngine*) ;
38 
39  virtual TMatrixD* GetInvLorentzBoost() {return 0;};
40 
41 private:
44 
47 
48  //spatial and time offset for mean collision
49  const double fMeanX, fMeanY, fMeanZ, fTimeOffset;
50 
51  //proton beam energy
52  const double momeV;
53  const double gamma;
54  const double beta;
55  const double betagamma;
56 
57  //crossing angle
58  const double phi;
59 
60  //crab cavity frequency
61  const double wcc;
62 
63  // 800 MHz RF?
64  const bool RF800;
65 
66  //beta crossing plane (m)
67  const double betx;
68 
69  //beta separation plane (m)
70  const double bets;
71 
72  //horizontal emittance
73  const double epsxn;
74 
75  //vertical emittance
76  const double epssn;
77 
78  //bunch length
79  const double sigs;
80 
81  //crabbing angle crossing
82  const double alphax;
83 
84  //crabbing angle separation
85  const double alphay;
86 
87  // ratio of crabbing angle to crossing angle
88  const double oncc;
89 
90  //normalized crossing emittance
91  const double epsx;
92 
93  //normlaized separation emittance
94  const double epss;
95 
96  //size in x
97  const double sigx;
98 
99  // crossing angle * crab frequency
100  const double phiCR;
101 
102  //width for y plane
103  double sigma(double z, double epsilon, double beta, double betagamma) const;
104 
105  //density with crabbing
106  double integrandCC(double x, double z, double t) const;
107 
108  // 4D intensity
109  double intensity(double x, double y,double z,double t) const;
110 };
111 
112 #endif
HLLHCEvtVtxGenerator(const edm::ParameterSet &p)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual TMatrixD * GetInvLorentzBoost()
double integrandCC(double x, double z, double t) const
virtual HepMC::FourVector * newVertex(CLHEP::HepRandomEngine *)
return a new event vertex
double intensity(double x, double y, double z, double t) const
HLLHCEvtVtxGenerator & operator=(const HLLHCEvtVtxGenerator &rhs)
double sigma(double z, double epsilon, double beta, double betagamma) const