]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/rec/AliHLTOUTDigitReader.h
Support for heavy ions as primary in source.cxx
[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
18 class AliRawReader;
19 class AliHLTHOMERReader;
20 class TTree;
21 class TFile;
22 class TArrayC;
23
24 /**
25  * @class AliHLTOUTDigitReader
26  * Handler of HLTOUT data for simulated HLT digit input.
27  */
28 class AliHLTOUTDigitReader : public AliHLTOUTHomerCollection {
29  public:
30   /** standard constructor */
31   AliHLTOUTDigitReader(int event=-1, AliHLTEsdManager* pEsdManager=NULL);
32   /** destructor */
33   virtual ~AliHLTOUTDigitReader();
34
35  protected:
36   // interface functions of AliHLTOUTHomerCollection
37   Bool_t ReadNextData(UChar_t*& data);
38   int Reset();
39   int GetDataSize();
40   const AliRawDataHeader* GetDataHeader();
41   void SelectEquipment(int equipmentType, int minEquipmentId = -1, int maxEquipmentId = -1);
42   int GetEquipmentId();
43
44  private:
45   /** copy constructor prohibited */
46   AliHLTOUTDigitReader(const AliHLTOUTDigitReader&);
47   /** assignment operator prohibited */
48   AliHLTOUTDigitReader& operator=(const AliHLTOUTDigitReader&);
49
50   /**
51    * Read the data from the root file and HLTOUT raw tree.
52    * Retrieve the number of branches and allocate arrays acording
53    * to that. After initialization of the arrays and variables, the
54    * event fEnvent is read.
55    */
56   bool ReadArrays();
57
58   /**
59    * Cleanup tree and data arrays.
60    */
61   int CloseTree();
62
63   /** the root file for the HLT 'digit' output */
64   TFile* fpDigitFile; //!transient
65
66   /** the tree for the HLT 'digit' output */
67   TTree* fpDigitTree; //!transient
68
69   /** min DDL id for equipment selection */
70   int fMinDDL; //!transient
71
72   /** max DDL id for equipment selection */
73   int fMaxDDL; //!transient
74
75   /** array of digit data read from tree */
76   TArrayC** fppDigitArrays; //!transient
77
78   /** array of equipment ids for the corresponding data blocks in fppDigitArrays */
79   int* fpEquipments; //!transient
80
81   /** number of DDL objects -> size of the arrays */
82   int fNofDDLs; //!transient
83
84   /** current position in the array */
85   int fCurrent; //!transient
86
87   ClassDef(AliHLTOUTDigitReader, 0)
88 };
89 #endif