remoe duplicate QA initialisation and do ESD QA for same detectors as RecPoint QA
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackerRawDataMaker.h
1 #ifndef ALIMUONTRACKERRAWDATAMAKER_H
2 #define ALIMUONTRACKERRAWDATAMAKER_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 graphics
10 /// \class AliMUONTrackerRawDataMaker
11 /// \brief Creator of raw AliMUONVTrackerData from AliRawReader
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef ALIMUONVTRACKERDATAMAKER_H
16 #  include "AliMUONVTrackerDataMaker.h"
17 #endif
18 #ifndef ROOT_TString
19 #  include "TString.h"
20 #endif
21
22 class AliRawReader;
23 class AliMUONVStore;
24 class AliMUONVTrackerData;
25
26 class AliMUONTrackerRawDataMaker : public AliMUONVTrackerDataMaker
27 {
28 public:
29   AliMUONTrackerRawDataMaker(AliRawReader* reader = 0x0,
30                              Bool_t histogram=kFALSE,
31                              Bool_t useHPdecoder=kFALSE);
32   virtual ~AliMUONTrackerRawDataMaker();
33   
34   /// Whether we have a valid raw reader
35   Bool_t IsValid() const { return fRawReader != 0x0; }
36   
37   /// Our data
38   AliMUONVTrackerData* Data() const { return fAccumulatedData; }
39   
40   /// Whether we're only handling event-by-event data (i.e. no accumulation)
41   virtual Bool_t IsEventByEvent() const { return fIsEventByEvent; }
42   
43   /// Set event-by-event mode
44   virtual void SetEventByEvent(Bool_t flag) { fIsEventByEvent = flag; }
45   
46   /// We can be run if we have a reader
47   virtual Bool_t IsRunnable() const { return IsValid(); }
48   
49   /// Whether we are running or not
50   virtual Bool_t IsRunning() const { return fIsRunning; }
51   
52   /// Set the running status
53   virtual void SetRunning(Bool_t flag) { fIsRunning = flag; }
54   
55   Bool_t NextEvent();
56   
57   void Print(Option_t* opt="") const;
58   
59   void Rewind();
60   
61   /// Get our source URI
62   virtual TString Source() const { return fSource.Data(); }
63   
64   /// Set our source URI
65   void SetSource(const char* source) { fSource = source; }
66   
67   /// Number of events seen
68   Int_t NumberOfEvents() const { return fNumberOfEvents; }
69
70   Long64_t Merge(TCollection* li);
71   
72 private:
73   /// Not implemented
74   AliMUONTrackerRawDataMaker(const AliMUONTrackerRawDataMaker& rhs);
75   /// Not implemented
76   AliMUONTrackerRawDataMaker& operator=(const AliMUONTrackerRawDataMaker& rhs);
77   
78 private:
79   AliRawReader* fRawReader; //!< reader of the data (owner)
80   AliMUONVTrackerData* fAccumulatedData; ///< data (owner)
81   AliMUONVStore* fOneEventData; ///< data for one event (owner)
82   TString fSource; ///< where the data comes from
83   Bool_t fIsRunning; ///< whether we are running or are paused
84   Int_t fNumberOfEvents; ///< number of events seen
85   Int_t fRunNumber; ///< run number of the data
86   Bool_t fIsEventByEvent; ///< we only keep one event's data (no accumulation)
87   Bool_t fUseHPDecoder; ///< whether to use high performance decoder or not (false by default)
88   static Int_t fgkCounter; ///< to count the number of instances
89   
90   ClassDef(AliMUONTrackerRawDataMaker,3) // Producer of AliMUONVTrackerData from raw data
91 };
92
93 #endif