 |
Belle II Software
release-05-02-19
|
13 #include <framework/datastore/RelationsObject.h>
14 #include <framework/logging/Logger.h>
17 #include <TLorentzVector.h>
69 for (
int i = 0; i < 3; i++)
87 B2ERROR(
"Invalid EigenVector number (n = " << i <<
"). You can set only 3 eigenvectors.");
100 B2ERROR(
"Invalid EigenVector number (n = " << i <<
"). You can set only 3 eigenvectors.");
112 if (order < 0 || order > 9)
113 B2ERROR(
"Invalid Fox-Wolfram moment order (n = " << order <<
"). The order must be in the [0,9] range.");
133 if (thrustAxis.Mag() < 1.E-10)
134 B2WARNING(
"The thrust axis you are trying to set has magnitude numerically compatible with 0.");
144 if (spherocityAxis.Mag() < 1.E-10)
145 B2WARNING(
"The spherocity axis you are trying to set has magnitude numerically compatible with 0.");
156 if (order < 0 || order > 9)
157 B2ERROR(
"Invalid harmonic moment order. It must be in the [0,9] range.");
169 if (order < 0 || order > 9)
170 B2ERROR(
"Invalid harmonic moment order. It must be in the [0,9] range.");
182 if (order < 0 || order > 9)
183 B2ERROR(
"Invalid Cleo cone order. It must be in the [0,9] range.");
195 if (order < 0 || order > 9)
196 B2ERROR(
"Invalid Cleo cone order. It must be in the [0,9] range.");
259 if (i < 0 || i > 2) {
260 B2ERROR(
"Invalid Eigenvalue number (n = " << i <<
"). There are only 3 eigenvalues...");
261 return std::numeric_limits<float>::quiet_NaN();
274 if (i < 0 || i > 2) {
275 B2ERROR(
"Invalid Eigenvalue number (n = " << i <<
"). There are only 3 eigenvalues...");
276 return TVector3(std::numeric_limits<float>::quiet_NaN(), std::numeric_limits<float>::quiet_NaN(),
277 std::numeric_limits<float>::quiet_NaN());
291 if (order < 0 || order > 9) {
292 B2ERROR(
"Invalid Fox-Wolfram moment order. It must be in the [0,9] range.");
293 return std::numeric_limits<float>::quiet_NaN();
305 if (order < 0 || order > 9) {
306 B2ERROR(
"Invalid harmonic moment order. It must be in the [0,9] range.");
307 return std::numeric_limits<float>::quiet_NaN();
319 if (order < 0 || order > 9) {
320 B2ERROR(
"Invalid harmonic moment order. The order must be in the [0,9] range.");
321 return std::numeric_limits<float>::quiet_NaN();
334 if (order < 0 || order > 9) {
335 B2ERROR(
"Invalid CLEO cone order. The order must be in the [0,9] range.");
336 return std::numeric_limits<float>::quiet_NaN();
348 if (order < 0 || order > 9) {
349 B2ERROR(
"Invalid CLEO cone order. The order must be in the [0,9] range.");
350 return std::numeric_limits<float>::quiet_NaN();
TVector3 m_thrustAxis
Thrust axis.
void setForwardHemisphere4Momentum(TLorentzVector mom)
Sets the 4-momentum of the forward hemisphere, as defined by the thrust axis.
void setThrust(float thrust)
Sets the thrust of the event.
float m_cleoConesThrust[10]
Cleo cones up to order 9, calculated respect to the thrust axis.
float getCleoConeCollision(short order)
Returns the Cleo cone of a given order, calculated respect to the beam axis.
TLorentzVector getBackwardHemisphere4Momentum()
Return the 4-momentum of the backward hemisphere, as defined by the thrust axis.
float m_thrust
Thrust value.
float m_harmonicMomentsCollision[10]
Harmonic moments up to order 9, calculated respect to the collision axis.
float getSphericityEigenvalue(short i)
Returns the i-th sphericity matrix eigenvalue.
float getHarmonicMomentCollision(short order)
Returns the harmonic moment of a given order, calculated respect to the beam axis.
void setThrustAxis(TVector3 thrustAxis)
Sets the thrust axis, normalizing it.
TVector3 m_sphericityEigenvector[3]
Sphericity tensor eigenvectors.
ClassDef(RelationsInterface, 0)
defines interface for accessing relations of objects in StoreArray.
void setBackwardHemisphere4Momentum(TLorentzVector mom)
Sets the 4-momentum of the backward hemisphere, as defined by the thrust axis.
void setHarmonicMomentThrust(short order, float moment)
Sets the harmonic moment of order n, calculated using the thrust axis.
float m_harmonicMomentsThrust[10]
Harmonic moments up to order 9, calculated respect to the thrust axis.
void setSphericityEigenvalue(short i, float eigenvalue)
Sets the i-th sphericity eigenvalue.
Class for collecting the basic objects related to the event shape.
TVector3 getThrustAxis()
Returns the thrust axis (normalized).
float m_cleoConesCollision[10]
Cleo cones up to order 9, calculated respect to the collision axis.
void setSphericityEigenvector(short i, TVector3 eigenvector)
Sets the i-th sphericity eigenvector.
float m_foxWolframMoments[10]
Fox Wolfram moments up to order 9.
TVector3 m_spherocityAxis
Spherocity axis.
float getFWMoment(short order)
Returns the Fox-Wolfram moment of a given order.
TLorentzVector m_forwardHemisphere4Momentum
Total 4-momentum of the particles in the forward hemisphere.
TLorentzVector m_backwardHemisphere4Momentum
Total 4-momentum of the particles in the backward hemisphere.
void setSpherocityAxis(TVector3 spherocityAxis)
Sets the spherocity axis, normalizing it.
Abstract base class for different kinds of events.
float getHarmonicMomentThrust(short order)
Returns the harmonic moment of a given order, calculated respect to the thrust axis.
TLorentzVector getForwardHemisphere4Momentum()
Returns the 4-momentum of the forward hemisphere, as defined by the thrust axis.
TVector3 getSpherocityAxis()
Returns the spherocity axis (normalized).
RelationsInterface< TObject > RelationsObject
Provides interface for getting/adding relations to objects in StoreArrays.
EventShapeContainer()
Default constructor, resets the sphericity matrix.
float getThrust()
Returns the thrust.
void setFWMoment(short order, float moment)
Sets the Fox-Wolfram (FW) moment of order n.
TVector3 getSphericityEigenvector(short i)
Returns the i-th sphericity matrix eigenvector.
void setCleoConeThrust(short order, float moment)
Sets the Cleo cone of order n, calculated using the thrust axis.
void setHarmonicMomentCollision(short order, float moment)
Sets the harmonic moment of order n, calculated using the collision axis.
float m_sphericityEigenvalue[3]
Sphericity tensor eigenvalues.
float getCleoConeThrust(short order)
Returns the Cleo cone of a given order, calculated respect to the thrust axis.
void setCleoConeCollision(short order, float moment)
Sets the Cleo cone of order n, calculated using the collision axis.