Line data Source code
1 : #ifndef ALIMUONRAWWRITER_H
2 : #define ALIMUONRAWWRITER_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 AliMUONRawWriter
10 : /// \brief Raw data class for trigger and tracker chambers
11 : ///
12 : // Author Christian Finck and Laurent Aphecetche, Subatech
13 :
14 : #include <TObject.h>
15 : #include "AliFstream.h"
16 :
17 : class AliMUONBlockHeader;
18 : class AliMUONBusStruct;
19 : class AliMUONDarcHeader;
20 : class AliMUONVDigit;
21 : class AliMUONDspHeader;
22 : class AliMUONGlobalTrigger;
23 : class AliMUONLocalStruct;
24 : class AliMUONRegHeader;
25 : class AliMUONVDigitStore;
26 : class AliMUONVTriggerStore;
27 : class AliMpDDLStore;
28 : class AliMpExMap;
29 : class AliRawDataHeaderSim;
30 :
31 : class AliMUONRawWriter : public TObject
32 : {
33 : public:
34 : AliMUONRawWriter(); // Constructor
35 : virtual ~AliMUONRawWriter(); // Destructor
36 :
37 : // write raw data
38 : Int_t Digits2Raw(const AliMUONVDigitStore* digitStore, const AliMUONVTriggerStore* triggerStore);
39 :
40 : void SetScalersNumbers();
41 :
42 : /// Set the header of DDL
43 8 : void SetHeader(AliRawDataHeaderSim& header) {fHeader = &header;}
44 :
45 : private:
46 :
47 : void Digits2BusPatchMap(const AliMUONVDigitStore& digitStore, AliMpExMap& busPatchMap);
48 : void WriteTrackerDDL(AliMpExMap& busPatchMap, Int_t iDDL);
49 :
50 : //void WriteBusPatch(AliMUONLocalBusStruct* busStruct);
51 :
52 : Int_t WriteTriggerDDL(const AliMUONVTriggerStore& triggerStore, AliFstream* file[2]);
53 :
54 : Int_t GetBusPatch(const AliMUONVDigit& digit) const;
55 :
56 : private:
57 : /// Not implemented copy constructor
58 : AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
59 : /// Not implemented assignment operator
60 : AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs);
61 :
62 : static void LocalWordPacking(UInt_t &word, UInt_t locId, UInt_t locDec,
63 : UInt_t trigY, UInt_t posY, UInt_t posX,
64 : UInt_t sdevX, UInt_t devX);
65 :
66 : AliMUONBlockHeader* fBlockHeader; //!<! DDL block header class pointers
67 : AliMUONDspHeader* fDspHeader; //!<! DDL Dsp header class pointers
68 : AliMUONDarcHeader* fDarcHeader; //!<! DDL darc header class pointers
69 : AliMUONRegHeader* fRegHeader; //!<! DDL regional header class pointers
70 : AliMUONLocalStruct* fLocalStruct; //!<! DDL local structure class pointers
71 :
72 : AliMpDDLStore* fDDLStore; //!<! DDL store pointer
73 :
74 : Bool_t fScalerEvent; ///< flag to generates scaler event
75 :
76 : AliRawDataHeaderSim* fHeader; ///< header of DDL
77 :
78 : Int_t fBufferSize; //!<! size of internal data buffer
79 : Int_t* fBuffer; //!<! internal data buffer
80 :
81 2110 : ClassDef(AliMUONRawWriter,5) // MUON cluster reconstructor in ALICE
82 : };
83 :
84 : #endif
|