CMS 3D CMS Logo

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 
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 sigma(double z, double epsilon, double beta, double betagamma) const
double intensity(double x, double y, double z, double t) const
HLT enums.
double integrandCC(double x, double z, double t) const
TMatrixD const * GetInvLorentzBoost() const override