X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDrawData.h;h=c24e53c82c4baed6681f90f39f799c0d17b1ae9b;hb=8c6eca17220c0c79fcbc9e9671467dcae55db898;hp=5ec84a67616ebb23664c10ce2f1e47afd5c91cc9;hpb=8c7039016f8b49d554eb85ba1b1582d9eb111067;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDrawData.h b/TRD/AliTRDrawData.h index 5ec84a67616..c24e53c82c4 100644 --- a/TRD/AliTRDrawData.h +++ b/TRD/AliTRDrawData.h @@ -15,13 +15,20 @@ class TTree; +class AliRunLoader; + class AliRawReader; class AliTRDdigitsManager; -class AliTRDCommonParam; -class AliTRDcalibDB; class AliTRDgeometry; -class AliTRDdataArrayI; +class AliTRDfeeParam; +class AliTRDarrayADC; +class AliTRDdigitsParam; + +// Some constants: +const UInt_t kEndoftrackletmarker = 0xAAAAAAAA; /*This marks the end of tracklet data words*/ +const UInt_t kEndofrawdatamarker = 0x00000000; /*This marks the end of half-chamber-data*/ +const UInt_t kSizeWord = sizeof(UInt_t); class AliTRDrawData : public TObject { @@ -31,27 +38,64 @@ class AliTRDrawData : public TObject { AliTRDrawData(const AliTRDrawData &r); virtual ~AliTRDrawData(); - AliTRDrawData &operator=(const AliTRDrawData &/*r*/) { return *this; } + AliTRDrawData &operator=(const AliTRDrawData &/*r*/) { return *this; } - virtual Bool_t Digits2Raw(TTree *digits, TTree *tracks = NULL); - virtual Bool_t SetRawVersion(Int_t v); + virtual Bool_t Digits2Raw(TTree *digits, const TTree *tracks = NULL); - virtual AliTRDdigitsManager* Raw2Digits(AliRawReader *rawReader); + virtual AliTRDdigitsManager *Raw2Digits(AliRawReader *rawReader); + //virtual AliTRDdigitsManager *Raw2DigitsOLD(AliRawReader *rawReader); + static void SetRawFormatVersion(Int_t iver){ fgRawFormatVersion=iver; }; + static void SetSuppressionLevel(Int_t ilevel){ fgDataSuppressionLevel=ilevel; }; + Bool_t WriteTracklets(Int_t det); - protected: + enum FORMATTYPE + { + kRawOldFormat = 0, + kRawNewFormat = 1 + }; - virtual Bool_t Digits2RawV0(AliTRDdigitsManager* digitsManager); - virtual Bool_t Digits2RawV1(AliTRDdigitsManager* digitsManager); - virtual Int_t ProduceHcDataV1(AliTRDdataArrayI *digits - , Int_t side, Int_t det, UInt_t *buf, Int_t maxSize); + protected: - Int_t fRawVersion; // Which version of raw simulator is used - AliTRDCommonParam *fCommonParam; //! Common parameters - AliTRDcalibDB *fCalibration; //! Offline database interface + virtual Bool_t Digits2Raw(AliTRDdigitsManager* digitsManager); // for fRawVersion > 0 + virtual Int_t ProduceHcData(AliTRDarrayADC *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize, Bool_t newEvent, Bool_t newSM); + virtual Int_t ProduceHcDataNoSuppression(Int_t side, Int_t det, UInt_t *buf, Int_t maxSize); + virtual Int_t ProduceHcDataV1andV2(AliTRDarrayADC *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize); + virtual Int_t ProduceHcDataV3(AliTRDarrayADC *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize, Bool_t newEvent); + //virtual Int_t ProduceHcDataV3(AliTRDarrayADC *digits, Int_t side, Int_t det, UInt_t *buf, Int_t maxSize); + void ProduceSMIndexData(UInt_t *buf, Int_t& nw); // SM index words and header - real data format + void WriteIntermediateWords(UInt_t *buf, Int_t& nw, Int_t& of, const Int_t& maxSize, const Int_t& det, const Int_t& side); // writes tracklet-endmarker and additional words between tracklet and raw-data + void WriteIntermediateWordsV2(UInt_t *buf, Int_t& nw, Int_t& of, const Int_t& maxSize, const Int_t& det, const Int_t& side); // real data format + void AssignStackMask(UInt_t *buf, Int_t nStack); // re-assignment of stack mask in the SM index word + void AssignLinkMask(UInt_t *buf, Int_t nLayer); // re-assignment of link mask in the stack index word + Int_t AddStackIndexWords(UInt_t *buf, Int_t nStack, Int_t nMax); // add stack index words and stack header when there is no data for the stack + Bool_t ShiftWords(UInt_t *buf, Int_t nStart, Int_t nWords, Int_t nMax); // shifts n words + + AliRunLoader *fRunLoader; //! Run Loader AliTRDgeometry *fGeo; //! Geometry + AliTRDfeeParam *fFee; //! Fee Parameters Int_t fNumberOfDDLs; // Number of DDLs + TTree *fTrackletTree; //! Tree for tracklets + UInt_t **fTrackletContainer; //! tracklet container + + private: + + static Int_t fgRawFormatVersion; // simulation raw data version - 0:old , 1:new(real data format) + static Int_t fgDataSuppressionLevel; // Data suppression level - 0:no su, 1: su, 2: deep suppression + static const UInt_t fgkEndOfTrackletMarker = 0x10001000; // This marks the end of tracklet data words + static const UInt_t fgkEndOfDataMarker = 0x00000000; // This marks the end of HC data words + + Int_t fSMindexPos; // Position of SM index word + Int_t fStackindexPos; // Position of SM index word + UInt_t fEventCounter; // Event counter(starting from 1) + AliTRDdigitsParam *fDigitsParam; // Digits parameter - ClassDef(AliTRDrawData,3) // TRD raw data class + ClassDef(AliTRDrawData,6) // TRD raw data class }; #endif + + + + + +