]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDrawStreamBase.h
Add a protection against division by 0 (which may occur when a track exit from the...
[u/mrichter/AliRoot.git] / TRD / AliTRDrawStreamBase.h
index 5538400f2e2ea61d30fca14a982a539c442c5cd5..b01d18e3c572418a48446597712a7364c7c1365b 100644 (file)
-#ifndef ALITRDRAWSTREAMBASE_H\r\r
-#define ALITRDRAWSTREAMBASE_H\r\r
-\r\r
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r\r
- * See cxx source for full Copyright notice                               */\r\r
-\r\r
-/* $Id: AliTRDrawStreamBase.h 23387 2008-01-17 17:25:16Z cblume $ */\r\r
-\r\r
-///////////////////////////////////////////////////////////////////////////////\r\r
-//                                                                           //\r\r
-// This base class defines access to TRD digits in raw data.                 //\r\r
-//                                                                           //\r\r
-///////////////////////////////////////////////////////////////////////////////\r\r
-\r\r
-#include "TObject.h"\r\r
-//#include "TString.h"\r\r
-#include "AliLog.h"\r\r
-\r\r
-class AliRawReader;\r\r
-class AliTRDdigitsManager;\r\r
-\r\r
-#define TRDMAXTBINS 63\r\r
-#define TRDMAXADC   21\r\r
-#define TRDMAXMCM   4 * 16\r\r
-#define MAXTRACKLETSPERHC 256\r\r
-\r\r
-/* // old raw stream */\r\r
-/* #define TRD_OLD_STREAM -1 */\r\r
-/* // read simulated data */\r\r
-/* #define TRD_SIM_STREAM 0 */\r\r
-/* // read real data - including test beam 2007 */\r\r
-/* #define TRD_REAL_STREAM 1 */\r\r
-\r\r
-#define TRD_NOIMP() AliFatal("Not Implemented for this class. Use inherited.");\r\r
-\r\r
-class AliTRDrawStreamBase : public TObject\r\r
-{ // class def begin\r\r
-\r\r
- public:\r\r
-\r\r
-  AliTRDrawStreamBase();\r\r
-  AliTRDrawStreamBase(AliRawReader *rawReader);\r\r
-  virtual ~AliTRDrawStreamBase();\r\r
-\r\r
-  AliTRDrawStreamBase(const AliTRDrawStreamBase& st);\r\r
-  AliTRDrawStreamBase &operator=(const AliTRDrawStreamBase &);\r\r
-\r\r
-  //--------------------------------------------------------\r\r
-\r\r
-  enum STREAMTYPE\r\r
-    {\r\r
-      kTRDsimStream  =  0,\r\r
-      kTRDrealStream =  1,\r\r
-      kTRDoldStream  = 99\r\r
-    };\r\r
-\r\r
-  static   AliTRDrawStreamBase *GetRawStream();\r\r
-  static   AliTRDrawStreamBase *GetRawStream(AliRawReader *reader);\r\r
-\r\r
-  static  void      SetRawStreamVersion(Int_t iver) { fgRawStreamVersion = iver; }\r\r
-  static  void      SetRawStreamVersion(const char *opt);\r\r
-\r\r
-  virtual Bool_t    Next() {TRD_NOIMP(); return 0;}          \r\r
-  //virtual Int_t     NextChamber(AliTRDdigitsManager */*man*/) {TRD_NOIMP(); return 0;} \r\r
-  virtual Int_t     NextChamber(AliTRDdigitsManager */*man*/, UInt_t **/*trackletContainer*/=NULL) {TRD_NOIMP(); return 0;}\r\r
-  virtual Bool_t    Init() {TRD_NOIMP(); return -1;}     \r\r
-\r\r
-  virtual Bool_t    SetRawVersion(Int_t /*fraw*/) {TRD_NOIMP(); return 0;} \r\r
-  \r\r
-  virtual Bool_t    IsCurrentPadShared() const {TRD_NOIMP(); return 0;}\r\r
-  virtual void      SetSharedPadReadout(Bool_t /*fv*/) {TRD_NOIMP();} \r\r
-  virtual Bool_t    IsDataZeroSuppressed() const {TRD_NOIMP(); return 0;}\r\r
-  \r\r
-  virtual Bool_t    SetReader(AliRawReader */*reader*/) {TRD_NOIMP(); return 0;} \r\r
-          \r\r
-  virtual Bool_t    IsTrackletEnableBitSet() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Bool_t    IsStackActive(Int_t /*is*/) const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetNofActiveStacks() const {TRD_NOIMP(); return 0;}\r\r
-  virtual UInt_t   *GetSMstreamPosition() const {TRD_NOIMP(); return 0;}\r\r
-           \r\r
-  virtual Bool_t    IsSMbufferClean() const {TRD_NOIMP(); return 0;}\r\r
-    \r\r
-  virtual Bool_t    IsLinkActiveInStack(Int_t /*is*/, Int_t /*il*/) const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetActiveLinksInStack(Int_t /*is*/) const {TRD_NOIMP(); return 0;}\r\r
-           \r\r
-  virtual Int_t     GetSpecialRawVersion() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetMajorRawVersion() const {TRD_NOIMP(); return 0;}  \r\r
-  virtual Int_t     GetRawVersion() const {TRD_NOIMP(); return 0;}       \r\r
-  virtual Int_t     GetMinorRawVersion() const {TRD_NOIMP(); return 0;}  \r\r
-\r\r
-  virtual Int_t     GetSM() const {TRD_NOIMP(); return 0;}   \r\r
-  virtual Int_t     GetLayer() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetStack() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetSide() const {TRD_NOIMP(); return 0;} \r\r
-  virtual Int_t     GetDCS() const {TRD_NOIMP(); return 0;}  \r\r
-\r\r
-  virtual Int_t     GetROC() const {TRD_NOIMP(); return 0;}  \r\r
-  virtual Int_t     GetNumberOfTimeBins() const {TRD_NOIMP(); return 0;} \r\r
-  virtual UInt_t    GetBunchCrossCounter() const {TRD_NOIMP(); return 0;}\r\r
-  virtual UInt_t    GetPreTriggerCounter() const {TRD_NOIMP(); return 0;}\r\r
-  virtual UInt_t    GetPreTriggerPhase() const {TRD_NOIMP(); return 0;}          \r\r
-\r\r
-  virtual Int_t     GetRow() const {TRD_NOIMP(); return 0;}   \r\r
-  virtual Int_t     GetCol() const {TRD_NOIMP(); return 0;}   \r\r
-  virtual Int_t     GetRowMax() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetColMax() const {TRD_NOIMP(); return 0;}\r\r
-  // compatibility\r\r
-  virtual Int_t     GetMaxRow() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetMaxCol() const {TRD_NOIMP(); return 0;}\r\r
-\r\r
-  virtual Int_t     GetDET() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetDet() const {TRD_NOIMP(); return 0;}\r\r
-           \r\r
-  virtual Int_t     GetROB() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetMCM() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetEventNumber() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     IsMCMcorrupted() const {TRD_NOIMP(); return 0;}\r\r
-\r\r
-  virtual Int_t    *GetSignals() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetADC() const {TRD_NOIMP(); return 0;}\r\r
-  virtual Int_t     GetTimeBin() const {TRD_NOIMP(); return 0;}\r\r
-\r\r
-  virtual Int_t     GetCommonAdditive() const {TRD_NOIMP(); return 0;}\r\r
\r\r
-  //----------------------------------------------------------\r\r
\r\r
- protected:\r\r
-\r\r
- private:\r\r
-\r\r
-  static Int_t fgRawStreamVersion;           // Raw stream version number\r\r
-\r\r
-  ClassDef(AliTRDrawStreamBase, 0)           // TRD raw stream base class\r\r
-\r\r
-}; //clas def end\r\r
-\r\r
-#endif\r\r
+#ifndef ALITRDRAWSTREAMBASE_H\r
+#define ALITRDRAWSTREAMBASE_H\r
+\r
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
+ * See cxx source for full Copyright notice                               */\r
+\r
+/* $Id: AliTRDrawStreamBase.h 23387 2008-01-17 17:25:16Z cblume $ */\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+//                                                                           //\r
+// This base class defines access to TRD digits in raw data.                 //\r
+//                                                                           //\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+#include "TObject.h"\r
+#include "AliLog.h"\r
+\r
+class AliRawReader;\r
+class AliTRDdigitsManager;\r
+\r
+#define TRDMAXTBINS 63\r
+#define TRDMAXADC   21\r
+#define TRDMAXMCM   4 * 16\r
+#define MAXTRACKLETSPERHC 256\r
+\r
+#define TRD_NOIMP() AliFatal("Not Implemented for this class. Use inherited.");\r
+\r
+class AliTRDrawStreamBase : public TObject\r
+{ // class def begin\r
+\r
+ public:\r
+\r
+  AliTRDrawStreamBase();\r
+  AliTRDrawStreamBase(AliRawReader *rawReader);\r
+  virtual ~AliTRDrawStreamBase();\r
+\r
+  AliTRDrawStreamBase(const AliTRDrawStreamBase& st);\r
+  AliTRDrawStreamBase &operator=(const AliTRDrawStreamBase &);\r
+\r
+  //--------------------------------------------------------\r
+\r
+  enum STREAMTYPE\r
+    {\r
+      kTRDsimStream  =  0,\r
+      kTRDrealStream =  1,\r
+      kTRDfastStream =  2,\r
+      kTRDdefaultStream = 3\r
+    };\r
+\r
+  enum { kDDLOffset = 0x400 };                                // Offset for DDL numbers\r
+\r
+  static   AliTRDrawStreamBase *GetRawStream();\r
+  static   AliTRDrawStreamBase *GetRawStream(AliRawReader *reader);\r
+\r
+  static  void      SetRawStreamVersion(Int_t iver) { fgRawStreamVersion = iver; }\r
+  static  void      SetRawStreamVersion(const char *opt);\r
+\r
+  // this is a temporary solution!^M\r
+  // baseline should come with the HC header word 2 (count from 0!)^M\r
+\r
+  virtual Bool_t    Next() {TRD_NOIMP(); return 0;}          \r
+  //virtual Int_t     NextChamber(AliTRDdigitsManager */*man*/) {TRD_NOIMP(); return 0;} \r
+  //virtual Int_t     NextChamber(AliTRDdigitsManager */*man*/, UInt_t **/*trackletContainer*/=NULL) {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     NextChamber(AliTRDdigitsManager */*man*/, UInt_t **/*trackletContainer*/=NULL, UShort_t **/*errorCodeContainer*/=NULL) {TRD_NOIMP(); return 0;}\r
+  virtual Bool_t    Init() {TRD_NOIMP(); return -1;}     \r
+\r
+  virtual Bool_t    SetRawVersion(Int_t /*fraw*/) {TRD_NOIMP(); return 0;} \r
+  virtual void      SetNoErrorWarning() {TRD_NOIMP();}\r
+  \r
+  virtual Bool_t    IsCurrentPadShared() const {TRD_NOIMP(); return 0;}\r
+  virtual void      SetSharedPadReadout(Bool_t /*fv*/) {TRD_NOIMP();} \r
+  virtual Bool_t    IsDataZeroSuppressed() const {TRD_NOIMP(); return 0;}\r
+  \r
+  virtual Bool_t    SetReader(AliRawReader */*reader*/) {TRD_NOIMP(); return 0;} \r
+          \r
+  virtual Bool_t    IsTrackletEnableBitSet() const {TRD_NOIMP(); return 0;}\r
+  virtual Bool_t    IsStackActive(Int_t /*is*/) const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetNofActiveStacks() const {TRD_NOIMP(); return 0;}\r
+  virtual UInt_t   *GetSMstreamPosition() const {TRD_NOIMP(); return 0;}\r
+           \r
+  virtual Bool_t    IsSMbufferClean() const {TRD_NOIMP(); return 0;}\r
+    \r
+  virtual Bool_t    IsLinkActiveInStack(Int_t /*is*/, Int_t /*il*/) const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetActiveLinksInStack(Int_t /*is*/) const {TRD_NOIMP(); return 0;}\r
+           \r
+  virtual Int_t     GetSpecialRawVersion() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetMajorRawVersion() const {TRD_NOIMP(); return 0;}  \r
+  virtual Int_t     GetRawVersion() const {TRD_NOIMP(); return 0;}       \r
+  virtual Int_t     GetMinorRawVersion() const {TRD_NOIMP(); return 0;}  \r
+\r
+  virtual Int_t     GetSM() const {TRD_NOIMP(); return 0;}   \r
+  virtual Int_t     GetLayer() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetStack() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetSide() const {TRD_NOIMP(); return 0;} \r
+  virtual Int_t     GetDCS() const {TRD_NOIMP(); return 0;}  \r
+\r
+  virtual Int_t     GetROC() const {TRD_NOIMP(); return 0;}  \r
+  virtual Int_t     GetNumberOfTimeBins() const {TRD_NOIMP(); return 0;} \r
+  virtual UInt_t    GetBunchCrossCounter() const {TRD_NOIMP(); return 0;}\r
+  virtual UInt_t    GetPreTriggerCounter() const {TRD_NOIMP(); return 0;}\r
+  virtual UInt_t    GetPreTriggerPhase() const {TRD_NOIMP(); return 0;}          \r
+\r
+  virtual Int_t     GetRow() const {TRD_NOIMP(); return 0;}   \r
+  virtual Int_t     GetCol() const {TRD_NOIMP(); return 0;}   \r
+  virtual Int_t     GetRowMax() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetColMax() const {TRD_NOIMP(); return 0;}\r
+\r
+  // compatibility\r
+  virtual Int_t     GetMaxRow() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetMaxCol() const {TRD_NOIMP(); return 0;}\r
+\r
+  virtual Int_t     GetDET() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetDet() const {TRD_NOIMP(); return 0;}\r
+           \r
+  virtual Int_t     GetROB() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetMCM() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetEventNumber() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     IsMCMcorrupted() const {TRD_NOIMP(); return 0;}\r
+\r
+  virtual Int_t    *GetSignals() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetADC() const {TRD_NOIMP(); return 0;}\r
+  virtual Int_t     GetTimeBin() const {TRD_NOIMP(); return 0;}\r
+\r
+  virtual Int_t     GetCommonAdditive() const {TRD_NOIMP(); return 0;}\r
\r
+  //----------------------------------------------------------\r
\r
+ private:\r
+\r
+  static Int_t fgRawStreamVersion;           // Raw stream version number\r
+\r
+  ClassDef(AliTRDrawStreamBase, 0)           // TRD raw stream base class\r
+\r
+}; //clas def end\r
+\r
+#endif\r