]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RAW/AliCaloRawStream.h
https://savannah.cern.ch/bugs/index.php?98544
[u/mrichter/AliRoot.git] / RAW / AliCaloRawStream.h
index 320e8e14bbcf00ec0c9d2005dcf5cc253f6c3ccc..884426b94219a613a75281aa2322d5fe8b825bf6 100644 (file)
@@ -14,6 +14,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 // --- ROOT system ---
+#include "TString.h"
 
 // --- AliRoot header files ---
 #include "AliAltroRawStream.h"
@@ -23,7 +24,7 @@ class AliAltroMapping;
 class AliCaloRawStream: public AliAltroRawStream {
 
 public :
-  AliCaloRawStream(AliRawReader* rawReader,  TString calo);
+  AliCaloRawStream(AliRawReader* rawReader,  TString calo, AliAltroMapping **mapping = NULL);
   virtual ~AliCaloRawStream();
  
   virtual void             Reset();
@@ -38,8 +39,20 @@ public :
   Bool_t           IsNewModule()   const {return GetModule() != GetPrevModule();}
   Bool_t           IsNewRow()      const {return (GetRow() != GetPrevRow()) || IsNewModule();}
   Bool_t           IsNewColumn()   const {return (GetColumn() != GetPrevColumn()) || IsNewRow();}
-  Bool_t           IsLowGain()     const {return (!fGain);} 
   Int_t            GetNRCU() const {return fNRCU;}
+  Int_t            GetNSides() const {return fNSides;}
+  TString          GetCalorimeter() const {return fCalo;}
+  enum EAliCaloFlag { kLowGain=0, kHighGain=1, kTRUData=2, kLEDMonData=3 };
+  Bool_t           IsLowGain()     const {return (fCaloFlag == kLowGain);}
+  Bool_t           IsHighGain()    const {return (fCaloFlag == kHighGain);}
+  Bool_t           IsTRUData()     const {return (fCaloFlag == kTRUData);}
+  Bool_t           IsLEDMonData()  const {return (fCaloFlag == kLEDMonData);} 
+
+  Int_t GetCaloFlag() const { return fCaloFlag; } 
+  Int_t GetFilter() const { return fFilter; } 
+
+  void SkipData(EAliCaloFlag caloFlag=kLEDMonData) 
+    { fFilter |= (1<<caloFlag); }
 
 protected:
 
@@ -54,11 +67,15 @@ protected:
   Int_t            fPrevRow;      // index of previous row
   Int_t            fColumn;       // index of current column
   Int_t            fPrevColumn;   // index of previous column
-  Bool_t          fGain;         // low (0) or (1) high gain
+  Int_t            fCaloFlag;     // low (0) or (1) high gain; see enum EAliCaloFlag above
+  Int_t            fFilter; // default 0 = let everything through
   Int_t            fNRCU;   // number of RCU per (super)module
+  Int_t            fNSides;   // Division of EMCal in "A" "C" sides
+  TString          fCalo; // Calorimeter name
+  Bool_t           fExternalMapping;   // use external mapping or create a default one
   AliAltroMapping *fMapping[4];   // pointers to ALTRO mapping
 
-  ClassDef(AliCaloRawStream, 0)   // class for reading PHOS/EMCAL raw digits
+  ClassDef(AliCaloRawStream, 1)   // class for reading PHOS/EMCAL raw digits
 
 };