]>
Commit | Line | Data |
---|---|---|
155ff173 | 1 | //-*- Mode: C++ -*- |
2 | #ifndef ALIHLTHOMERBLOCKDESC_H | |
3 | #define ALIHLTHOMERBLOCKDESC_H | |
4 | ||
5 | /* This file is property of and copyright by the ALICE HLT Project * | |
6 | * ALICE Experiment at CERN, All rights reserved. * | |
7 | * See cxx source for full Copyright notice */ | |
8 | ||
9 | /** @file AliHLTHOMERBlockDesc.h | |
10 | @author Jochen Thaeder | |
11 | @date | |
12 | @brief Container for HOMER Blocks | |
13 | */ | |
14 | ||
15 | // see below for class documentation | |
16 | // or | |
17 | // refer to README to build package | |
18 | // or | |
19 | // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt | |
20 | ||
21 | class AliHLTMessage; | |
22 | ||
23 | #include "TString.h" | |
24 | #include "TObject.h" | |
25 | ||
26 | /** | |
27 | * @class AliHLTHOMERBlockDesc | |
28 | * This class contains the data which comes from 1 block, delivered via the | |
29 | * HOMER interface. It used in order to fill these block in TLists. ( It has | |
30 | * to inherit from TObject ). Further more it reads the specification of the | |
31 | * block and classifies the data as TObject, raw data, or something else. Mainly | |
32 | * used in the AliEVEHOMERManager, as data objects for AliEVE. | |
33 | * | |
34 | * @ingroup alihlt_homer | |
35 | */ | |
36 | class AliHLTHOMERBlockDesc : public TObject { | |
37 | ||
38 | public: | |
39 | ||
40 | /* | |
41 | * --------------------------------------------------------------------------------- | |
42 | * Constructor / Destructor | |
43 | * --------------------------------------------------------------------------------- | |
44 | */ | |
45 | ||
46 | /** standard constructor */ | |
47 | AliHLTHOMERBlockDesc(); | |
48 | ||
49 | /** Constructor, set block data | |
50 | * @param data Pointer to data | |
51 | * @param size Size of data | |
52 | * @param origin Detector | |
53 | * @param dataType HLT data type | |
54 | * @param specification HLT specification | |
55 | */ | |
56 | AliHLTHOMERBlockDesc( void * data, ULong_t size, TString origin, TString dataType, ULong_t specification ); | |
57 | ||
58 | /** destructor */ | |
59 | virtual ~AliHLTHOMERBlockDesc(); | |
60 | ||
61 | /* | |
62 | * --------------------------------------------------------------------------------- | |
63 | * Data Handling - Setter - public | |
64 | * --------------------------------------------------------------------------------- | |
65 | */ | |
66 | ||
67 | /** Set block data | |
68 | * @param data Pointer to data | |
69 | * @param size Size of data | |
70 | * @param origin Detector | |
71 | * @param dataType HLT data type | |
72 | * @param specification HLT specification | |
73 | */ | |
74 | void SetBlock( void * data, ULong_t size, TString origin, TString dataType, ULong_t specification ); | |
75 | ||
76 | /* | |
77 | * --------------------------------------------------------------------------------- | |
78 | * TObject Handling - public | |
79 | * --------------------------------------------------------------------------------- | |
80 | */ | |
81 | ||
82 | /** Returns if block contains a TObject | |
83 | * @return Returns kTRUE if block contains a TObject, kFALSE otherwise. | |
84 | */ | |
85 | Bool_t IsTObject() { return fIsTObject;} | |
86 | ||
87 | /** Returns Pointer to TObject */ | |
88 | TObject* GetTObject(); | |
89 | ||
90 | /* | |
91 | * --------------------------------------------------------------------------------- | |
92 | * Data Handling - Getter - public | |
93 | * --------------------------------------------------------------------------------- | |
94 | */ | |
95 | ||
96 | /** Returns if block contains a raw data, fClassName is not set in this case. | |
97 | * @return Returns kTRUE if block contains raw data, kFALSE otherwise. | |
98 | */ | |
99 | Bool_t IsRawData() { return fIsRawData;} | |
100 | ||
101 | /** Get pointer to data | |
102 | * @return Pointer to data | |
103 | */ | |
104 | void* GetData() { return fData; } | |
105 | ||
106 | /** Get size of data | |
107 | * @return Size of data | |
108 | */ | |
109 | ULong_t GetSize() { return fSize; } | |
110 | ||
111 | /** Get detector of this block | |
112 | * @return Detector name | |
113 | */ | |
114 | TString GetDetector() { return fDetector; } | |
115 | ||
116 | /** Get HLT data type of this block | |
117 | * @return HLT data type | |
118 | */ | |
119 | TString GetDataType() { return fDataType; } | |
120 | ||
121 | /** Get HLT specification of this block | |
122 | * @return HLT specification | |
123 | */ | |
124 | ULong_t GetSpecification() { return fSpecification; } | |
125 | ||
126 | /** Get class name of this block | |
127 | * @return class name | |
128 | */ | |
129 | TString GetClassName() { return fClassName; } | |
130 | ||
131 | /** Get sub detector of this block | |
132 | * @return subdetector | |
133 | */ | |
134 | TString GetSubDetector() { return fSubDetector; } | |
135 | ||
136 | /** Get sub sub detector of this block | |
137 | * @return subsubdetector | |
138 | */ | |
139 | TString GetSubSubDetector() { return fSubSubDetector; } | |
140 | ||
141 | /** Returns kTRUE if HLT specification indicates a subdetector range | |
142 | * @return kTRUE if subdetector range | |
143 | */ | |
144 | Bool_t HasSubDetectorRange() { return fHasSubDetectorRange; } | |
145 | ||
146 | /** Returns kTRUE if HLT specification indicates a subsubdetector range | |
147 | * @return kTRUE if subsubdetector range | |
148 | */ | |
149 | Bool_t HasSubSubDetectorRange() { return fHasSubSubDetectorRange; } | |
150 | ||
151 | ||
152 | private: | |
153 | /** copy constructor prohibited */ | |
154 | AliHLTHOMERBlockDesc(const AliHLTHOMERBlockDesc&); | |
155 | ||
156 | /** assignment operator prohibited */ | |
157 | AliHLTHOMERBlockDesc& operator=(const AliHLTHOMERBlockDesc&); | |
158 | ||
159 | /** Set all additional members*/ | |
160 | void SetBlockParameters(); | |
161 | ||
162 | /** Checks if Block contains a TObject. | |
163 | * If so, set fIsTObject to kTRUE, otherwise kFALSE | |
164 | * @return fIsTObject | |
165 | */ | |
166 | Bool_t CheckIfTObject(); | |
167 | ||
168 | /** Checks if Block contains a TObject raw data. | |
169 | * If so, set fIsRawData to kTRUE, otherwise kFALSE | |
170 | * @return fIsRawData | |
171 | */ | |
172 | Bool_t CheckIfRawData(); | |
173 | /* | |
174 | * --------------------------------------------------------------------------------- | |
175 | * Members - private | |
176 | * --------------------------------------------------------------------------------- | |
177 | */ | |
178 | ||
179 | /** Pointer to data of the block */ | |
180 | void* fData; //! transient | |
181 | ||
182 | /** Size of data */ | |
183 | ULong_t fSize; // see above | |
184 | ||
185 | /** States if block contains a TObject */ | |
186 | Bool_t fIsTObject; // see above | |
187 | ||
188 | /** States if block contains a raw data */ | |
189 | Bool_t fIsRawData; // see above | |
190 | ||
191 | /** AliHTMessage object containg a TObject */ | |
192 | AliHLTMessage* fMessage; //! transient | |
193 | ||
194 | /** Class Name of the block */ | |
195 | TString fClassName; // see above | |
196 | ||
197 | /** Detector Name, e.g. PHOS */ | |
198 | TString fDetector; // see above | |
199 | ||
200 | /** SubDetector Name e.g. MODULE */ | |
201 | TString fSubDetector; // see above | |
202 | ||
203 | /** SubSubDetector Name e.g. PARTITION */ | |
204 | TString fSubSubDetector; // see above | |
205 | ||
206 | /** HLT Specification */ | |
207 | ULong_t fSpecification; // see above | |
208 | ||
209 | /** HLT DataType */ | |
210 | TString fDataType; // see above | |
211 | ||
212 | /** States id block has a subdetector range */ | |
213 | Bool_t fHasSubDetectorRange; // see above | |
214 | ||
215 | /** States id block has a subsubdetector range */ | |
216 | Bool_t fHasSubSubDetectorRange; // see above | |
217 | ||
218 | ClassDef( AliHLTHOMERBlockDesc, 0 ) | |
219 | }; | |
220 | ||
221 | #endif |