LCOV - code coverage report
Current view: top level - HLT/TPCLib - AliHLTTPCFileHandler.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 2 50.0 %
Date: 2016-06-14 17:26:59 Functions: 1 6 16.7 %

          Line data    Source code
       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             : //* This file is property of and copyright by the ALICE HLT Project        * 
       7             : //* ALICE Experiment at CERN, All rights reserved.                         *
       8             : //* See cxx source for full Copyright notice                               *
       9             : 
      10             : /// @file   AliHLTTPCFileHandler.h
      11             : /// @author U. Frankenfeld, A. Vestbo, C. Loizides, maintained by
      12             : ///         Matthias Richter
      13             : /// @date   
      14             : /// @brief  file input for the TPC tracking code before migration to the
      15             : ///         HLT component framework
      16             : ///
      17             : 
      18             : #include "AliHLTTPCMemHandler.h"
      19             : 
      20             : class TClonesArray;
      21             : 
      22             : class AliSimDigits;
      23             : class AliTPCParam;
      24             : #include <AliRunLoader.h>
      25             : 
      26             : class TObject;
      27             : class TFile;
      28             : class TTree;
      29             : 
      30             : struct AliHLTTPCSpacePointData;
      31             : struct AliHLTTPCDigitRowData;
      32             : struct AliHLTTPCTrackSegmentData;
      33             : class AliHLTTPCTrackArray;
      34             : 
      35             : /**
      36             :  * @class AliHLTTPCFileHandler
      37             :  * This is the input interface class for the TPC tracking code before conversion to
      38             :  * the HLT component framework.
      39             :  * 
      40             :  * @ingroup alihlt_tpc
      41             :  */
      42             : class AliHLTTPCFileHandler:public AliHLTTPCMemHandler {
      43             : 
      44             :  public:
      45             :   /** standard constructor */
      46             :   AliHLTTPCFileHandler(Bool_t b=kFALSE);
      47             :   /** destructor */
      48             :   virtual ~AliHLTTPCFileHandler();
      49             : 
      50             :   void FreeDigitsTree();
      51             :   static void CleanStaticIndex();
      52             :   static Int_t SaveStaticIndex(Char_t *prefix=0,Int_t event=0);
      53             :   static Int_t LoadStaticIndex(Char_t *prefix=0,Int_t event=0);
      54             : 
      55             :   Bool_t SetAliInput(Char_t *name);
      56             :   Bool_t SetAliInput(AliRunLoader *runLoader);
      57             :   void CloseAliInput(); 
      58             :   Bool_t IsDigit(Int_t event);
      59             :   
      60             :   Bool_t SetMCOutput(Char_t *name);
      61             :   Bool_t SetMCOutput(FILE *file);
      62             :   void CloseMCOutput();
      63             : 
      64             :   //Digit IO
      65             : 
      66             :   /**
      67             :    * Write AliDigits from AliRoot file to binary file.
      68             :    * @param event      event no
      69             :    * @param altro      use @ref AliDigits2Memory if kFALSE and @ref
      70             :    *                   AliDigits2Memory if kTRUE
      71             :    *
      72             :    * Calls the @ref AliHLTTPCMemHandler::Memory2BinaryFile to write the file.
      73             :    */
      74             : 
      75             :   Bool_t AliDigits2BinaryFile(Int_t event=0,Bool_t altro=kFALSE);
      76             : 
      77             :   /**
      78             :    * Convert AliDigits from AliRoot file to HLT Digit data in memory.
      79             :    * Read and convert/write digits to memory buffer. If no target buffer available,
      80             :    * an appropriate buffer is allocated.<br>
      81             :    * If the variable pTgtSize is prvided, the total size of the result array is
      82             :    * returned. \b Note: the total size differs as the @ref AliHLTTPCDigitRowData
      83             :    * structs are variable in size depending on the no of digits for that particular
      84             :    * row.
      85             :    * @param nrow       [OUT] number of rows
      86             :    * @param event      the event no
      87             :    * @param tgtBuffer  target buffer (optional)
      88             :    * @param pTgtSize   size of target buffer (optional)
      89             :    * @return pointer to array, size in nrow <br>
      90             :    *         NULL in case of failure, required size in pTgtSize
      91             :    */
      92             :   //TODO: Check that the following change works. It should, but just double check.
      93             :   AliHLTTPCDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event, Byte_t* tgtBuffer, UInt_t* pTgtSize=NULL);
      94             : 
      95             :   AliHLTTPCDigitRowData *AliDigits2Memory(UInt_t & nrow,Int_t event=0)
      96             :   {
      97           0 :     return AliDigits2Memory(nrow, event, NULL, NULL);
      98             :   }
      99             : 
     100             :   /**
     101             :    * Convert and filter AliDigits from AliRoot file to HLT Digit data in memory.
     102             :    * This functions is the same as @ref AliDigits2Memory but in addition it
     103             :    * filters out single timebins, which is noise. The timebins which
     104             :    * are removed are timebins which have the 4 zero neighbours; 
     105             :    * (pad-1,time),(pad+1,time),(pad,time-1),(pad,time+1).
     106             :    *
     107             :    * This is legacy code, the two functions contain big portions of identical code
     108             :    * will be merged.
     109             :    * See @ref AliDigits2Memory for detailed description.
     110             :    */
     111             :   AliHLTTPCDigitRowData *AliAltroDigits2Memory(UInt_t & nrow,Int_t event=0,Bool_t eventmerge=kFALSE); 
     112             : 
     113             :   /**
     114             :    * Convert AliDigits from AliRoot file to Altro data format in memory.
     115             :    */
     116             :   int AliDigits2Altro(Int_t event, Byte_t* tgtBuffer, UInt_t size);
     117             : 
     118             :   /**
     119             :    * Write AliDigits from AliRoot file to binary file.
     120             :    * @param event      event no
     121             :    * @param altro      use @ref AliDigits2Memory if kFALSE and @ref
     122             :    *                   AliDigits2Memory if kTRUE
     123             :    *
     124             :    * \b Note: pretty much the same as @ref AliDigits2BinaryFile.
     125             :    * Calls the @ref AliHLTTPCMemHandler::Memory2CompBinary to write the file.
     126             :    */
     127             :   Bool_t AliDigits2CompBinary(Int_t event=0,Bool_t altro=kFALSE);  
     128             : 
     129             :   //Point IO
     130             : 
     131             :   Bool_t AliPoints2Binary(Int_t eventn=0);
     132             :   // Is this really still used : JMT 2013-03-03 - corresponding IO removed in TPC  
     133             :   //  AliHLTTPCSpacePointData *AliPoints2Memory(UInt_t & npoint,Int_t eventn=0);//Allocates Memory
     134             : 
     135             :  protected:
     136             :   AliRunLoader *fInAli;//!
     137             :   Bool_t fUseRunLoader; //use runloader
     138             : 
     139             :   AliTPCParam *fParam;//!
     140             :   AliSimDigits *fDigits;//!
     141             : 
     142             :   TTree *fDigitsTree;//!
     143             :   FILE *fMC;//!
     144             : 
     145             :   Bool_t fIndexCreated;   //is index created
     146             :   Int_t  fIndex[fgkNSlice][fgkNRow]; //stores index over digitstree 
     147             :                           //for faster access w/o ASVVERSION
     148             :   Bool_t fUseStaticIndex; //take static index
     149             :   static Bool_t fgStaticIndexCreated;   //global index created
     150             :   static Int_t  fgStaticIndex[fgkNSlice][fgkNRow]; //global index
     151             : 
     152             :   virtual Bool_t SetAliInput();
     153             :   Bool_t GetDigitsTree(Int_t event);
     154             :   Bool_t CreateIndex();  //create the index
     155             : 
     156             :  private:
     157             :   /** copy constructor prohibited */
     158             :   AliHLTTPCFileHandler(const AliHLTTPCFileHandler&);
     159             :   /** assignment operator prohibited */
     160             :   AliHLTTPCFileHandler& operator=(const AliHLTTPCFileHandler&);
     161             : 
     162           6 :   ClassDef(AliHLTTPCFileHandler,0)   //HLT TPC Filehandler IO class
     163             : };
     164             : 
     165             : #endif

Generated by: LCOV version 1.11