StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StiToolkit.h
Go to the documentation of this file.
1 
16 #ifndef StiToolkit_H
17 #define StiToolkit_H 1
18 
19 class StEvent;
20 class StiDetector;
21 class StiTrack;
22 class StiKalmanTrack;
23 class StiKalmanTrackNode;
24 class StiNodeExt;
25 class StiNodeInf;
26 class StiHit;
27 class StiDetectorBuilder;
29 template<class Event> class StiDetectorGroup;
30 //template<class EVENT> class StiDetectorGroups;
31 class StiDetectorGroups;
32 template<class Factorized> class Factory;
33 template<class Filtered> class EditableFilter;
34 template<class Filtered> class Filter;
35 template<class T> class StiCompositeTreeNode;
36 template<class X,class y> class StiHitLoader;
37 template<class X,class y> class StiMasterHitLoader;
38 
39 
40 // common object containers
41 
43 class StiHitContainer;
44 class StiTrackContainer;
45 // service and convenience class objects.
46 class StiTrackFinder;
47 class StiTrackFitter;
48 class StiVertexFinder;
49 class EditableParameter;
50 
55 class StiToolkit
56 {
57 public:
58  StiToolkit();
59  virtual ~StiToolkit(){ /* nada */ }
60  virtual Factory<StiHit> * getHitFactory()=0;
61  virtual Factory<StiKalmanTrack> * getTrackFactory()=0;
62  virtual Factory<StiKalmanTrackNode> * getTrackNodeFactory()=0;
63  virtual Factory<StiNodeExt> * getTrackNodeExtFactory()=0;
64  virtual Factory<StiNodeInf> * getTrackNodeInfFactory()=0;
65  virtual Factory<StiDetector> * getDetectorFactory()=0;
66  virtual Factory<StiCompositeTreeNode<StiDetector> > * getDetectorNodeFactory()=0;
67  virtual Factory<EditableParameter> * getParameterFactory()=0;
68  virtual Factory< Filter<StiTrack> > * getTrackFilterFactory()=0;
69 
70  // common object containers
71  virtual StiMasterDetectorBuilder * getDetectorBuilder()=0;
72  virtual StiDetectorContainer * getDetectorContainer()=0;
73  virtual StiDetectorGroups * getDetectorGroups()=0;
74  virtual StiHitContainer * getHitContainer()=0;
75  virtual StiTrackContainer * getTrackContainer()=0;
76 
77  // service and convenience class objects.
78  virtual StiTrackFinder * getTrackSeedFinder()=0;
79  virtual StiTrackFinder * getTrackSeedFinderCA()=0;
80  virtual StiTrackFinder * getTrackSeedFinderKNN()=0;
81  virtual StiTrackFinder * getTrackFinder()=0;
82  virtual StiTrackFitter * getTrackFitter()=0;
83  virtual StiVertexFinder * getVertexFinder()=0;
84  virtual StiHitLoader<StEvent,StiDetectorBuilder> * getHitLoader()=0;
85 
86  virtual void add(StiDetectorGroup<StEvent>* detectorGroup)=0;
87 
88  virtual void setEvaluatorEnabled(bool)=0;
89  virtual bool isEvaluatorEnabled() const=0;
90 
91  virtual EditableFilter<StiHit> * getLoaderHitFilter()=0;
92  virtual EditableFilter<StiTrack> * getLoaderTrackFilter()=0;
93  virtual EditableFilter<StiTrack> * getFinderTrackFilter()=0;
94  virtual void setLoaderHitFilter(EditableFilter<StiHit> *)=0;
95  virtual void setLoaderTrackFilter(EditableFilter<StiTrack> *)=0;
96  virtual void setFinderTrackFilter(EditableFilter<StiTrack> *)=0;
97 
98  virtual int getTruth(const StiHit *hit)=0;
99 
100  static void setToolkit(StiToolkit*toolkit);
101  static StiToolkit *instance();
102  static StiToolkit *Inst(){return instance();}
103  static void kill();
104 
105  protected:
106 
107  static StiToolkit * _instance;
108 };
109 
110 #endif
111 
Definition of Kalman Track.
Abstract definition of a Track.
Definition: StiTrack.h:59
Definition: StiHit.h:51
Definition: Filter.h:17
Definition of toolkit.
Definition: StiToolkit.h:55
An abstract class defining the interface to the track finder.