BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/TrkReco/include/TrkReco/TPerfectFinder.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// $Id: TPerfectFinder.h,v 1.5 2010/03/31 09:58:59 liucy Exp $
3//-----------------------------------------------------------------------------
4// Filename : TPerfectFinder.h
5// Section : Tracking
6// Owner : Yoshi Iwasaki
7// Email : yoshihito.iwasaki@kek.jp
8//-----------------------------------------------------------------------------
9// Description : A class to find tracks using MC info.
10// See http://bsunsrv1.kek.jp/~yiwasaki/tracking/
11//-----------------------------------------------------------------------------
12
13#ifndef TPERFECTFINDER_FLAG_
14#define TPERFECTFINDER_FLAG_
15#ifdef TRKRECO_DEBUG_DETAIL
16# ifndef TRKRECO_DEBUG
17# define TRKRECO_DEBUG
18# endif
19#endif
20// #define HEP_SHORT_NAMES
21#include "TrkReco/TBuilder.h"
22#include "TrkReco/TFinderBase.h"
23#include "TrkReco/THelixFitter.h"
24#include "TrkReco/TMLink.h"
25template <class T> class AList;
26
27/// A class to find tracks using MC info.
28class TPerfectFinder : public TFinderBase {
29
30public:
31 /// Constructor.
32 TPerfectFinder( int perfectFitting, float maxSigma, float maxSigmaStereo,
33 unsigned fittingFlag );
34
35 /// Destructor
36 virtual ~TPerfectFinder();
37
38public: // Selectors
39 /// returns name.
40 std::string name( void ) const;
41
42 /// returns version.
43 std::string version( void ) const;
44
45 /// dumps debug information.
46 void dump( const std::string& message = std::string( "" ),
47 const std::string& prefix = std::string( "" ) ) const;
48
49 /// clear internal information.
50 void clear( void );
51
52 /// gets perfect momentum from MC info.
53 bool perfectFitting( bool );
54
55public: // Modifiers
56 /// finds tracks.
57 int doit( const AList<TMDCWireHit>& axialHits, const AList<TMDCWireHit>& stereoHits,
58 AList<TTrack>& tracks, AList<TTrack>& tracks2D );
59
60private:
61 float charge( int pType ) const;
62
63private:
64 bool _perfectFitting;
65 AList<TMLink> _links;
66 float _maxSigma;
67 float _maxSigmaStereo;
68 unsigned _fittingFlag;
69 TBuilder _builder;
70 THelixFitter _fitter;
71};
72
73//-----------------------------------------------------------------------------
74
75#ifdef TPERFECTFINDER_NO_INLINE
76# define inline
77#else
78# undef inline
79# define TPERFECTFINDER_INLINE_DEFINE_HERE
80#endif
81
82#ifdef TPERFECTFINDER_INLINE_DEFINE_HERE
83
84inline std::string TPerfectFinder::name( void ) const { return "Perfect Finder"; }
85
86inline bool TPerfectFinder::perfectFitting( bool a ) { return _perfectFitting = a; }
87
88#endif
89
90#undef inline
91
92#endif /* TPERFECTFINDER_FLAG_ */
A virtual class for a track finder in tracking.
A class to fit a TTrackBase object to a helix.
std::string version(void) const
returns version.
virtual ~TPerfectFinder()
Destructor.
void clear(void)
clear internal information.
TPerfectFinder(int perfectFitting, float maxSigma, float maxSigmaStereo, unsigned fittingFlag)
Constructor.
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
int doit(const AList< TMDCWireHit > &axialHits, const AList< TMDCWireHit > &stereoHits, AList< TTrack > &tracks, AList< TTrack > &tracks2D)
finds tracks.
std::string name(void) const
returns name.
bool perfectFitting(bool)
gets perfect momentum from MC info.