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 
30  ~HLLHCEvtVtxGenerator() override;
31 
32  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
33 
35  HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override;
36 
37  TMatrixD const* GetInvLorentzBoost() const override { return nullptr; };
38 
39 private:
42 
45 
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
DDAxes::y
HLLHCEvtVtxGenerator::epsxn
const double epsxn
Definition: HLLHCEvtVtxGenerator.h:71
HLLHCEvtVtxGenerator::integrandCC
double integrandCC(double x, double z, double t) const
Definition: HLLHCEvtVtxGenerator.cc:146
HLLHCEvtVtxGenerator::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HLLHCEvtVtxGenerator.cc:29
HLLHCEvtVtxGenerator::bets
const double bets
Definition: HLLHCEvtVtxGenerator.h:68
edm
HLT enums.
Definition: AlignableModifier.h:19
HLLHCEvtVtxGenerator::HLLHCEvtVtxGenerator
HLLHCEvtVtxGenerator(const edm::ParameterSet &p)
Definition: HLLHCEvtVtxGenerator.cc:51
HLLHCEvtVtxGenerator::beta
const double beta
Definition: HLLHCEvtVtxGenerator.h:52
DDAxes::x
HLLHCEvtVtxGenerator::phiCR
const double phiCR
Definition: HLLHCEvtVtxGenerator.h:98
geometryDiff.epsilon
int epsilon
Definition: geometryDiff.py:26
HLLHCEvtVtxGenerator::gamma
const double gamma
Definition: HLLHCEvtVtxGenerator.h:51
HLLHCEvtVtxGenerator::intensity
double intensity(double x, double y, double z, double t) const
Definition: HLLHCEvtVtxGenerator.cc:126
HLLHCEvtVtxGenerator
Definition: HLLHCEvtVtxGenerator.h:26
HLLHCEvtVtxGenerator::newVertex
HepMC::FourVector newVertex(CLHEP::HepRandomEngine *) const override
return a new event vertex
Definition: HLLHCEvtVtxGenerator.cc:81
HLLHCEvtVtxGenerator::RF800
const bool RF800
Definition: HLLHCEvtVtxGenerator.h:62
HLLHCEvtVtxGenerator::phi
const double phi
Definition: HLLHCEvtVtxGenerator.h:56
DDAxes::z
HLLHCEvtVtxGenerator::alphax
const double alphax
Definition: HLLHCEvtVtxGenerator.h:80
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
CLHEP
Definition: CocoaGlobals.h:27
HLLHCEvtVtxGenerator::alphay
const double alphay
Definition: HLLHCEvtVtxGenerator.h:83
HLLHCEvtVtxGenerator::fMeanY
const double fMeanY
Definition: HLLHCEvtVtxGenerator.h:47
HLLHCEvtVtxGenerator::oncc
const double oncc
Definition: HLLHCEvtVtxGenerator.h:86
edm::ParameterSet
Definition: ParameterSet.h:47
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
HLLHCEvtVtxGenerator::betx
const double betx
Definition: HLLHCEvtVtxGenerator.h:65
HLLHCEvtVtxGenerator::wcc
const double wcc
Definition: HLLHCEvtVtxGenerator.h:59
BaseEvtVtxGenerator.h
HLLHCEvtVtxGenerator::fMeanX
const double fMeanX
Definition: HLLHCEvtVtxGenerator.h:47
HLLHCEvtVtxGenerator::betagamma
const double betagamma
Definition: HLLHCEvtVtxGenerator.h:53
HLLHCEvtVtxGenerator::GetInvLorentzBoost
TMatrixD const * GetInvLorentzBoost() const override
Definition: HLLHCEvtVtxGenerator.h:37
HLLHCEvtVtxGenerator::~HLLHCEvtVtxGenerator
~HLLHCEvtVtxGenerator() override
Definition: HLLHCEvtVtxGenerator.cc:79
HLLHCEvtVtxGenerator::momeV
const double momeV
Definition: HLLHCEvtVtxGenerator.h:50
HLLHCEvtVtxGenerator::sigs
const double sigs
Definition: HLLHCEvtVtxGenerator.h:77
ConfigurationDescriptions
HLLHCEvtVtxGenerator::fTimeOffset
const double fTimeOffset
Definition: HLLHCEvtVtxGenerator.h:47
HLLHCEvtVtxGenerator::epssn
const double epssn
Definition: HLLHCEvtVtxGenerator.h:74
HLLHCEvtVtxGenerator::epsx
const double epsx
Definition: HLLHCEvtVtxGenerator.h:89
HLLHCEvtVtxGenerator::sigx
const double sigx
Definition: HLLHCEvtVtxGenerator.h:95
HLLHCEvtVtxGenerator::epss
const double epss
Definition: HLLHCEvtVtxGenerator.h:92
HLLHCEvtVtxGenerator::operator=
HLLHCEvtVtxGenerator & operator=(const HLLHCEvtVtxGenerator &rhs)=delete
HLLHCEvtVtxGenerator::sigma
double sigma(double z, double epsilon, double beta, double betagamma) const
Definition: HLLHCEvtVtxGenerator.cc:120
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
BaseEvtVtxGenerator
Definition: BaseEvtVtxGenerator.h:23
HLLHCEvtVtxGenerator::fMeanZ
const double fMeanZ
Definition: HLLHCEvtVtxGenerator.h:47