Fix for the case of non-existent calibration files
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSSD.h
index bf0fff1..5bb1db0 100644 (file)
@@ -1,27 +1,59 @@
 #ifndef ALIITSRAWSTREAMSSD_H
 #define ALIITSRAWSTREAMSSD_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+/* $Id$ */
+
+///////////////////////////////////////////////////////////////////////////////
+///
+/// This class provides access to ITS SSD digits in raw data.
+//  Revised by Enrico Fragiacomo
+//  Last update: 2007/09/06
+///
+///////////////////////////////////////////////////////////////////////////////
+
 #include "AliITSRawStream.h"
-#include "AliRawReader.h"
+
+class AliRawReader;
 
 
 class AliITSRawStreamSSD: public AliITSRawStream {
   public :
-    AliITSRawStreamSSD();
+    AliITSRawStreamSSD(AliRawReader* rawReader);
+    virtual ~AliITSRawStreamSSD() {};
 
     virtual Bool_t   Next();
 
-    inline Int_t     GetSideFlag() const {return fCoord1;};
-    inline Int_t     GetStrip() const {return fCoord2;};
+    Int_t            GetSideFlag() const {return fCoord1;}
+    Int_t            GetStrip() const {return fCoord2;}
+    Int_t GetDDL() const {return fddl;}
+    Int_t GetAD() const {return fad;}
+    Int_t GetADC() const {return fadc;}
+
+    static Bool_t InitDDLModuleMap();  // Initialize DLL module map
+    static void Setv11HybridDDLMapping();
+    static void SetvPPRasymmFMDDDLMapping();
+
+    enum {kDDLsNumber = 16};      // number of DDLs in SSD
+    enum {kModulesPerDDL = 108};  // number of modules in each DDL
+
+    static Int_t     GetModuleNumber(UInt_t iDDL, UInt_t iModule);
+
+    enum ESSDRawStreamError {
+      kWrongModuleIdErr = 1
+    };
+
+    Int_t fddl;   // ddl
+    Int_t fad;    // ad module
+    Int_t fadc;   // adc
+
+    Bool_t flag;  //
 
-    static const Int_t kDDLsNumber = 16;      // number of DDLs in SSD
-    static const Int_t kModulesPerDDL = 109;  // number of modules in each DDL 
-    static const Int_t kDDLModuleMap[kDDLsNumber][kModulesPerDDL];
+  protected :
+    static Bool_t fgkDDLModuleMapInit; // Module map is initialized or not
+    static Int_t fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL];  // mapping DDL/module -> module number
 
-  private :
-    AliRawReader     fRawReader;    // object for reading the raw data file
     UInt_t           fData;         // data read for file
 
     ClassDef(AliITSRawStreamSSD, 0) // class for reading ITS SSD raw digits