]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCFileHandler.h
effC++ and warnings
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCFileHandler.h
1 // @(#) $Id$
2 // Original: AliHLTFileHandler.h,v 1.19 2004/06/11 16:06:33 loizides 
3
4 #ifndef ALIHLTTPCFILEHANDLER_H
5 #define ALIHLTTPCFILEHANDLER_H
6
7 #include "AliHLTTPCMemHandler.h"
8
9 class TClonesArray;
10
11 class AliSimDigits;
12 class AliTPCParam;
13 #include <AliRunLoader.h>
14
15 class TObject;
16 class TFile;
17 class TTree;
18 #include "AliHLTLogging.h"
19
20 class AliHLTTPCSpacePointData;
21 class AliHLTTPCDigitRowData;
22 class AliHLTTPCTrackSegmentData;
23 class AliHLTTPCTrackArray;
24
25 /**
26  * class AliHLTTPCFileHandler
27  * This is the input interface class for the TPC tracking code before conversion to
28  * the HLT component framework.
29  * 
30  */
31 class AliHLTTPCFileHandler:public AliHLTTPCMemHandler, public AliHLTLogging {
32
33  public:
34   /** standard constructor */
35   AliHLTTPCFileHandler(Bool_t b=kFALSE);
36   /** not a valid copy constructor, defined according to effective C++ style */
37   AliHLTTPCFileHandler(const AliHLTTPCFileHandler&);
38   /** not a valid assignment op, but defined according to effective C++ style */
39   AliHLTTPCFileHandler& operator=(const AliHLTTPCFileHandler&);
40   /** destructor */
41   virtual ~AliHLTTPCFileHandler();
42
43   void FreeDigitsTree();
44   static void CleanStaticIndex();
45   static Int_t SaveStaticIndex(Char_t *prefix=0,Int_t event=0);
46   static Int_t LoadStaticIndex(Char_t *prefix=0,Int_t event=0);
47
48   Bool_t SetAliInput(Char_t *name);
49   Bool_t SetAliInput(AliRunLoader *runLoader);
50   void CloseAliInput(); 
51   Bool_t IsDigit(Int_t event);
52   
53   Bool_t SetMCOutput(Char_t *name);
54   Bool_t SetMCOutput(FILE *file);
55   void CloseMCOutput();
56
57   //Digit IO
58   Bool_t AliDigits2Binary(Int_t event=0,Bool_t altro=kFALSE);
59   AliHLTTPCDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0); //Allocates Memory
60   AliHLTTPCDigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t eventmerge=kFALSE); 
61   //Allocates Memory
62   Bool_t AliDigits2CompBinary(Int_t event=0,Bool_t altro=kFALSE);  
63   void AliDigits2RootFile(AliHLTTPCDigitRowData *rowPt,Char_t *newDigitsfile);
64
65   //Point IO
66   Bool_t AliPoints2Binary(Int_t eventn=0);
67   AliHLTTPCSpacePointData *AliPoints2Memory(UInt_t & npoint,Int_t eventn=0);//Allocates Memory
68
69  protected:
70   AliRunLoader *fInAli;//!
71   Bool_t fUseRunLoader; //use runloader
72
73   AliTPCParam *fParam;//!
74   AliSimDigits *fDigits;//!
75
76   TTree *fDigitsTree;//!
77   FILE *fMC;//!
78   
79   Bool_t fIndexCreated;   //is index created
80   Int_t  fIndex[36][159]; //stores index over digitstree 
81                           //for faster access w/o ASVVERSION
82   Bool_t fUseStaticIndex; //take static index
83   static Bool_t fgStaticIndexCreated;   //global index created
84   static Int_t  fgStaticIndex[36][159]; //global index
85
86   virtual Bool_t SetAliInput();
87   Bool_t GetDigitsTree(Int_t event);
88   Bool_t CreateIndex();  //create the index
89
90   ClassDef(AliHLTTPCFileHandler,1)   //Filehandler class
91 };
92
93 #endif