- Adding check and flagging for HG present
[u/mrichter/AliRoot.git] / MUON / AliMUONVTrackerDataMaker.h
1 #ifndef ALIMUONVTRACKERDATAMAKER_H
2 #define ALIMUONVTRACKERDATAMAKER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup rec
10 /// \class AliMUONVTrackerDataMaker
11 /// \brief Producer of some AliMUONVTrackerData
12 /// 
13 //  Author Laurent Aphecetche, Subatech
14
15 #ifndef ROOT_TObject
16 #  include "TObject.h"
17 #endif
18
19 class AliMUONVTrackerData;
20 class TCollection;
21
22 class AliMUONVTrackerDataMaker : public TObject
23 {
24 public:
25   AliMUONVTrackerDataMaker();
26   virtual ~AliMUONVTrackerDataMaker();
27   
28   /// Whether we are valid or not
29   virtual Bool_t IsValid() const = 0;
30   
31   /// Our data
32   virtual AliMUONVTrackerData* Data() const = 0;
33
34   /// Whether or not we're the owner of our AliMUONVTrackerData
35   virtual void SetOwnerOfData(Bool_t /*flag*/) { }
36   
37   /// Whether we can be run
38   virtual Bool_t IsRunnable() const = 0;
39
40   /// Whether we are running (must be false if IsRunnable is false)
41   virtual Bool_t IsRunning() const = 0;
42   
43   /// Whether we're only handling event-by-event data (i.e. no accumulation)
44   virtual Bool_t IsEventByEvent() const { return kFALSE; }
45   
46   /// Set event-by-event mode
47   virtual void SetEventByEvent(Bool_t /*flag*/) { }
48   
49   /// Set the running state (no effect if not runnable)
50   virtual void SetRunning(Bool_t flag) = 0;
51   
52         /// Process current event
53         virtual Bool_t ProcessEvent() = 0;
54         
55   /// Advance to next event and process it (no effect if not runnable)
56   virtual Bool_t NextEvent() { return ProcessEvent(); }
57   
58   /// Rewind events (no effect if not runnable)
59   virtual void Rewind() = 0;
60   
61   /// Set our source URI
62   virtual void SetSource(const char* source) = 0;
63   
64   /// Get our source URI
65   virtual TString Source() const = 0;
66
67   /// Get the number of events we have seen (but not necessarily used...)
68   virtual Int_t NumberOfEvents() const = 0;
69   
70   /// Merge
71   virtual Long64_t Merge(TCollection* list) = 0;
72   
73   /// Set event range (if not event by event)
74   virtual void SetEventRange(Int_t /* firstevent */, Int_t /* lastevent */) {}
75   
76   ClassDef(AliMUONVTrackerDataMaker,1) // Producer of AliMUONVTrackerData
77 };
78
79 #endif