Belle II Software  release-05-01-25
BKLMTrackFitter.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Yinghui GUAN *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* KLM headers. */
14 #include <klm/bklm/geometry/GeometryPar.h>
15 #include <klm/dataobjects/bklm/BKLMHit2d.h>
16 
17 /* CLHEP headers. */
18 #include <CLHEP/Matrix/SymMatrix.h>
19 #include <CLHEP/Matrix/Vector.h>
20 
21 /* C++ headers. */
22 #include <list>
23 
24 namespace Belle2 {
30  class BKLMTrackFitter {
32 
33  public:
34 
37 
40 
42  double fit(std::list<BKLMHit2d*>& listTrackPoint);
43 
45  double distanceToHit(BKLMHit2d* hit,
46  double& error,
47  double& sigma);
48 
50  double globalDistanceToHit(BKLMHit2d* hit,
51  double& error,
52  double& sigma);
53 
55  double fit1dSectorTrack(std::list< BKLMHit2d* > hitList,
56  CLHEP::HepVector& eta,
57  CLHEP::HepSymMatrix& error,
58  int depDir, int indDir);
59 
61  double fit1dTrack(std::list< BKLMHit2d* > hitList,
62  CLHEP::HepVector& eta,
63  CLHEP::HepSymMatrix& error,
64  int depDir, int indDir);
65 
67  CLHEP::HepVector getTrackParam()
68  {
69  return m_GlobalPar;
70  }
71 
73  CLHEP::HepSymMatrix getTrackParamErr()
74  {
75  return m_GlobalErr;
76  }
77 
79  CLHEP::HepVector getTrackParamSector()
80  {
81  return m_SectorPar;
82  }
83 
85  CLHEP::HepSymMatrix getTrackParamSectorErr()
86  {
87  return m_SectorErr;
88  }
89 
91  bool isValid()
92  {
93  return m_Valid;
94  }
95 
97  bool isGood()
98  {
99  return m_Good;
100  }
101 
103  float getChi2()
104  {
105  return m_Chi2;
106  }
107 
109  int getNumHit()
110  {
111  return m_NumHit;
112  }
113 
115  void inValidate()
116  {
117  m_Valid = false;
118  }
119 
121  void setGlobalFit(bool localOrGlobal)
122  {
123  m_globalFit = localOrGlobal;
124  }
125 
126  private:
127 
129  bool m_Valid;
130 
132  bool m_Good;
133 
135  float m_Chi2;
136 
138  int m_NumHit;
139 
141  bool m_globalFit;
142 
144  CLHEP::HepVector m_SectorPar;
145 
147  CLHEP::HepSymMatrix m_SectorErr;
148 
150  CLHEP::HepVector m_GlobalPar;
151 
153  CLHEP::HepSymMatrix m_GlobalErr;
154 
157 
158  };
160 } // end of namespace Belle2
Belle2::BKLMTrackFitter::distanceToHit
double distanceToHit(BKLMHit2d *hit, double &error, double &sigma)
Distance from track to a hit in the plane of the module.
Definition: BKLMTrackFitter.cc:158
Belle2::BKLMTrackFitter::m_Chi2
float m_Chi2
Chi square of fit.
Definition: BKLMTrackFitter.h:143
Belle2::BKLMTrackFitter::setGlobalFit
void setGlobalFit(bool localOrGlobal)
set the fitting mode, local system or global system
Definition: BKLMTrackFitter.h:129
Belle2::BKLMTrackFitter::getTrackParamSectorErr
CLHEP::HepSymMatrix getTrackParamSectorErr()
Get invariance matrix of track parameters in the sector local system, where the first layer of the se...
Definition: BKLMTrackFitter.h:93
Belle2::BKLMTrackFitter::inValidate
void inValidate()
Invalidate track.
Definition: BKLMTrackFitter.h:123
Belle2::BKLMTrackFitter::m_SectorErr
CLHEP::HepSymMatrix m_SectorErr
track params errors in the sector local system
Definition: BKLMTrackFitter.h:155
Belle2::BKLMTrackFitter::isValid
bool isValid()
Is fit valid.
Definition: BKLMTrackFitter.h:99
Belle2::BKLMTrackFitter::m_SectorPar
CLHEP::HepVector m_SectorPar
track params in the sector local system
Definition: BKLMTrackFitter.h:152
Belle2::bklm::GeometryPar
Provides BKLM geometry parameters for simulation, reconstruction etc (from Gearbox or DataBase)
Definition: GeometryPar.h:48
Belle2::BKLMTrackFitter::getTrackParamSector
CLHEP::HepVector getTrackParamSector()
Get track parameters in the sector locan system, y = p0 + p1 * x, z = p2 + p3 *x, where the first lay...
Definition: BKLMTrackFitter.h:87
Belle2::BKLMTrackFitter::getChi2
float getChi2()
Chi square of the fit.
Definition: BKLMTrackFitter.h:111
Belle2::BKLMTrackFitter::m_GlobalPar
CLHEP::HepVector m_GlobalPar
track params in global system
Definition: BKLMTrackFitter.h:158
Belle2::BKLMTrackFitter::m_Good
bool m_Good
Is fit good.
Definition: BKLMTrackFitter.h:140
Belle2::BKLMTrackFitter::fit1dTrack
double fit1dTrack(std::list< BKLMHit2d * > hitList, CLHEP::HepVector &eta, CLHEP::HepSymMatrix &error, int depDir, int indDir)
do fit in the global system
Definition: BKLMTrackFitter.cc:489
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BKLMTrackFitter::getTrackParam
CLHEP::HepVector getTrackParam()
Get track parameters in the global system. y = p0 + p1 * x; y = p2 + p3 * z, if in local sector fit m...
Definition: BKLMTrackFitter.h:75
Belle2::BKLMTrackFitter::m_NumHit
int m_NumHit
the number of hits on this track
Definition: BKLMTrackFitter.h:146
Belle2::BKLMTrackFitter::getTrackParamErr
CLHEP::HepSymMatrix getTrackParamErr()
Get invariance matrix of track parameters in the global system.
Definition: BKLMTrackFitter.h:81
Belle2::BKLMTrackFitter::m_globalFit
bool m_globalFit
do fit in the local system or global system false: local sys; true: global sys.
Definition: BKLMTrackFitter.h:149
Belle2::BKLMTrackFitter::m_GeoPar
bklm::GeometryPar * m_GeoPar
pointer to GeometryPar singleton
Definition: BKLMTrackFitter.h:164
Belle2::BKLMTrackFitter::getNumHit
int getNumHit()
number of the hits on this track
Definition: BKLMTrackFitter.h:117
Belle2::BKLMTrackFitter::~BKLMTrackFitter
~BKLMTrackFitter()
Destructor.
Definition: BKLMTrackFitter.cc:58
Belle2::BKLMTrackFitter::m_GlobalErr
CLHEP::HepSymMatrix m_GlobalErr
track params errors in global system
Definition: BKLMTrackFitter.h:161
Belle2::BKLMTrackFitter::BKLMTrackFitter
BKLMTrackFitter()
Default constructor.
Definition: BKLMTrackFitter.cc:43
Belle2::BKLMTrackFitter::globalDistanceToHit
double globalDistanceToHit(BKLMHit2d *hit, double &error, double &sigma)
Distance from track to a hit in the global system.
Definition: BKLMTrackFitter.cc:236
Belle2::BKLMTrackFitter::fit1dSectorTrack
double fit1dSectorTrack(std::list< BKLMHit2d * > hitList, CLHEP::HepVector &eta, CLHEP::HepSymMatrix &error, int depDir, int indDir)
do fit in the y-x plane or z-x plane
Definition: BKLMTrackFitter.cc:334
Belle2::BKLMTrackFitter::isGood
bool isGood()
Is fit good.
Definition: BKLMTrackFitter.h:105
Belle2::BKLMTrackFitter::fit
double fit(std::list< BKLMHit2d * > &listTrackPoint)
do fit and returns chi square of the fit.
Definition: BKLMTrackFitter.cc:63
Belle2::BKLMTrackFitter::m_Valid
bool m_Valid
Is fit valid.
Definition: BKLMTrackFitter.h:137
Belle2::BKLMHit2d
Store one BKLM strip hit as a ROOT object.
Definition: BKLMHit2d.h:42