AliHLTTPCCAGlobalMergerComponent added to compilation
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitMaker.h
CommitLineData
a3283a4c 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
241560c2 8/// \ingroup base
a3283a4c 9/// \class AliMUONDigitMaker
78649106 10/// \brief Reading Raw data class for trigger and tracker chambers
a3283a4c 11///
78649106 12// Author: Ch, Finck
a3283a4c 13
14#include <TObject.h>
8a91c35f 15
7771752e 16class TArrayS;
8a91c35f 17
00e86732 18class AliRawReader;
d2d759cf 19class AliMUONLocalStruct;
a3283a4c 20
e3a2b9c9 21class AliMUONVRawStreamTracker;
481d8064 22class AliMUONVRawStreamTrigger;
a3283a4c 23
40e382ae 24class AliMUONVDigitStore;
25class AliMUONVTriggerStore;
26
0145e89a 27class AliMUONLogger;
28
a3283a4c 29class AliMUONDigitMaker : public TObject
30{
31 public:
481d8064 32 AliMUONDigitMaker(
33 Bool_t enableErrorLogger = kTRUE,
5f3519d9 34 Bool_t useFastTrackerDecoder = kTRUE, Bool_t useFastTriggerDecoder = kTRUE
481d8064 35 ); // Constructor
a3283a4c 36 virtual ~AliMUONDigitMaker(void); // Destructor
37
be63c782 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
a3283a4c 46 // write raw data
40e382ae 47 Int_t Raw2Digits(AliRawReader* rawReader,
48 AliMUONVDigitStore* digitContainer=0,
49 AliMUONVTriggerStore* triggerStore=0);
a3283a4c 50
51 Int_t ReadTrackerDDL(AliRawReader* rawReader);
52 Int_t ReadTriggerDDL(AliRawReader* rawReader);
481d8064 53 Int_t ReadTriggerDDLFast(AliRawReader* rawReader);
40e382ae 54
55 Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern,
56 AliMUONVDigitStore& digitStore) const;
d2d759cf 57
54355f2c 58 Bool_t TriggerToDigitsStore(const AliMUONVTriggerStore& triggerStore,
59 AliMUONVDigitStore& digitStore) const;
60
9265505b 61 /// Set flag to generates scaler event
40e382ae 62 void SetScalerEvent() { fScalerEvent = kTRUE; }
e604ac4c 63
40e382ae 64 /// Set flag whether or not we should generate digits for the trigger
65 void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
8a91c35f 66
481d8064 67 Bool_t UsingFastTrackerDecoder() const;
68 Bool_t UsingFastTriggerDecoder() const;
69 void SetFastTrackerDecoder(Bool_t useFastDecoder);
70 void SetFastTriggerDecoder(Bool_t useFastDecoder);
d61f56df 71
b92a19ac 72 /// Return the raw stream object which decodes DDL raw data from tracking stations.
73 AliMUONVRawStreamTracker* GetRawStreamTracker() const { return fRawStreamTracker; }
74
75 /// Return the raw stream object which decodes DDL raw data from the trigger system.
76 AliMUONVRawStreamTrigger* GetRawStreamTrigger() const { return fRawStreamTrigger; }
77
be63c782 78 void Print(Option_t* opt="") const;
79
40e382ae 80private:
81
71a2d3aa 82 /// Not implemented
83 AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
84 /// Not implemented
85 AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
86
40e382ae 87private:
d61f56df 88 void CreateRawStreamTracker(Bool_t useFastDecoder);
481d8064 89 void CreateRawStreamTrigger(Bool_t useFastDecoder);
8a91c35f 90
3c7f5307 91 Bool_t fScalerEvent; //!< flag to generates scaler event
40e382ae 92 Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
93
e3a2b9c9 94 AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker
481d8064 95 AliMUONVRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger
a3283a4c 96
40e382ae 97 AliMUONVDigitStore* fDigitStore; //!< not owner
98 AliMUONVTriggerStore* fTriggerStore; //!< not owner
3c7f5307 99
0145e89a 100 AliMUONLogger* fLogger; //!< to log messages
101
102 ClassDef(AliMUONDigitMaker,6) // MUON digit maker from rawdata
a3283a4c 103};
104
105#endif