26 position_ =
Point(0.,0.,0.);
30 BeamWidthX_ = 0.; BeamWidthY_ = 0;
31 for (
int j=0;
j<7;
j++) {
32 for (
int k=
j;
k<7;
k++) {
52 ss <<
"-----------------------------------------------------\n"
53 <<
" Beam Spot Data\n\n"
54 <<
" Beam type = " <<
type() <<
"\n"
55 <<
" X0 = " << x0() <<
" +/- " << x0Error() <<
" [cm]\n"
56 <<
" Y0 = " << y0() <<
" +/- " << y0Error() <<
" [cm]\n"
57 <<
" Z0 = " << z0() <<
" +/- " << z0Error() <<
" [cm]\n"
58 <<
" Sigma Z0 = " << sigmaZ() <<
" +/- " << sigmaZ0Error() <<
" [cm]\n"
59 <<
" dxdz = " << dxdz() <<
" +/- " << dxdzError() <<
" [radians]\n"
60 <<
" dydz = " << dydz() <<
" +/- " << dydzError() <<
" [radians]\n"
61 <<
" Beam width X = " << BeamWidthX() <<
" +/- " << BeamWidthXError() <<
" [cm]\n"
62 <<
" Beam width Y = " << BeamWidthY() <<
" +/- " << BeamWidthYError() <<
" [cm]\n"
63 <<
" EmittanceX = " << emittanceX() <<
" [cm]\n"
64 <<
" EmittanceY = " << emittanceY() <<
" [cm]\n"
65 <<
" beta-star = " << betaStar() <<
" [cm]\n"
66 <<
"-----------------------------------------------------\n\n";
82 AlgebraicVector3 rotationAxis = ROOT::Math::Cross(globalZ.Unit(), newZ.Unit());
83 float rotationAngle = -acos( ROOT::Math::Dot(globalZ.Unit(),newZ.Unit()));
87 rotationMatrix(0,0) = rotation.
xx();
88 rotationMatrix(0,1) = rotation.
xy();
89 rotationMatrix(0,2) = rotation.
xz();
90 rotationMatrix(1,0) = rotation.
yx();
91 rotationMatrix(1,1) = rotation.
yy();
92 rotationMatrix(1,2) = rotation.
yz();
93 rotationMatrix(2,0) = rotation.
zx();
94 rotationMatrix(2,1) = rotation.
zy();
95 rotationMatrix(2,2) = rotation.
zz();
98 diagError(0,0) =
pow(BeamWidthX(),2);
99 diagError(1,1) =
pow(BeamWidthY(),2);
100 diagError(2,2) =
pow(sigmaZ(),2);
103 matrix = ROOT::Math::Similarity(rotationMatrix, diagError) + covariance3D();
math::Error< dim3 >::type Covariance3DMatrix
BeamSpot()
default constructor
math::XYZPoint Point
point in the space
T x() const
Cartesian x coordinate.
std::ostream & operator<<(std::ostream &, BeamSpot beam)
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
ROOT::Math::SVector< double, 3 > AlgebraicVector3
void print(std::stringstream &ss) const
print information
const Point & position() const
position
Covariance3DMatrix rotatedCovariance3D() const
Power< A, B >::type pow(const A &a, const B &b)
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33