]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/src/AliL3MemHandler.h
Bugfix in AliL3FileHandler::GetDigitsTree.
[u/mrichter/AliRoot.git] / HLT / src / AliL3MemHandler.h
index e7ca8804224a8bf2c30af9c0374d1f309db84cec..0e7c0295ef38e58a6d746a758bf6954e891e853b 100644 (file)
@@ -2,10 +2,11 @@
 #define ALIL3MEMHANDLER_H
 
 #include "AliL3RootTypes.h"
+#include "AliL3Transform.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include "AliL3DigitData.h"
-#include "AliL3Transform.h"
+
 class AliL3SpacePointData;
 class AliL3DigitRowData;
 class AliL3TrackSegmentData;
@@ -14,9 +15,7 @@ class AliL3RandomPointData;
 
 class AliL3MemHandler{
  private:
-  AliL3Transform *fTransformer;//!
-  FILE *fInBinary;//!
-  FILE *fOutBinary;//!
+  
   Byte_t *fPt;//!
   UInt_t fSize;
 
@@ -43,6 +42,7 @@ class AliL3MemHandler{
                       UInt_t row,UShort_t pad,UShort_t time,UShort_t charge);
   void AddDataRandom(AliL3DigitData *data,UInt_t & ndata,
                       UInt_t row,UShort_t pad,UShort_t time,UShort_t charge);
+  
 
  protected:
   Int_t fRowMin;
@@ -50,17 +50,18 @@ class AliL3MemHandler{
   Int_t fSlice;
   Int_t fPatch;
 
-  Int_t fEtaMinTimeBin[174];
-  Int_t fEtaMaxTimeBin[174];
+  Int_t fEtaMinTimeBin[176];
+  Int_t fEtaMaxTimeBin[176];
+  
+  FILE *fInBinary;//!
+  FILE *fOutBinary;//!
   
-
  public:
   AliL3MemHandler();
   virtual ~AliL3MemHandler();
   
   void Reset(){CloseBinaryInput();CloseBinaryOutput();Free();}  
-  void Init(AliL3Transform *t){fTransformer = t;}
-  void Init(Int_t s,Int_t p,Int_t* row){fSlice=s;fPatch=p;fRowMin=row[0];fRowMax=row[1]; ResetROI();}
+  void Init(Int_t s,Int_t p, Int_t *r=0);
 
   Bool_t SetBinaryInput(char *name);
   Bool_t SetBinaryInput(FILE *file);
@@ -91,16 +92,17 @@ class AliL3MemHandler{
   Bool_t CompMemory2CompBinary(UInt_t nrow,UInt_t *comp, UInt_t size=0);
   Bool_t CompBinary2CompMemory(UInt_t & nrow,UInt_t *comp);
 
-  AliL3DigitRowData *CompBinary2Memory(UInt_t & nrow);
-  Bool_t Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data);
+  virtual AliL3DigitRowData *CompBinary2Memory(UInt_t & nrow);
+  virtual Bool_t Memory2CompBinary(UInt_t nrow,AliL3DigitRowData *data);
+  
   UInt_t GetNRow(UInt_t *comp,UInt_t size);
 
   //Point IO
   Bool_t Memory2Binary(UInt_t npoint,AliL3SpacePointData *data);
   Bool_t Binary2Memory(UInt_t & npoint,AliL3SpacePointData *data);
-  Bool_t Transform(UInt_t npoint,AliL3SpacePointData *data,
-                              Int_t slice, AliL3Transform* trans);
-
+  Bool_t Transform(UInt_t npoint,AliL3SpacePointData *data,Int_t slice);
+  static void UpdateRowPointer(AliL3DigitRowData *&tempPt);
+  
   //Track IO
   Bool_t Memory2Binary(UInt_t ntrack,AliL3TrackSegmentData *data);
   Bool_t Binary2Memory(UInt_t & ntrack,AliL3TrackSegmentData *data);
@@ -111,8 +113,9 @@ class AliL3MemHandler{
   Bool_t Memory2TrackArray(UInt_t ntrack,AliL3TrackSegmentData *data,
                                              AliL3TrackArray *array);
   Bool_t Memory2TrackArray(UInt_t ntrack,AliL3TrackSegmentData *data,
-                   AliL3TrackArray *array,Int_t slice, AliL3Transform* trans);
-
+                          AliL3TrackArray *array,Int_t slice);
+  
+  
   //Memory Allocation
   UInt_t GetAllocatedSize(){return fSize;}  
   UInt_t GetFileSize();
@@ -123,9 +126,31 @@ class AliL3MemHandler{
   Byte_t *Allocate(UInt_t size);
   Byte_t *Allocate();  // allocate size of Binary Input File
   Byte_t *Allocate(AliL3TrackArray *array);
+  Byte_t *GetDataPointer(UInt_t &size) {size = fSize; return fPt;}
   void   Free();
   
-  ClassDef(AliL3MemHandler,1) 
+  //Getters:
+  Int_t GetRowMin(){return fRowMin;}
+  Int_t GetRowMax(){return fRowMax;}
+  Int_t GetSlice(){return fSlice;}
+  Int_t GetPatch(){return fPatch;}
+  
+  //virtual functions:
+  virtual void FreeDigitsTree() {return;}
+  virtual Bool_t SetAliInput(char *name){return 0;}
+  virtual void CloseAliInput(){return;} 
+  virtual Bool_t IsDigit(){return 0;}
+  virtual Bool_t SetMCOutput(char *name){return 0;}
+  virtual Bool_t SetMCOutput(FILE *file){return 0;}
+  virtual void CloseMCOutput(){return;}
+  virtual Bool_t AliDigits2Binary(Int_t event=0){return 0;}
+  virtual AliL3DigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0){return 0;}
+  virtual Bool_t AliDigits2CompBinary(Int_t event=0){return 0;}  
+  virtual void AliDigits2RootFile(AliL3DigitRowData *rowPt,Char_t *new_digitsfile){return;}
+  virtual Bool_t AliPoints2Binary(){return 0;}
+  virtual AliL3SpacePointData *AliPoints2Memory(UInt_t & npoint){return 0;}
+
+  ClassDef(AliL3MemHandler,1) // Memory handler class
 };
 
 inline Int_t  AliL3MemHandler::ComparePoints(UInt_t row,UShort_t pad,UShort_t time){
@@ -148,4 +173,5 @@ inline Int_t AliL3MemHandler::CompareDigits(AliL3RandomDigitData *a,AliL3RandomD
   return 1;
 }
 
+
 #endif