Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 :
4 : #ifndef ALIHLTOUTDIGITREADER_H
5 : #define ALIHLTOUTDIGITREADER_H
6 : //* This file is property of and copyright by the *
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 : AliHLTCDHWrapper 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 : /**
72 : * Set name of the digit file as parameter
73 : * Overloaded from AliHLTOUT
74 : */
75 : void SetParam(const char* filename, int event=-1);
76 :
77 : /** name of the digit file */
78 : TString fDigitFileName; //! transient
79 :
80 : /** the root file for the HLT 'digit' output */
81 : TFile* fpDigitFile; //!transient
82 :
83 : /** the tree for the HLT 'digit' output */
84 : TTree* fpDigitTree; //!transient
85 :
86 : /** min DDL id for equipment selection */
87 : int fMinDDL; //!transient
88 :
89 : /** max DDL id for equipment selection */
90 : int fMaxDDL; //!transient
91 :
92 : /** array of digit data read from tree */
93 : TArrayC** fppDigitArrays; //!transient
94 :
95 : /** array of equipment ids for the corresponding data blocks in fppDigitArrays */
96 : int* fpEquipments; //!transient
97 :
98 : /** number of DDL objects -> size of the arrays */
99 : int fNofDDLs; //!transient
100 :
101 : /** current position in the array of DDLs*/
102 : int fCurrentLink; //!transient
103 :
104 6 : ClassDef(AliHLTOUTDigitReader, 0)
105 : };
106 : #endif
|