]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONDigitMaker.h
Changes for #93172: Improve trigger chamber efficiency calculation
[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 AliMUONRawStreamTrackerHP;
22class AliMUONRawStreamTriggerHP;
23
24class AliMUONVDigitStore;
25class AliMUONVTriggerStore;
26
27class AliMUONLogger;
28
29class 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 void SetScalerEvent() { fScalerEvent = kTRUE; }
62
63 /// Set flag whether or not we should generate digits for the trigger
64 void SetMakeTriggerDigits(Bool_t flag = kFALSE) { fMakeTriggerDigits = flag; }
65
66 /// Return the raw stream object which decodes DDL raw data from tracking stations.
67 AliMUONRawStreamTrackerHP* GetRawStreamTracker() const { return fRawStreamTracker; }
68
69 /// Return the raw stream object which decodes DDL raw data from the trigger system.
70 AliMUONRawStreamTriggerHP* GetRawStreamTrigger() const { return fRawStreamTrigger; }
71
72 void Print(Option_t* opt="") const;
73
74 void SetTryRecover(Bool_t flag);
75
76private:
77
78 /// Not implemented
79 AliMUONDigitMaker (const AliMUONDigitMaker& rhs); // copy constructor
80 /// Not implemented
81 AliMUONDigitMaker& operator=(const AliMUONDigitMaker& rhs); // assignment operator
82
83private:
84 Bool_t fScalerEvent; //!< flag to generates scaler event
85 Bool_t fMakeTriggerDigits; //!< whether or not we should generate digits for the trigger
86
87 AliMUONRawStreamTrackerHP* fRawStreamTracker; //!< pointer of raw stream for tracker
88 AliMUONRawStreamTriggerHP* fRawStreamTrigger; //!< pointer of raw stream for trigger
89
90 AliMUONVDigitStore* fDigitStore; //!< not owner
91 AliMUONVTriggerStore* fTriggerStore; //!< not owner
92
93 AliMUONLogger* fLogger; //!< to log messages
94
95 ClassDef(AliMUONDigitMaker,7) // MUON digit maker from rawdata
96};
97
98#endif