11 fX0(vtx.getParameter<double>(
"X0")),
12 fY0(vtx.getParameter<double>(
"Y0")),
13 fZ0(vtx.getParameter<double>(
"Z0")),
14 fSigmaZ(vtx.getParameter<double>(
"SigmaZ")),
15 alpha_(vtx.getParameter<double>(
"Alpha")),
16 phi_(vtx.getParameter<double>(
"Phi")),
17 fbetastar(vtx.getParameter<double>(
"BetaStar")),
18 femittance(vtx.getParameter<double>(
"Emittance"))
30 this->SetZ(tmp_sigz +
fZ0);
55 if ( fabs(
alpha_) < 1E-12 && fabs(
phi_) < 1E-12 )
return aBoost;
57 TMatrixD tmpboost(4,4);
67 double tphi = sphi/cphi;
68 tmpboost(0,0) = 1./cphi;
69 tmpboost(0,1) = - calpha*sphi;
70 tmpboost(0,2) = - tphi*sphi;
71 tmpboost(0,3) = - salpha*sphi;
72 tmpboost(1,0) = - calpha*tphi;
74 tmpboost(1,2) = calpha*tphi;
77 tmpboost(2,1) = -calpha*sphi;
79 tmpboost(2,3) = - salpha*sphi;
80 tmpboost(3,0) = - salpha*tphi;
82 tmpboost(3,2) = salpha*tphi;
86 aBoost =
new TMatrixD(tmpboost);
BetaFuncPrimaryVertexGenerator(const edm::ParameterSet &vtx, const RandomEngine *engine)
Default constructor.
const RandomEngine * random
Sin< T >::type sin(const T &t)
virtual void generate()
Generation process (to be implemented)
double gaussShoot(double mean=0.0, double sigma=1.0) const
Cos< T >::type cos(const T &t)
TMatrixD * inverseLorentzBoost()
XYZPointD XYZPoint
point in space with cartesian internal representation
void setBoost(TMatrixD *)
double BetaFunction(double z, double z0)