]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/rec/AliHLTOUTDigitReader.h
activating individual HLT simulations from digits and raw data
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTOUTDigitReader.h
CommitLineData
c5123824 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"
032c5e5e 17#include "TString.h"
c5123824 18
19class AliRawReader;
20class AliHLTHOMERReader;
21class TTree;
22class TFile;
23class TArrayC;
24
25/**
26 * @class AliHLTOUTDigitReader
27 * Handler of HLTOUT data for simulated HLT digit input.
28 */
29class AliHLTOUTDigitReader : public AliHLTOUTHomerCollection {
30 public:
032c5e5e 31 /** constructor */
32 AliHLTOUTDigitReader(int event=-1, AliHLTEsdManager* pEsdManager=NULL, const char* digitFile="HLT.Digits.root");
c5123824 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
c1292031 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
466d4e62 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
032c5e5e 77 /** name of the digit file */
78 TString fDigitFileName; //! transient
79
c5123824 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 */
102 int fCurrent; //!transient
103
104 ClassDef(AliHLTOUTDigitReader, 0)
105};
106#endif