BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/TrkReco/include/TrkReco/TCosmicFitter.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// $Id: TCosmicFitter.h,v 1.8 2010/03/31 09:58:59 liucy Exp $
3//-----------------------------------------------------------------------------
4// Filename : TCosmicFitter.h
5// Section : Tracking
6// Owner : Jun-ichi Suzuki
7// Email : jsuzuki@bmail.kek.jp
8//-----------------------------------------------------------------------------
9// Description : A class to fit a TTrackBase object to a helix.
10// See http://bsunsrv1.kek.jp/~yiwasaki/tracking/
11//-----------------------------------------------------------------------------
12
13#ifndef TCOSMICFITTER_FLAG_
14#define TCOSMICFITTER_FLAG_
15
16#ifdef TRKRECO_DEBUG_DETAIL
17# ifndef TRKRECO_DEBUG
18# define TRKRECO_DEBUG
19# endif
20#endif
21#include "TrkReco/TMFitter.h"
22// #define HEP_SHORT_NAMES
23#include "CLHEP/Matrix/Vector.h"
24// #include "helix/Helix.h"
25// #include "TrkReco/Helix.h"
26#include "TrackUtil/Helix.h"
27
28#include "GaudiKernel/IInterface.h"
29#include "GaudiKernel/Kernel.h"
30#include "GaudiKernel/Service.h"
31#include "MagneticFieldSvc/IBesMagFieldSvc.h"
32// #include "MagneticField/MagneticFieldSvc.h"
33
34#include "CLHEP/Matrix/SymMatrix.h"
35#include "CLHEP/Matrix/Vector.h"
36#include "CLHEP/Vector/LorentzVector.h"
37#include "CLHEP/Vector/ThreeVector.h"
38
39using CLHEP::HepVector;
40
41class TMLink;
42
43/// A class to fit a TTrackBase object to a helix.
44class TCosmicFitter : public TMFitter {
45
46public:
47 /// Constructor.
48 TCosmicFitter( const std::string& name );
49
50 /// Destructor
51 virtual ~TCosmicFitter();
52
53public: // Selectors
54 /// dumps debug information.
55 void dump( const std::string& message = std::string( "" ),
56 const std::string& prefix = std::string( "" ) ) const;
57
58public: // Modifiers
59 int fit( TTrackBase& ) const;
60 int fit( TTrackBase&, float t0Offset ) const;
61
62 int fitWithCathode( TTrackBase&, float t0Offset = 0., float windowSize = 0.6,
63 int SysCorr = 0 ); // added by matsu ( 1999/07/05 )
64
65private:
66 /// calculates dXda. 'link' and 'dPhi' are inputs. Others are outputs.
67 int dxda( const TMLink& link, const Helix& helix, double dPhi, HepVector& dxda,
68 HepVector& dyda, HepVector& dzda, int doSagCorrection ) const;
69
70private:
71 IBesMagFieldSvc* getPmgnIMF() const;
72 mutable IBesMagFieldSvc* m_pmgnIMF;
73};
74
75//-----------------------------------------------------------------------------
76
77#ifdef TRKRECO_NO_INLINE
78# define inline
79#else
80# undef inline
81# define TCOSMICFITTER_INLINE_DEFINE_HERE
82#endif
83
84#ifdef TCOSMICFITTER_INLINE_DEFINE_HERE
85
86#endif
87
88#undef inline
89
90#endif /* TCOSMICFITTER_FLAG_ */
A class to fit a TTrackBase object to a helix.
int fitWithCathode(TTrackBase &, float t0Offset=0., float windowSize=0.6, int SysCorr=0)
int fit(TTrackBase &, float t0Offset) const
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
TCosmicFitter(const std::string &name)
Constructor.
int fit(TTrackBase &) const
virtual ~TCosmicFitter()
Destructor.
const std::string & name(void) const
returns name.
A virtual class for a track class in tracking.