Belle II Software  light-2403-persian
ClusterUtils.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 // DATABASE objects
12 #include <mdst/dbobjects/BeamSpot.h>
13 #include <analysis/dbobjects/ECLPhotonEnergyResolution.h>
14 #include <framework/database/DBObjPtr.h>
15 
16 // MDST
17 #include <mdst/dataobjects/ECLCluster.h>
18 
19 // ROOT
20 #include <Math/Vector3D.h>
21 #include <Math/Vector4D.h>
22 #include <TMatrixD.h>
23 
24 namespace Belle2 {
36  class ClusterUtils {
37 
38  public:
43 
48  const ROOT::Math::PxPyPzEVector GetCluster4MomentumFromCluster(const ECLCluster* cluster, ECLCluster::EHypothesisBit hypo);
49 
54  const ROOT::Math::PxPyPzEVector Get4MomentumFromCluster(const ECLCluster* cluster, ECLCluster::EHypothesisBit hypo);
55 
60  const ROOT::Math::PxPyPzEVector Get4MomentumFromCluster(const ECLCluster* cluster, const ROOT::Math::XYZVector& vertex,
66  const TMatrixD GetJacobiMatrix4x6FromCluster(const ECLCluster* cluster, ECLCluster::EHypothesisBit hypo);
67 
72  const TMatrixD GetJacobiMatrix4x6FromCluster(const ECLCluster* cluster, const ROOT::Math::XYZVector& vertex,
74 
79  const TMatrixDSym GetCovarianceMatrix3x3FromCluster(const ECLCluster* cluster);
80 
85  const TMatrixDSym GetCovarianceMatrix4x4FromCluster(const ECLCluster* cluster, const TMatrixD& jacobiMatrix);
86 
91  const TMatrixDSym GetCovarianceMatrix4x4FromCluster(const ECLCluster* cluster,
92  const TMatrixDSym& covmatvertex,
93  const TMatrixD& jacobiMatrix);
94 
99  const TMatrixDSym GetCovarianceMatrix7x7FromCluster(const ECLCluster* cluster, const TMatrixD& jacobiMatrix);
100 
105  const TMatrixDSym GetCovarianceMatrix7x7FromCluster(const ECLCluster* cluster,
106  const TMatrixDSym& covmatvertex,
107  const TMatrixD& jacobiMatrix);
108 
113  const ROOT::Math::XYZVector GetIPPosition();
114 
119  const TMatrixDSym GetIPPositionCovarianceMatrix();
120 
121  private:
126 
131  };
132 
134 } // Belle2 namespace
Class to provide momentum-related information from ECLClusters.
Definition: ClusterUtils.h:36
const TMatrixDSym GetCovarianceMatrix7x7FromCluster(const ECLCluster *cluster, const TMatrixD &jacobiMatrix)
Returns 7x7 covariance matrix (px, py, pz, E, x, y, z)
const ROOT::Math::PxPyPzEVector Get4MomentumFromCluster(const ECLCluster *cluster, ECLCluster::EHypothesisBit hypo)
Returns four momentum vector.
Definition: ClusterUtils.cc:25
OptionalDBObjPtr< ECLPhotonEnergyResolution > m_photonEnergyResolutionDB
Photon energy resolution database object.
Definition: ClusterUtils.h:130
const TMatrixD GetJacobiMatrix4x6FromCluster(const ECLCluster *cluster, ECLCluster::EHypothesisBit hypo)
Returns 4x6 Jacobi matrix (px, py, pz, E)
Definition: ClusterUtils.cc:54
const ROOT::Math::PxPyPzEVector GetCluster4MomentumFromCluster(const ECLCluster *cluster, ECLCluster::EHypothesisBit hypo)
Returns cluster four momentum vector.
Definition: ClusterUtils.cc:19
const TMatrixDSym GetCovarianceMatrix4x4FromCluster(const ECLCluster *cluster, const TMatrixD &jacobiMatrix)
Returns 4x4 covariance matrix (px, py, pz, E)
DBObjPtr< BeamSpot > m_beamSpotDB
Beam spot database object.
Definition: ClusterUtils.h:125
const TMatrixDSym GetCovarianceMatrix3x3FromCluster(const ECLCluster *cluster)
Returns 3x3 covariance matrix (E, theta, phi)
const TMatrixDSym GetIPPositionCovarianceMatrix()
Returns default IP position covariance matrix from beam parameters.
ClusterUtils()
Constructor.
const ROOT::Math::XYZVector GetIPPosition()
Returns default IP position from beam parameters.
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
ECL cluster data.
Definition: ECLCluster.h:27
EHypothesisBit
The hypothesis bits for this ECLCluster (Connected region (CR) is split using this hypothesis.
Definition: ECLCluster.h:31
Optional DBObjPtr: This class behaves the same as the DBObjPtr except that it will not raise errors w...
Definition: DBObjPtr.h:48
Abstract base class for different kinds of events.
Definition: ClusterUtils.h:24