CMS 3D CMS Logo

BetafuncEvtVtxGenerator.h
Go to the documentation of this file.
1 #ifndef IOMC_BetafuncEvtVtxGenerator_H
2 #define IOMC_BetafuncEvtVtxGenerator_H
3 
4 /*
5 ________________________________________________________________________
6 
7  BetafuncEvtVtxGenerator
8 
9  Smear vertex according to the Beta function on the transverse plane
10  and a Gaussian on the z axis. It allows the beam to have a crossing
11  angle (dx/dz and dy/dz).
12 
13  Based on GaussEvtVtxGenerator.h
14  implemented by Francisco Yumiceva (yumiceva@fnal.gov)
15 
16  FERMILAB
17  2006
18 ________________________________________________________________________
19 */
20 
24 
25 namespace CLHEP {
26  class HepRandomEngine;
27 }
28 
30 public:
32  ~BetafuncEvtVtxGenerator() override;
33 
34  void beginRun(const edm::Run&, const edm::EventSetup&) override;
35  void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override;
36 
38  //virtual CLHEP::Hep3Vector * newVertex();
39  HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override;
40 
41  TMatrixD const* GetInvLorentzBoost() const override;
42 
44  void sigmaZ(double s = 1.0);
45 
47  void X0(double m = 0) { fX0 = m; }
49  void Y0(double m = 0) { fY0 = m; }
51  void Z0(double m = 0) { fZ0 = m; }
52 
54  void betastar(double m = 0) { fbetastar = m; }
56  void emittance(double m = 0) { femittance = m; }
57 
59  double BetaFunction(double z, double z0) const;
60 
61 private:
65  BetafuncEvtVtxGenerator& operator=(const BetafuncEvtVtxGenerator& rhs) = delete;
66 
67  void setBoost(double alpha, double phi);
68 
69 private:
70  bool readDB_;
71 
72  double fX0, fY0, fZ0;
73  double fSigmaZ;
74  //double fdxdz, fdydz;
75  double fbetastar, femittance;
76  // double falpha;
77  double fTimeOffset;
78 
79  TMatrixD boost_;
80 
81  void update(const edm::EventSetup& iEventSetup);
83 };
84 
85 #endif
void X0(double m=0)
set mean in X in cm
void betastar(double m=0)
set beta_star
void Y0(double m=0)
set mean in Y in cm
edm::ESWatcher< SimBeamSpotObjectsRcd > parameterWatcher_
void Z0(double m=0)
set mean in Z in cm
#define update(a, b)
alpha
zGenParticlesMatch = cms.InputTag(""),
void emittance(double m=0)
emittance (no the normalized)
Definition: Run.h:45