Belle II Software development
CollisionAxisCMS.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <TMatrixDSym.h>
12
13namespace Belle2 {
27 class CollisionAxisCMS: public TObject {
28 public:
29
31 bool operator==(const CollisionAxisCMS& other) const
32 {
33 return other.m_angleXZ == m_angleXZ && other.m_angleYZ == m_angleYZ &&
36 }
37
39 void setAngles(double angleXZ, double angleYZ, const TMatrixDSym& centerCovariance)
40 {
41 m_angleXZ = angleXZ;
42 m_angleYZ = angleYZ;
43 m_centerCovariance = centerCovariance;
44 }
45
47 void setSpread(const TMatrixDSym& spreadCovariance, double spreadXZunc, double spreadYZunc, double spreadPhiUnc)
48 {
49 m_spreadCovariance = spreadCovariance;
50 m_spreadXZunc = spreadXZunc;
51 m_spreadYZunc = spreadYZunc;
52 m_spreadPhiUnc = spreadPhiUnc;
53 }
54
55
57 double getAngleXZ() const { return m_angleXZ; }
58
60 double getAngleYZ() const { return m_angleYZ; }
61
62
64 const TMatrixDSym& getCenterCovariance() const { return m_centerCovariance; }
65
67 const TMatrixDSym& getSpreadCovariance() const { return m_spreadCovariance; }
68
70 double getSpreadXZunc() const { return m_spreadXZunc; }
71
73 double getSpreadYZunc() const { return m_spreadYZunc; }
74
76 double getSpreadPhiUnc() const { return m_spreadPhiUnc; }
77
78 private:
79
80 // central values
81 double m_angleXZ;
82 double m_angleYZ;
83
84 // uncertainty of central values
85 TMatrixDSym m_centerCovariance{2};
86
87 // spread of the values
88 TMatrixDSym m_spreadCovariance{2};
89
90 // uncertainties of spread of the values
94
96 };
97
99} //Belle2 namespace
This class contains the measured values of the orientation of the collision axis in the CM system obt...
ClassDef(CollisionAxisCMS, 1)
direction of collision axis in CMS and its spread
double getSpreadPhiUnc() const
Get the uncertainty of the angle of the eigenvector of m_spreadCovariance.
double getAngleYZ() const
Get the mean YZ angle of the HER beam in the CM frame obtained by pure boost.
double m_angleXZ
the XZ angle of the HER beam in the CM system obtained by pure boost
const TMatrixDSym & getCenterCovariance() const
Get the covariance matrix describing uncertainties of m_angleXZ and m_angleYZ.
const TMatrixDSym & getSpreadCovariance() const
Get the covariance matrix describing "natural" spread of angleXZ and angleYZ.
double m_spreadYZunc
Uncertainty of the eigenvalue of m_spreadCovariance corresponding to eigenvector closer to y-axis.
double m_angleYZ
the YZ angle of the HER beam in the CM system obtained by pure boost
void setSpread(const TMatrixDSym &spreadCovariance, double spreadXZunc, double spreadYZunc, double spreadPhiUnc)
Set spread covariance and uncertainties of the eigenvalues of this matrix.
TMatrixDSym m_spreadCovariance
Covariance matrix describing "natural" spread of m_angleXZ and m_angleYZ.
bool operator==(const CollisionAxisCMS &other) const
equality operator
double getSpreadXZunc() const
Get the uncertainty of the eigenvalue of m_spreadCovariance corresponding to eigenvector closer to x-...
double m_spreadXZunc
Uncertainty of the eigenvalue of m_spreadCovariance corresponding to eigenvector closer to x-axis.
TMatrixDSym m_centerCovariance
Covariance matrix describing uncertainties of m_angleXZ and m_angleYZ.
double getAngleXZ() const
Get the mean XZ angle of the HER beam in the CM frame obtained by pure boost.
void setAngles(double angleXZ, double angleYZ, const TMatrixDSym &centerCovariance)
Set the central values and uncertainty of them.
double getSpreadYZunc() const
Get the uncertainty of the eigenvalue of m_spreadCovariance corresponding to eigenvector closer to y-...
double m_spreadPhiUnc
Uncertainty of the angle of the eigenvector of m_spreadCovariance.
Abstract base class for different kinds of events.