]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONRawData.h
Update raw2digits framework (Ch.Finck)
[u/mrichter/AliRoot.git] / MUON / AliMUONRawData.h
1 #ifndef ALIMUONRAWDATA_H
2 #define ALIMUONRAWDATA_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* Raw data class for trigger and tracker chambers */
7
8 #include <TObject.h>
9 #include "AliMUONSubEventTracker.h"
10
11 class TClonesArray;
12 class AliLoader;
13 class AliMUONData;
14 class AliMUONDigit;
15 class AliMUONDDLTracker;
16 class AliMUONDDLTrigger;
17 class AliMUONGlobalTrigger;
18 class AliMUONSubEventTrigger;
19 class AliRawReader;
20
21 class AliMUONRawData : public TObject 
22 {
23  public:
24   AliMUONRawData(AliLoader* loader); // Constructor
25   virtual ~AliMUONRawData(void); // Destructor
26     
27   // write raw data
28   Int_t   Digits2Raw();
29   Int_t   Raw2Digits(AliRawReader* rawReader);
30
31   AliMUONData*   GetMUONData() {return fMUONData;}
32
33   void AddData1(const AliMUONSubEventTracker* event) {
34     TClonesArray &temp = *fSubEventArray[0];
35     new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event); 
36   }
37
38   void AddData2(const AliMUONSubEventTracker* event) {
39     TClonesArray &temp = *fSubEventArray[1];
40     new(temp[temp.GetEntriesFast()])AliMUONSubEventTracker(*event); 
41   }
42
43   void GetDummyMapping(Int_t iCh, Int_t iCath, const AliMUONDigit* digit, Int_t &busPatchId,
44                        UShort_t &manuId, UChar_t &channelId);
45
46   void GetInvDummyMapping(Int_t iCh, Int_t buspatchId, UShort_t manuId, 
47                           UChar_t channelId, AliMUONDigit* digit );
48
49
50   Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg);
51
52  protected:
53   AliMUONRawData();                  // Default constructor
54   AliMUONRawData (const AliMUONRawData& rhs); // copy constructor
55   AliMUONRawData& operator=(const AliMUONRawData& rhs); // assignment operator
56
57  private:
58   static const Int_t fgkDefaultPrintLevel;     // Default print level
59
60   AliMUONData*  fMUONData;           //! Data container for MUON subsystem 
61  
62   AliLoader*    fLoader;             //! alice loader
63  
64   FILE*         fFile1;              //! DDL binary file pointer one per 1/2 chamber
65   FILE*         fFile2;              //! DDL binary file pointer one per 1/2 chamber
66
67   TClonesArray* fSubEventArray[2];   //! array to sub event tracker
68   
69   TClonesArray* fSubEventTrigArray[2]; //! array to sub event trigger
70  
71   AliMUONDDLTracker* fDDLTracker;      //! DDL tracker class pointers
72   AliMUONDDLTrigger* fDDLTrigger;      //! DDL trigger class pointers
73
74   // writing raw data
75   Int_t WriteTrackerDDL(Int_t iCh);
76   Int_t WriteTriggerDDL();
77
78   Int_t ReadTrackerDDL(AliRawReader* rawReader);
79   Int_t ReadTriggerDDL(AliRawReader* rawReader);
80
81   ClassDef(AliMUONRawData,1) // MUON cluster reconstructor in ALICE
82 };
83         
84 #endif