CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 public:
29 
31  HLLHCEvtVtxGenerator(const HLLHCEvtVtxGenerator& p) = delete;
32 
35 
36  ~HLLHCEvtVtxGenerator() override;
37 
38  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
39 
41  HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override;
42 
43  TMatrixD const* GetInvLorentzBoost() const override { return nullptr; };
44 
45 private:
46  //spatial and time offset for mean collision
47  const double fMeanX, fMeanY, fMeanZ, fTimeOffset;
48 
49  //proton beam energy
50  const double momeV;
51  const double gamma;
52  const double beta;
53  const double betagamma;
54 
55  //crossing angle
56  const double phi;
57 
58  //crab cavity frequency
59  const double wcc;
60 
61  // 800 MHz RF?
62  const bool RF800;
63 
64  //beta crossing plane (m)
65  const double betx;
66 
67  //beta separation plane (m)
68  const double bets;
69 
70  //horizontal emittance
71  const double epsxn;
72 
73  //vertical emittance
74  const double epssn;
75 
76  //bunch length
77  const double sigs;
78 
79  //crabbing angle crossing
80  const double alphax;
81 
82  //crabbing angle separation
83  const double alphay;
84 
85  // ratio of crabbing angle to crossing angle
86  const double oncc;
87 
88  //normalized crossing emittance
89  const double epsx;
90 
91  //normlaized separation emittance
92  const double epss;
93 
94  //size in x
95  const double sigx;
96 
97  // crossing angle * crab frequency
98  const double phiCR;
99 
100  //width for y plane
101  double sigma(double z, double epsilon, double beta, double betagamma) const;
102 
103  //density with crabbing
104  double integrandCC(double x, double z, double t) const;
105 
106  // 4D intensity
107  double intensity(double x, double y, double z, double t) const;
108 };
109 
110 #endif
HLLHCEvtVtxGenerator & operator=(const HLLHCEvtVtxGenerator &rhs)=delete
HepMC::FourVector newVertex(CLHEP::HepRandomEngine *) const override
return a new event vertex
HLLHCEvtVtxGenerator(const edm::ParameterSet &p)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
double integrandCC(double x, double z, double t) const
double intensity(double x, double y, double z, double t) const
TMatrixD const * GetInvLorentzBoost() const override
double sigma(double z, double epsilon, double beta, double betagamma) const