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 */
9 /// \class AliMUONRawWriter
10 /// \brief Raw data class for trigger and tracker chambers
12 /// Writring Raw data class for trigger and tracker chambers
15 #include <TClonesArray.h>
16 #include "AliMUONBusStruct.h"
17 #include "AliRawDataHeader.h"
18 #include "TStopwatch.h"
22 class AliMUONDspHeader;
23 class AliMUONBlockHeader;
24 class AliMUONDarcHeader;
25 class AliMUONRegHeader;
26 class AliMUONLocalStruct;
27 class AliMUONGlobalTrigger;
29 class AliMUONTriggerCrateStore;
30 class AliMpSegFactory;
32 class AliMUONRawWriter : public TObject
35 AliMUONRawWriter(AliMUONData* data); // Constructor
36 virtual ~AliMUONRawWriter(); // Destructor
41 void SetScalersNumbers();
44 AliMUONRawWriter(); // Default constructor
47 Int_t WriteTrackerDDL(Int_t iCh);
48 Int_t WriteTriggerDDL();
52 void AddData(const AliMUONBusStruct& event)
54 TClonesArray &temp = *fBusArray;
55 new(temp[temp.GetEntriesFast()]) AliMUONBusStruct(event);
58 Int_t GetBusPatch(const AliMUONDigit& digit);
59 void GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg);
61 Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const;
65 AliMUONData* fMUONData; //!< Data container for MUON subsystem
67 FILE* fFile[4]; //!< DDL binary file pointer one per 1/2 chamber, 4 for one station
69 TClonesArray* fBusArray; //!< array to sub event tracker
71 AliMUONBlockHeader* fBlockHeader; //!< DDL block header class pointers
72 AliMUONDspHeader* fDspHeader; //!< DDL Dsp header class pointers
73 AliMUONBusStruct* fBusStruct; //!< DDL bus patch structure class pointers
74 AliMUONDarcHeader* fDarcHeader; //!< DDL darc header class pointers
75 AliMUONRegHeader* fRegHeader; //!< DDL regional header class pointers
76 AliMUONLocalStruct* fLocalStruct; //!< DDL local structure class pointers
78 AliMpBusPatch* fBusPatchManager; //!< buspatch versus DE's & DDL
79 AliMUONTriggerCrateStore* fCrateManager; //!< Crate array
81 Bool_t fScalerEvent; ///< flag to generates scaler event
83 AliRawDataHeader fHeader; ///< header of DDL
85 static Int_t fgManuPerBusSwp1B[12]; //!< array containing the first manuId for each buspatch st1, Bending
86 static Int_t fgManuPerBusSwp1NB[12]; //!< array containing the first manuId for each buspatch st1, NBending
88 static Int_t fgManuPerBusSwp2B[12]; //!< array containing the first manuId for each buspatch st2, Bending
89 static Int_t fgManuPerBusSwp2NB[12]; //!< array containing the first manuId for each buspatch st2, NBending
91 TStopwatch fTrackerTimer; //!< time watcher for tracker part
92 TStopwatch fTriggerTimer; //!< time watcher for trigger part
93 TStopwatch fMappingTimer; //!< time watcher for mapping-tracker part
95 AliMpSegFactory* fSegFactory; //!< mapping segmentation factory
97 AliMUONRawWriter (const AliMUONRawWriter& rhs); // copy constructor
98 AliMUONRawWriter& operator=(const AliMUONRawWriter& rhs); // assignment operator
100 ClassDef(AliMUONRawWriter,1) // MUON cluster reconstructor in ALICE