Line data Source code
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 0 : 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 0 : 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 0 : virtual Bool_t IsEventByEvent() const { return kFALSE; }
45 :
46 : /// Set event-by-event mode
47 0 : 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 0 : 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 0 : virtual void SetEventRange(Int_t /* firstevent */, Int_t /* lastevent */) {}
75 :
76 18 : ClassDef(AliMUONVTrackerDataMaker,1) // Producer of AliMUONVTrackerData
77 : };
78 :
79 : #endif
|