1 #ifndef ALIMUONVTRACKERDATAMAKER_H
2 #define ALIMUONVTRACKERDATAMAKER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONVTrackerDataMaker
11 /// \brief Producer of some AliMUONVTrackerData
13 // Author Laurent Aphecetche, Subatech
19 class AliMUONVTrackerData;
22 class AliMUONVTrackerDataMaker : public TObject
25 AliMUONVTrackerDataMaker();
26 virtual ~AliMUONVTrackerDataMaker();
28 /// Whether we are valid or not
29 virtual Bool_t IsValid() const = 0;
32 virtual AliMUONVTrackerData* Data() const = 0;
34 /// Whether we can be run
35 virtual Bool_t IsRunnable() const = 0;
37 /// Whether we are running (must be false if IsRunnable is false)
38 virtual Bool_t IsRunning() const = 0;
40 /// Whether we're only handling event-by-event data (i.e. no accumulation)
41 virtual Bool_t IsEventByEvent() const { return kFALSE; }
43 /// Set event-by-event mode
44 virtual void SetEventByEvent(Bool_t /*flag*/) { }
46 /// Set the running state (no effect if not runnable)
47 virtual void SetRunning(Bool_t flag) = 0;
49 /// Process current event
50 virtual Bool_t ProcessEvent() = 0;
52 /// Advance to next event and process it (no effect if not runnable)
53 virtual Bool_t NextEvent() { return ProcessEvent(); }
55 /// Rewind events (no effect if not runnable)
56 virtual void Rewind() = 0;
58 /// Set our source URI
59 virtual void SetSource(const char* source) = 0;
61 /// Get our source URI
62 virtual TString Source() const = 0;
64 /// Get the number of events we have seen (but not necessarily used...)
65 virtual Int_t NumberOfEvents() const = 0;
68 virtual Long64_t Merge(TCollection* list) = 0;
70 ClassDef(AliMUONVTrackerDataMaker,1) // Producer of AliMUONVTrackerData