Line data Source code
1 : #ifndef ALIMUONDIGITMAKER_H
2 : #define ALIMUONDIGITMAKER_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /*$Id$*/
7 :
8 : /// \ingroup base
9 : /// \class AliMUONDigitMaker
10 : /// \brief Reading Raw data class for trigger and tracker chambers
11 : ///
12 : // Author: Ch, Finck
13 :
14 : #include <TObject.h>
15 :
16 : class TArrayS;
17 :
18 : class AliRawReader;
19 : class AliMUONLocalStruct;
20 :
21 : class AliMUONRawStreamTrackerHP;
22 : class AliMUONRawStreamTriggerHP;
23 :
24 : class AliMUONVDigitStore;
25 : class AliMUONVTriggerStore;
26 :
27 : class AliMUONLogger;
28 :
29 : class AliMUONDigitMaker : public TObject
30 : {
31 : public:
32 : AliMUONDigitMaker(Bool_t enableErrorLogger, Bool_t a, Bool_t b);
33 :
34 : AliMUONDigitMaker(Bool_t enableErrorLogger = kTRUE); // Constructor
35 :
36 : virtual ~AliMUONDigitMaker(void); // Destructor
37 :
38 : /// Code to indicate readout errors
39 : enum ErrorCode
40 : {
41 : kOK=0, ///< everything is OK
42 : kTrackerBAD=1<<1, ///< tracker part had readout errors
43 : kTriggerBAD=1<<2 ///< trigger part had readout errors
44 : };
45 :
46 : // write raw data
47 : Int_t Raw2Digits(AliRawReader* rawReader,
48 : AliMUONVDigitStore* digitContainer=0,
49 : AliMUONVTriggerStore* triggerStore=0);
50 :
51 : Int_t ReadTrackerDDL(AliRawReader* rawReader);
52 : Int_t ReadTriggerDDL(AliRawReader* rawReader);
53 :
54 : Int_t TriggerDigits(Int_t nBoard, const TArrayS* xyPattern,
55 : AliMUONVDigitStore& digitStore, Bool_t warn = kTRUE) const;
56 :
57 : Bool_t TriggerToDigitsStore(const AliMUONVTriggerStore& triggerStore,
58 : AliMUONVDigitStore& digitStore) const;
59 :
60 : /// Set flag to generates scaler event
61 0 : void SetScalerEvent() { fScalerEvent = kTRUE; }
62 :
63 : /// Set flag whether or not we should generate digits for the trigger
64 10 : void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
65 :
66 : /// Set flag whether or not we should generate digits for the tracker
67 9 : void SetMakeTrackerDigits(Bool_t flag = kTRUE) { fMakeTrackerDigits = flag; }
68 :
69 : /// Return the raw stream object which decodes DDL raw data from tracking stations.
70 0 : AliMUONRawStreamTrackerHP* GetRawStreamTracker() const { return fRawStreamTracker; }
71 :
72 : /// Return the raw stream object which decodes DDL raw data from the trigger system.
73 0 : AliMUONRawStreamTriggerHP* GetRawStreamTrigger() const { return fRawStreamTrigger; }
74 :
75 : void Print(Option_t* opt="") const;
76 :
77 : void SetTryRecover(Bool_t flag);
78 :
79 : private:
80 :
81 : /// Not implemented
82 : AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
83 : /// Not implemented
84 : AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
85 :
86 : private:
87 : Bool_t fScalerEvent; //!<! flag to generates scaler event
88 : Bool_t fMakeTriggerDigits; //!<! whether or not we should generate digits for the trigger
89 : Bool_t fMakeTrackerDigits; //!<! whether or not we should generate digits for the tracker
90 :
91 : AliMUONRawStreamTrackerHP* fRawStreamTracker; //!<! pointer of raw stream for tracker
92 : AliMUONRawStreamTriggerHP* fRawStreamTrigger; //!<! pointer of raw stream for trigger
93 :
94 : AliMUONVDigitStore* fDigitStore; //!<! not owner
95 : AliMUONVTriggerStore* fTriggerStore; //!<! not owner
96 :
97 : AliMUONLogger* fLogger; //!<! to log messages
98 :
99 563588 : ClassDef(AliMUONDigitMaker,8) // MUON digit maker from rawdata
100 : };
101 :
102 : #endif
|