New TRD raw data reader (v1 + v2) by Christian
[u/mrichter/AliRoot.git] / TRD / AliTRDrawData.h
1 #ifndef ALITRDRAWDATA_H
2 #define ALITRDRAWDATA_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 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  Converts TRD digits into a raw data stream                               //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include "TObject.h"
15
16 class TTree;
17
18 class AliRawReader;
19
20 class AliTRDdigitsManager;
21 class AliTRDCommonParam;
22 class AliTRDcalibDB;
23 class AliTRDgeometry;
24 class AliTRDdataArrayI;
25
26 //
27 // The following are defined in AliTRDRawStream.h:
28 //const Int_t end_of_tracklet_marker = 0xAAAAAAAA; /*This marks the end of tracklet data words*/
29 //const Int_t end_of_event_marker    = 0x00000000; /*This marks the end of half-chamber-data*/
30 //
31
32 class AliTRDrawData : public TObject {
33
34  public:
35
36   AliTRDrawData();
37   AliTRDrawData(const AliTRDrawData &r);
38   virtual ~AliTRDrawData();
39
40   AliTRDrawData &operator=(const AliTRDrawData &/*r*/) { return *this; }
41
42   virtual Bool_t       Digits2Raw(TTree *digits, TTree *tracks = NULL);
43   virtual Bool_t       SetRawVersion(Int_t v);
44
45   virtual AliTRDdigitsManager* Raw2Digits(AliRawReader *rawReader);
46
47  protected:
48
49   virtual Bool_t       Digits2RawV0(AliTRDdigitsManager* digitsManager); // for fRawVersion == 0
50   virtual Bool_t       Digits2RawVx(AliTRDdigitsManager* digitsManager); // for fRawVersion > 0
51   virtual Int_t        ProduceHcDataV1andV2(AliTRDdataArrayI *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize);
52   //virtual Int_t        ProduceHcDataV3(AliTRDdataArrayI *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize);
53   //virtual Int_t        ProduceHcDataV4(AliTRDdataArrayI *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize);
54
55   virtual AliTRDdigitsManager* Raw2DigitsV0(AliRawReader* rawReader);
56   virtual AliTRDdigitsManager* Raw2DigitsVx(AliRawReader* rawReader);
57
58   Int_t                fRawVersion;     //  Which version of raw simulator is used
59   AliTRDCommonParam   *fCommonParam;    //! Common parameters
60   AliTRDcalibDB       *fCalibration;    //! Offline database interface
61   AliTRDgeometry      *fGeo;            //! Geometry
62   Int_t                fNumberOfDDLs;   //  Number of DDLs
63
64   ClassDef(AliTRDrawData,3)             //  TRD raw data class
65
66 };
67 #endif