X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=HLT%2FTPCLib%2FAliHLTTPCFileHandler.h;h=b95e190666c9ac68653a6269feb09a0fc4fb1483;hp=ecc6745fb81a6f464b4f2f3b70fd3eb4dcc32a88;hb=b4d2a4c4d9259c18bd5d87c1b40fc7e1e6000edf;hpb=a6c02c859086baa09c104eba8886e2970781e516 diff --git a/HLT/TPCLib/AliHLTTPCFileHandler.h b/HLT/TPCLib/AliHLTTPCFileHandler.h index ecc6745fb81..b95e190666c 100644 --- a/HLT/TPCLib/AliHLTTPCFileHandler.h +++ b/HLT/TPCLib/AliHLTTPCFileHandler.h @@ -1,57 +1,55 @@ // @(#) $Id$ +// Original: AliHLTFileHandler.h,v 1.19 2004/06/11 16:06:33 loizides #ifndef ALIHLTTPCFILEHANDLER_H #define ALIHLTTPCFILEHANDLER_H - +/* This file is property of and copyright by the ALICE HLT Project * + * ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/** @file AliHLTTPCFileHandler.h + @author U. Frankenfeld, A. Vestbo, C. Loizides, maintained by + Matthias Richter + @date + @brief file input for the TPC tracking code before migration to the + HLT component framework + +// see below for class documentation +// or +// refer to README to build package +// or +// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt + */ #include "AliHLTTPCMemHandler.h" class TClonesArray; -#include -#include -#ifdef use_newio +class AliSimDigits; +class AliTPCParam; #include -#endif -#include -#include -#include +class TObject; +class TFile; +class TTree; class AliHLTTPCSpacePointData; class AliHLTTPCDigitRowData; class AliHLTTPCTrackSegmentData; class AliHLTTPCTrackArray; -class AliHLTTPCFileHandler:public AliHLTTPCMemHandler{ - - protected: -#ifdef use_newio - AliRunLoader *fInAli;//! - Bool_t fUseRunLoader; //use runloader -#else - TFile *fInAli;//! -#endif - - AliTPCParam *fParam;//! - AliSimDigits *fDigits;//! - - TTree *fDigitsTree;//! - FILE *fMC;//! - - Bool_t fIndexCreated; //is index created - Int_t fIndex[36][159]; //stores index over digitstree - //for faster access w/o ASVVERSION - Bool_t fUseStaticIndex; //take static index - static Bool_t fgStaticIndexCreated; //global index created - static Int_t fgStaticIndex[36][159]; //global index - - virtual Bool_t SetAliInput(); - Bool_t GetDigitsTree(Int_t event); - Bool_t CreateIndex(); //create the index +/** + * class AliHLTTPCFileHandler + * This is the input interface class for the TPC tracking code before conversion to + * the HLT component framework. + * + */ +class AliHLTTPCFileHandler:public AliHLTTPCMemHandler { public: + /** standard constructor */ AliHLTTPCFileHandler(Bool_t b=kFALSE); - ~AliHLTTPCFileHandler(); + /** destructor */ + virtual ~AliHLTTPCFileHandler(); void FreeDigitsTree(); static void CleanStaticIndex(); @@ -59,11 +57,7 @@ class AliHLTTPCFileHandler:public AliHLTTPCMemHandler{ static Int_t LoadStaticIndex(Char_t *prefix=0,Int_t event=0); Bool_t SetAliInput(Char_t *name); - Bool_t SetAliInput(TFile *file); -#ifdef use_newio Bool_t SetAliInput(AliRunLoader *runLoader); -#else -#endif void CloseAliInput(); Bool_t IsDigit(Int_t event); @@ -72,18 +66,107 @@ class AliHLTTPCFileHandler:public AliHLTTPCMemHandler{ void CloseMCOutput(); //Digit IO - Bool_t AliDigits2Binary(Int_t event=0,Bool_t altro=kFALSE); - AliHLTTPCDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0); //Allocates Memory + + /** + * Write AliDigits from AliRoot file to binary file. + * @param event event no + * @param altro use @ref AliDigits2Memory if kFALSE and @ref + * AliDigits2Memory if kTRUE + * + * Calls the @ref AliHLTTPCMemHandler::Memory2BinaryFile to write the file. + */ + Bool_t AliDigits2BinaryFile(Int_t event=0,Bool_t altro=kFALSE); + + /** + * Convert AliDigits from AliRoot file to HLT Digit data in memory. + * Read and convert/write digits to memory buffer. If no target buffer available, + * an appropriate buffer is allocated.
+ * If the variable pTgtSize is prvided, the total size of the result array is + * returned. \b Note: the total size differs as the @ref AliHLTTPCDigitRowData + * structs are variable in size depending on the no of digits for that particular + * row. + * @param nrow [OUT] number of rows + * @param event the event no + * @param tgtBuffer target buffer (optional) + * @param pTgtSize size of target buffer (optional) + * @return pointer to array, size in nrow
+ * NULL in case of failure, required size in pTgtSize + */ + //TODO: Check that the following change works. It should, but just double check. + AliHLTTPCDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event, Byte_t* tgtBuffer, UInt_t* pTgtSize=NULL); + + AliHLTTPCDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0) + { + return AliDigits2Memory(nrow, event, NULL, NULL); + } + + /** + * Convert and filetr AliDigits from AliRoot file to HLT Digit data in memory. + * This functions is the same as @ref AliDigits2Memory but in addition it + * filters out single timebins, which is noise. The timebins which + * are removed are timebins which have the 4 zero neighbours; + * (pad-1,time),(pad+1,time),(pad,time-1),(pad,time+1). + * + * This is legacy code, the two function contain big portions of identical code + * will be merged. + * See @ref AliDigits2Memory for detailed description. + */ AliHLTTPCDigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t eventmerge=kFALSE); - //Allocates Memory + + /** + * Write AliDigits from AliRoot file to binary file. + * @param event event no + * @param altro use @ref AliDigits2Memory if kFALSE and @ref + * AliDigits2Memory if kTRUE + * + * \b Note: pretty much the same as @ref AliDigits2BinaryFile. + * Calls the @ref AliHLTTPCMemHandler::Memory2CompBinary to write the file. + */ Bool_t AliDigits2CompBinary(Int_t event=0,Bool_t altro=kFALSE); - void AliDigits2RootFile(AliHLTTPCDigitRowData *rowPt,Char_t *new_digitsfile); + + /** + * Write the data stored in rowPt, into a new AliROOT file. + * The data is stored in the AliROOT format + * This is specially a nice thing if you have modified data, and wants to run it + * through the offline reconstruction chain. + * The arguments is a pointer to the data, and the name of the new AliROOT file. + * Remember to pass the original AliROOT file (the one that contains the original + * simulated data) to this object, in order to retrieve the MC id's of the digits. + */ + void AliDigits2RootFile(AliHLTTPCDigitRowData *rowPt,Char_t *newDigitsfile); //Point IO Bool_t AliPoints2Binary(Int_t eventn=0); AliHLTTPCSpacePointData *AliPoints2Memory(UInt_t & npoint,Int_t eventn=0);//Allocates Memory - ClassDef(AliHLTTPCFileHandler,1) //Filehandler class + protected: + AliRunLoader *fInAli;//! + Bool_t fUseRunLoader; //use runloader + + AliTPCParam *fParam;//! + AliSimDigits *fDigits;//! + + TTree *fDigitsTree;//! + FILE *fMC;//! + + Bool_t fIndexCreated; //is index created + Int_t fIndex[fgkNSlice][fgkNRow]; //stores index over digitstree + //for faster access w/o ASVVERSION + Bool_t fUseStaticIndex; //take static index + static Bool_t fgStaticIndexCreated; //global index created + static Int_t fgStaticIndex[fgkNSlice][fgkNRow]; //global index + + virtual Bool_t SetAliInput(); + Bool_t GetDigitsTree(Int_t event); + Bool_t CreateIndex(); //create the index + + private: + /** copy constructor prohibited */ + AliHLTTPCFileHandler(const AliHLTTPCFileHandler&); + /** assignment operator prohibited */ + AliHLTTPCFileHandler& operator=(const AliHLTTPCFileHandler&); + + ClassDef(AliHLTTPCFileHandler,2) //HLT TPC Filehandler IO class }; #endif