]>
Commit | Line | Data |
---|---|---|
b6f591ae | 1 | #ifndef ALIMUONTRACKERDATAMAKER_H |
2 | #define ALIMUONTRACKERDATAMAKER_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 AliMUONTrackerDataMaker | |
11 | /// \brief Implementation of VTrackerDataMaker to read raw data | |
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 AliMUONRecoParam; | |
23 | class AliMUONCalibrationData; | |
24 | class AliMUONDigitCalibrator; | |
25 | class AliMUONVStore; | |
26 | class AliMUONVTrackerData; | |
27 | class AliRawReader; | |
64c2397e | 28 | class AliMUONLogger; |
b6f591ae | 29 | |
30 | class AliMUONTrackerDataMaker : public AliMUONVTrackerDataMaker | |
31 | { | |
32 | public: | |
33 | AliMUONTrackerDataMaker(TRootIOCtor*); | |
34 | ||
35 | AliMUONTrackerDataMaker(const AliMUONRecoParam* recoParam, | |
36 | Int_t runNumber, | |
37 | AliRawReader* rawReader, | |
38 | const char* cdbPath, | |
39 | const char* calibMode, | |
40 | Bool_t histogram=kFALSE, | |
41 | Double_t xmin=0.0, | |
42 | Double_t xmax=4095.0); | |
43 | ||
44 | AliMUONTrackerDataMaker(const AliMUONRecoParam* recoParam, | |
45 | AliRawReader* rawReader, | |
46 | const char* cdbPath, | |
47 | const char* calibMode, | |
48 | Bool_t histogram=kFALSE, | |
49 | Double_t xmin=0.0, | |
50 | Double_t xmax=4095.0); | |
51 | ||
52 | AliMUONTrackerDataMaker(AliRawReader* rawReader, Bool_t histogram=kFALSE); | |
53 | ||
54 | virtual ~AliMUONTrackerDataMaker(); | |
55 | ||
56 | Bool_t Add(const AliMUONTrackerDataMaker& other); | |
57 | ||
58 | /// Whether we have a valid reader or not | |
59 | Bool_t IsValid() const { return fRawReader != 0x0; } | |
60 | ||
61 | /// Get our accumulated data | |
62 | AliMUONVTrackerData* Data() const { return fAccumulatedData; } | |
63 | ||
b3d57767 | 64 | /// Whether or not we're the owner of our fAccumulatedData |
65 | void SetOwnerOfData(Bool_t flag) { fIsOwnerOfAccumulatedData = flag; } | |
66 | ||
b6f591ae | 67 | /// Whether we're only handling event-by-event data (i.e. no accumulation) |
68 | Bool_t IsEventByEvent() const { return fIsEventByEvent; } | |
69 | ||
70 | /// Set event-by-event mode | |
71 | void SetEventByEvent(Bool_t flag) { fIsEventByEvent = flag; } | |
72 | ||
73 | /// We can run if we have a reader | |
74 | Bool_t IsRunnable() const { return IsValid(); } | |
75 | ||
76 | /// Whether we are running or not | |
77 | Bool_t IsRunning() const { return fIsRunning; } | |
78 | ||
79 | /// Set the runnning status | |
80 | void SetRunning(Bool_t flag) { fIsRunning = flag; } | |
81 | ||
82 | Bool_t ProcessEvent(); | |
83 | ||
84 | Bool_t NextEvent(); | |
85 | ||
86 | void Print(Option_t* opt="") const; | |
87 | ||
88 | void Rewind(); | |
89 | ||
90 | /// Get our source URI | |
91 | TString Source() const { return fSource.Data(); } | |
92 | ||
93 | /// Set our source URI | |
94 | void SetSource(const char* source) { fSource = source; } | |
95 | ||
96 | /// Number of events seen | |
97 | Int_t NumberOfEvents() const { return fNumberOfEvents; } | |
b3d57767 | 98 | |
99 | /// Number of physics events seen | |
100 | Int_t NumberOfPhysicsEvents() const { return fNumberOfPhysicsEvents; } | |
101 | ||
102 | /// Number of good physics events seen | |
103 | Int_t NumberOfGoodPhysicsEvents() const { return fNumberOfGoodPhysicsEvents; } | |
104 | ||
b6f591ae | 105 | Long64_t Merge(TCollection* li); |
106 | ||
107 | void SetRawReader(AliRawReader* rawReader); | |
108 | ||
52ce8802 | 109 | /// Set the error logger |
64c2397e | 110 | void EnableErrorLogger(AliMUONLogger* logger) { fLogger = logger; } |
111 | ||
b3d57767 | 112 | /// Whether last decoded event was empty |
113 | Bool_t LastEventWasEmpty() const { return fLastEventWasEmpty; } | |
114 | ||
9074a9a9 | 115 | /// Whether or not we should try to recover corrupted raw data |
116 | void SetTryRecover(Bool_t flag) { fTryRecover = flag; } | |
117 | ||
118 | /// Set the event range to consider | |
119 | void SetEventRange(Int_t first, Int_t last) { fFirstEvent=first; fLastEvent=last; } | |
120 | ||
b6f591ae | 121 | private: |
122 | /// not implemented | |
123 | AliMUONTrackerDataMaker(const AliMUONTrackerDataMaker& rhs); | |
124 | /// not implemented | |
125 | AliMUONTrackerDataMaker& operator=(const AliMUONTrackerDataMaker& rhs); | |
126 | ||
127 | void Ctor(const AliMUONRecoParam* param, | |
128 | Int_t runNumber, | |
129 | const char* calibMode, | |
130 | Bool_t histogram, | |
131 | Double_t xmin=0.0, | |
132 | Double_t xmax=4095.0); | |
133 | ||
134 | private: | |
135 | AliRawReader* fRawReader; //!< reader of the data (owner or not) | |
b3d57767 | 136 | AliMUONVTrackerData* fAccumulatedData; ///< data (owner or not) |
137 | Bool_t fIsOwnerOfAccumulatedData; ///< owner or not of fAccumulatedData | |
b6f591ae | 138 | AliMUONVStore* fOneEventData; ///< data for a single event (owner) |
139 | AliMUONDigitCalibrator* fDigitCalibrator; //!< digit calibrator (if calibrating) | |
140 | AliMUONCalibrationData* fCalibrationData; ///< calibration data (if calibrating) | |
141 | TString fSource; ///< where the data comes from | |
142 | TString fOCDBPath; ///< OCDB path (if calibrating) | |
143 | Int_t fNumberOfEvents; ///< number of events seen | |
144 | Int_t fRunNumber; ///< run number of the data | |
145 | Bool_t fIsRunning; ///< whether we are running or not | |
146 | Bool_t fIsOwnerOfRawReader; ///< whether we must delete rawReader or not | |
147 | Bool_t fIsEventByEvent; ///< we only keep one event's data (no accumulation) | |
148 | static Int_t fgkCounter; ///< to count the number of instances | |
64c2397e | 149 | AliMUONLogger* fLogger; ///< error logger (not owner) |
b3d57767 | 150 | Bool_t fLastEventWasEmpty; ///< whether last decoded event was empty |
151 | Int_t fNumberOfPhysicsEvents; ///< number of physics events seen | |
152 | Int_t fNumberOfGoodPhysicsEvents; ///< number of errors with no (fatal) readout error | |
9074a9a9 | 153 | Bool_t fTryRecover; ///< whether we should try to recover corrupted raw data |
154 | Int_t fFirstEvent; ///< first event to consider | |
155 | Int_t fLastEvent; ///< last event to consider | |
156 | ||
157 | ClassDef(AliMUONTrackerDataMaker,5) // Producer of AliMUONVTrackerData from raw | |
b6f591ae | 158 | }; |
159 | ||
160 | #endif |