Renaming AliHLTReconstructorBase to AliHLTPluginBase to reflect the
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTOUTDigitReader.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTOUTDIGITREADER_H
5 #define ALIHLTOUTDIGITREADER_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   AliHLTOUTDigitReader.h
11     @author Matthias Richter
12     @date   
13     @brief  HLTOUT data wrapper for simulated AliRoot HLT digit data.
14 */
15
16 #include "AliHLTOUTHomerCollection.h"
17 #include "TString.h"
18
19 class AliRawReader;
20 class AliHLTHOMERReader;
21 class TTree;
22 class TFile;
23 class TArrayC;
24
25 /**
26  * @class AliHLTOUTDigitReader
27  * Handler of HLTOUT data for simulated HLT digit input.
28  */
29 class AliHLTOUTDigitReader : public AliHLTOUTHomerCollection {
30  public:
31   /** constructor */
32   AliHLTOUTDigitReader(int event=-1, AliHLTEsdManager* pEsdManager=NULL, const char* digitFile="HLT.Digits.root");
33   /** destructor */
34   virtual ~AliHLTOUTDigitReader();
35
36  protected:
37   // interface functions of AliHLTOUTHomerCollection
38   Bool_t ReadNextData(UChar_t*& data);
39   int Reset();
40   int GetDataSize();
41   const AliRawDataHeader* GetDataHeader();
42   void SelectEquipment(int equipmentType, int minEquipmentId = -1, int maxEquipmentId = -1);
43   int GetEquipmentId();
44
45  private:
46   /** copy constructor prohibited */
47   AliHLTOUTDigitReader(const AliHLTOUTDigitReader&);
48   /** assignment operator prohibited */
49   AliHLTOUTDigitReader& operator=(const AliHLTOUTDigitReader&);
50
51   /**
52    * Read the data from the root file and HLTOUT raw tree.
53    * Retrieve the number of branches and allocate arrays acording
54    * to that. After initialization of the arrays and variables, the
55    * event fEnvent is read.
56    */
57   bool ReadArrays();
58
59   /**
60    * Cleanup tree and data arrays.
61    */
62   int CloseTree();
63
64   /**
65    * Set the RunLoader as parameter
66    * The function is for internal use only in conjunction with the
67    * AliHLTOUT::New() functions.
68    */
69   void SetParam(TTree* pDigitTree, int event=-1);
70
71   /** name of the digit file */
72   TString fDigitFileName; //! transient
73
74   /** the root file for the HLT 'digit' output */
75   TFile* fpDigitFile; //!transient
76
77   /** the tree for the HLT 'digit' output */
78   TTree* fpDigitTree; //!transient
79
80   /** min DDL id for equipment selection */
81   int fMinDDL; //!transient
82
83   /** max DDL id for equipment selection */
84   int fMaxDDL; //!transient
85
86   /** array of digit data read from tree */
87   TArrayC** fppDigitArrays; //!transient
88
89   /** array of equipment ids for the corresponding data blocks in fppDigitArrays */
90   int* fpEquipments; //!transient
91
92   /** number of DDL objects -> size of the arrays */
93   int fNofDDLs; //!transient
94
95   /** current position in the array */
96   int fCurrent; //!transient
97
98   ClassDef(AliHLTOUTDigitReader, 0)
99 };
100 #endif