Belle II Software  release-06-02-00
Btube.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 <framework/datastore/RelationsObject.h>
12 
13 #include <TVector3.h>
14 #include <TMatrixFSym.h>
15 #include <framework/datastore/StoreArray.h>
16 #include <framework/logging/Logger.h>
17 #include <iostream>
18 #include <vector>
19 #include <set>
20 #include <Eigen/Core>
21 
22 namespace Belle2 {
28  class Btube : public RelationsObject {
29  public:
37  {
38  m_tubecenter(0, 0) = 0; m_tubecenter(1, 0) = 0; m_tubecenter(2, 0) = 0;
39  m_tubedirection(0, 0) = 0; m_tubedirection(1, 0) = 0; m_tubedirection(2, 0) = 0;
42  }
43 
47  void setTubeCenter(const Eigen::Matrix<double, 3, 1>& tubecenter) {m_tubecenter = tubecenter;}
51  void setTubeDirection(const Eigen::Matrix<double, 3, 1>& tubedirection) {m_tubedirection = tubedirection;}
55  void setTubeMatrix(const TMatrixFSym& tubematrix) {m_tubematrix = tubematrix;}
56 
60  void setTubeCenterErrorMatrix(const TMatrixFSym& tubecentererrormatrix) {m_tubecentererrormatrix = tubecentererrormatrix;}
61 
65  Eigen::Matrix<double, 3, 1> getTubeCenter() const
66  {
67  return m_tubecenter;
68  }
72  Eigen::Matrix<double, 3, 1> getTubeDirection() const
73  {
74  return m_tubedirection;
75  }
79  TMatrixFSym getTubeMatrix() const
80  {
81  return m_tubematrix;
82  }
86  TMatrixFSym getTubeCenterErrorMatrix() const
87  {
89  }
90 
92  ~Btube() { }
93 
94  private:
95  Eigen::Matrix<double, 3, 1> m_tubecenter;
96  Eigen::Matrix<double, 3, 1> m_tubedirection;
97  TMatrixFSym m_tubematrix;
100  void resetTubeMatrix();
102  // Note: values >=1 are versions, and should be incremented when anything about the class members is changed.
103  // 0 is used to disable I/O capabilities, so always make sure this starts at 1.
104  // comments after the Classdef macro are also used by ROOT to provide online documentation of a class, e.g. with the auto-generated Print() function
106  };
108 }
109 
For each MCParticle with hits in the CDC, this class stores some summarising information on those hit...
Definition: Btube.h:28
Btube()
default constructor.
Definition: Btube.h:36
TMatrixFSym m_tubematrix
Btube (3x3) matrix.
Definition: Btube.h:97
TMatrixFSym getTubeMatrix() const
Returns Btube matrix.
Definition: Btube.h:79
TMatrixFSym getTubeCenterErrorMatrix() const
Returns Btube Center Error Matrix.
Definition: Btube.h:86
void resetTubeMatrix()
resets the tube matrix
Definition: Btube.cc:12
void setTubeCenterErrorMatrix(const TMatrixFSym &tubecentererrormatrix)
Sets Btube Center Error Matrix.
Definition: Btube.h:60
TMatrixFSym m_tubecentererrormatrix
Btube Center Error (3x3) matrix.
Definition: Btube.h:98
void setTubeCenter(const Eigen::Matrix< double, 3, 1 > &tubecenter)
Sets Btube Center.
Definition: Btube.h:47
Eigen::Matrix< double, 3, 1 > m_tubedirection
Btube direction.
Definition: Btube.h:96
Eigen::Matrix< double, 3, 1 > getTubeCenter() const
Returns Btube center.
Definition: Btube.h:65
ClassDef(Btube, 1)
For each MCParticle with hits in the CDC, this class stores some summarising information on those hit...
void setTubeDirection(const Eigen::Matrix< double, 3, 1 > &tubedirection)
Sets Btube Direction.
Definition: Btube.h:51
Eigen::Matrix< double, 3, 1 > getTubeDirection() const
Returns Btube direction.
Definition: Btube.h:72
~Btube()
destructor, empty because we don't allocate memory anywhere.
Definition: Btube.h:92
Eigen::Matrix< double, 3, 1 > m_tubecenter
Btube center.
Definition: Btube.h:95
void resetTubeCenterErrorMatrix()
resets the tube center error matrix
Definition: Btube.cc:18
void setTubeMatrix(const TMatrixFSym &tubematrix)
Sets Btube Matrix.
Definition: Btube.h:55
Defines interface for accessing relations of objects in StoreArray.
Abstract base class for different kinds of events.