1 #ifndef ALIMUONTRACKERRAWDATAMAKER_H
2 #define ALIMUONTRACKERRAWDATAMAKER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONTrackerRawDataMaker
11 /// \brief Creator of raw AliMUONVTrackerData from AliRawReader
13 // Author Laurent Aphecetche, Subatech
15 #ifndef ALIMUONVTRACKERDATAMAKER_H
16 # include "AliMUONVTrackerDataMaker.h"
24 class AliMUONVTrackerData;
26 class AliMUONTrackerRawDataMaker : public AliMUONVTrackerDataMaker
29 AliMUONTrackerRawDataMaker(TRootIOCtor* ioCtor);
31 AliMUONTrackerRawDataMaker(Int_t runNumber,
33 Bool_t histogram=kFALSE,
34 Bool_t useHPdecoder=kFALSE);
36 AliMUONTrackerRawDataMaker(AliRawReader* reader = 0x0,
37 Bool_t histogram=kFALSE,
38 Bool_t useHPdecoder=kFALSE);
40 virtual ~AliMUONTrackerRawDataMaker();
42 Bool_t Add(const AliMUONTrackerRawDataMaker& other);
44 /// Whether we have a valid raw reader
45 Bool_t IsValid() const { return fRawReader != 0x0; }
48 AliMUONVTrackerData* Data() const { return fAccumulatedData; }
50 /// Whether we're only handling event-by-event data (i.e. no accumulation)
51 virtual Bool_t IsEventByEvent() const { return fIsEventByEvent; }
53 /// Set event-by-event mode
54 virtual void SetEventByEvent(Bool_t flag) { fIsEventByEvent = flag; }
56 /// We can be run if we have a reader
57 virtual Bool_t IsRunnable() const { return IsValid(); }
59 /// Whether we are running or not
60 virtual Bool_t IsRunning() const { return fIsRunning; }
62 /// Set the running status
63 virtual void SetRunning(Bool_t flag) { fIsRunning = flag; }
65 Bool_t ProcessEvent();
69 void Print(Option_t* opt="") const;
73 /// Get our source URI
74 virtual TString Source() const { return fSource.Data(); }
76 /// Set our source URI
77 void SetSource(const char* source) { fSource = source; }
79 /// Number of events seen
80 Int_t NumberOfEvents() const { return fNumberOfEvents; }
82 Long64_t Merge(TCollection* li);
84 void SetRawReader(AliRawReader* rawReader);
88 AliMUONTrackerRawDataMaker(const AliMUONTrackerRawDataMaker& rhs);
90 AliMUONTrackerRawDataMaker& operator=(const AliMUONTrackerRawDataMaker& rhs);
92 void Ctor(Bool_t histogram);
95 AliRawReader* fRawReader; //!< reader of the data (owner or not)
96 Bool_t fIsOwnerOfRawReader; //!< whether we must delete rawReader or not
97 AliMUONVTrackerData* fAccumulatedData; ///< data (owner)
98 AliMUONVStore* fOneEventData; ///< data for one event (owner)
99 TString fSource; ///< where the data comes from
100 Bool_t fIsRunning; ///< whether we are running or are paused
101 Int_t fNumberOfEvents; ///< number of events seen
102 Int_t fRunNumber; ///< run number of the data
103 Bool_t fIsEventByEvent; ///< we only keep one event's data (no accumulation)
104 Bool_t fUseHPDecoder; ///< whether to use high performance decoder or not
105 static Int_t fgkCounter; ///< to count the number of instances
107 ClassDef(AliMUONTrackerRawDataMaker,4) // Producer of AliMUONVTrackerData from raw data