Belle II Software  release-05-02-19
SphericityEigenvalues.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Umberto Tamponi (tamponi@to.infn.it) *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <TVector3.h>
13 
14 namespace Belle2 {
25  class SphericityEigenvalues {
26  public:
27 
31  explicit SphericityEigenvalues(const std::vector<TVector3>& momenta)
32  {
33  m_momenta.clear();
34  m_momenta = momenta;
35  }
36 
41 
42 
47  void setMomenta(const std::vector<TVector3>& momenta)
48  {
49  m_momenta.clear();
50  m_momenta = momenta;
51  return;
52  }
53 
54 
58  void calculateEigenvalues();
59 
60 
64  double getEigenvalue(short i) const
65  {
66  return (i < 0 || i > 3) ? 0. : m_lambda[i];
67  }
68 
72  TVector3 getEigenvector(short i) const
73  {
74  TVector3 nullVector(0., 0., 0.);
75  return (i < 0 || i > 3) ? nullVector : m_eVector[i];
76  }
77 
78  private:
79 
80  double m_lambda[3] = {0.};
81  TVector3 m_eVector[3];
82  std::vector<TVector3> m_momenta;
83  };
84 
86 } // Belle2 namespace
Belle2::SphericityEigenvalues::m_eVector
TVector3 m_eVector[3]
The eigenvectors.
Definition: SphericityEigenvalues.h:89
Belle2::SphericityEigenvalues::setMomenta
void setMomenta(const std::vector< TVector3 > &momenta)
Sets the list of momenta to be used in the calculation overwriting the previous values.
Definition: SphericityEigenvalues.h:55
Belle2::SphericityEigenvalues::calculateEigenvalues
void calculateEigenvalues()
Calculates eigenvalues and eigenvectors.
Definition: SphericityEigenvalues.cc:21
Belle2::SphericityEigenvalues::m_momenta
std::vector< TVector3 > m_momenta
The particles' momenta.
Definition: SphericityEigenvalues.h:90
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::SphericityEigenvalues::getEigenvector
TVector3 getEigenvector(short i) const
Returns the i-th Eigenvector.
Definition: SphericityEigenvalues.h:80
Belle2::SphericityEigenvalues::m_lambda
double m_lambda[3]
The eigenvalues.
Definition: SphericityEigenvalues.h:88
Belle2::SphericityEigenvalues::SphericityEigenvalues
SphericityEigenvalues(const std::vector< TVector3 > &momenta)
Constructor with an array of 3-momenta.
Definition: SphericityEigenvalues.h:39
Belle2::SphericityEigenvalues::getEigenvalue
double getEigenvalue(short i) const
Returns the i-th Eigenvalue.
Definition: SphericityEigenvalues.h:72
Belle2::SphericityEigenvalues::~SphericityEigenvalues
~SphericityEigenvalues()
Default destructor.
Definition: SphericityEigenvalues.h:48