]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/MUON/src/AliRoot/MicrodHLT.hpp
This commit was generated by cvs2svn to compensate for changes in r11742,
[u/mrichter/AliRoot.git] / HLT / MUON / src / AliRoot / MicrodHLT.hpp
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // Author: Artur Szostak
4 // Email:  artur@alice.phy.uct.ac.za | artursz@iafrica.com
5 //
6 ////////////////////////////////////////////////////////////////////////////////
7
8 #ifndef dHLT_ALIROOT_MICRODHLT_HPP
9 #define dHLT_ALIROOT_MICRODHLT_HPP
10
11 #include "TROOT.h"
12 #include "TObject.h"
13 #include "TString.h"
14 #include "AliRoot/TriggerSource.hpp"
15 #include "AliRoot/ClusterSource.hpp"
16 #include "AliRoot/TrackSink.hpp"
17 #include "AliRoot/TrackerCallback.hpp"
18
19 namespace AliMUONHLT
20 {
21
22
23 class ClusterFinder;
24 class ClusterFinderInterface;
25 class Tracker;
26 class TrackerInterface;
27
28
29 /* Routines for getting dHLT version information.
30 */
31 TString Version();
32 UInt_t MajorVersion();
33 UInt_t MinorVersion();
34 UInt_t BuildNumber();
35
36
37 class MicrodHLT : public TObject
38 {
39 public:
40
41         MicrodHLT();
42         virtual ~MicrodHLT();
43
44         /* Get/Set methods for the trigger data source.
45            Note: The source object must be cleaned up by the caller.
46          */
47         void SetTriggerSource(const TriggerSource* source);
48         const TriggerSource* GetTriggerSource() const { return fTriggerSource; };
49         
50         /* Get/Set methods for the cluster data source.
51            Note: The source object must be cleaned up by the caller.
52          */
53         void SetClusterSource(const ClusterSource* source);
54         const ClusterSource* GetClusterSource() const { return fClusterSource; };
55         
56         /* Get/Set methods for the track data sink (output target).
57            Note: The output object must be cleaned up by the caller.
58          */
59         void SetTrackSink(TrackSink* sink)    { fTrackSink = sink; };
60         const TrackSink* GetTrackSink() const { return fTrackSink; };
61         
62         /* Get/Set methods for the cluster finder interface.
63            Note: The cluster finder object must be cleaned up by the caller.
64            This field is optional. Use it if a custom cluster finder should be used.
65          */
66         void SetClusterFinder(ClusterFinderInterface* clusterfinder) { fClusterFinder = clusterfinder; };
67         const ClusterFinderInterface* GetClusterFinder() const { return fClusterFinder; };
68         void SetClusterFinder(ClusterFinder* clusterfinder);
69         
70         /* Get/Set methods for the tracker interface.
71            Note: The tracker object must be cleaned up by the caller.
72            This field is optional. Use it if a custom tracker should be used.
73          */
74         void SetTracker(TrackerInterface* tracker) { fTracker = tracker; };
75         const TrackerInterface* GetTracker() const { return fTracker; };
76         void SetTracker(Tracker* tracker);
77         
78         /* The entry point routine for the dHLT algorithm in the micro format.
79            To run the dHLT set the input and output objects with the set methods
80            provided and then call this Run method.
81          */
82         void Run();
83         
84         // Get and set methods for the dHLT debug level.
85         static void DebugLevel(Int_t value);
86         static Int_t DebugLevel();
87         
88 private:
89
90         TriggerSource* fTriggerSource;           //! Trigger record input source.
91         ClusterSource* fClusterSource;           //! Cluster point input source.
92         TrackSink* fTrackSink;                   //! Track output sink.
93         ClusterFinderInterface* fClusterFinder;  //! Interface to a custom cluster finder.
94         TrackerInterface* fTracker;              //! Interface to a custom tracker.
95
96         ClassDef(MicrodHLT, 0);  // A very minimal implementation of the dHLT algorithm.
97 };
98
99
100 } // AliMUONHLT
101
102 #endif // dHLT_ALIROOT_MICRODHLT_HPP