]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONDigitMaker.h
Small correction for shifts in SSD (M. Van Leeuwen)
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitMaker.h
... / ...
CommitLineData
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
16class TArrayS;
17
18class AliRawReader;
19class AliMUONLocalStruct;
20
21class AliMUONVRawStreamTracker;
22class AliMUONVRawStreamTrigger;
23
24class AliMUONVDigitStore;
25class AliMUONVTriggerStore;
26
27class AliMUONLogger;
28
29class AliMUONDigitMaker : public TObject
30{
31 public:
32 AliMUONDigitMaker(
33 Bool_t enableErrorLogger = kTRUE,
34 Bool_t useFastTrackerDecoder = kTRUE, Bool_t useFastTriggerDecoder = kTRUE
35 ); // Constructor
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 Int_t ReadTriggerDDLFast(AliRawReader* rawReader);
54
55 Int_t TriggerDigits(Int_t nBoard, TArrayS* xyPattern,
56 AliMUONVDigitStore& digitStore) const;
57
58 /// Set flag to generates scaler event
59 void SetScalerEvent() { fScalerEvent = kTRUE; }
60
61 /// Set flag whether or not we should generate digits for the trigger
62 void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
63
64 Bool_t UsingFastTrackerDecoder() const;
65 Bool_t UsingFastTriggerDecoder() const;
66 void SetFastTrackerDecoder(Bool_t useFastDecoder);
67 void SetFastTriggerDecoder(Bool_t useFastDecoder);
68
69 void Print(Option_t* opt="") const;
70
71private:
72
73 /// Not implemented
74 AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
75 /// Not implemented
76 AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
77
78private:
79 void CreateRawStreamTracker(Bool_t useFastDecoder);
80 void CreateRawStreamTrigger(Bool_t useFastDecoder);
81
82 Bool_t fScalerEvent; //!< flag to generates scaler event
83 Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
84
85 AliMUONVRawStreamTracker* fRawStreamTracker; //!< pointer of raw stream for tracker
86 AliMUONVRawStreamTrigger* fRawStreamTrigger; //!< pointer of raw stream for trigger
87
88 AliMUONVDigitStore* fDigitStore; //!< not owner
89 AliMUONVTriggerStore* fTriggerStore; //!< not owner
90
91 AliMUONLogger* fLogger; //!< to log messages
92
93 ClassDef(AliMUONDigitMaker,6) // MUON digit maker from rawdata
94};
95
96#endif