1 #ifndef ALIHLTMUONCHANNELSBLOCKSTRUCT_H
2 #define ALIHLTMUONCHANNELSBLOCKSTRUCT_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 * @file AliHLTMUONChannelsBlockStruct.h
10 * @author Artur Szostak <artursz@iafrica.com>
12 * @brief Definition of internal dimuon HLT block structure containing
13 * debugging information about channels that belong to reconstructed
16 * The structures are defined with C linkage since C generally gives us more
17 * binary compatibility between compilers.
20 #include "AliHLTMUONDataTypes.h"
27 * Gives the fired channel/pad information which was considered during
28 * hit reconstruction and correlated into a common cluster.
30 struct AliHLTMUONChannelStruct
32 AliHLTInt32_t fClusterId; // ID corresponding to the cluster this
33 // channel is part of. -1 == invalid.
35 AliHLTUInt16_t fManu; // The MANU address on electronics.
36 AliHLTUInt16_t fChannelAddress; // The channel address on electronics.
37 AliHLTUInt16_t fSignal; // ADC value of signal.
38 AliHLTUInt32_t fRawDataWord; // The raw data word as found in the DDL stream.
42 * AliHLTMUONChannelBlockStruct defines the format of the internal channel
43 * data block corresponding to clusters on the tracking chambers.
45 struct AliHLTMUONChannelsBlockStruct
47 AliHLTMUONDataBlockHeader fHeader; // Common data block header
49 // Array of cluster channels/pads.
51 AliHLTMUONChannelStruct fChannel[/*fHeader.fNrecords*/];
53 AliHLTMUONChannelStruct fChannel[1];
61 * Stream operator for usage with std::ostream classes which prints the
62 * AliHLTMUONChannelStruct in the following format:
63 * {fClusterId = xx, fManu = yy, fChannelAddress = zz, fSignal = ww,
64 * fRawDataWord = 0xXXXXXXXX}
66 std::ostream& operator << (
67 std::ostream& stream, const AliHLTMUONChannelStruct& channel
71 * Stream operator for usage with std::ostream classes which prints the
72 * AliHLTMUONChannelsBlockStruct in the following format:
73 * {fHeader = xx, fChannel[] = [{..}, {..}, ...]}
75 std::ostream& operator << (
76 std::ostream& stream, const AliHLTMUONChannelsBlockStruct& block
80 inline bool operator == (
81 const AliHLTMUONChannelStruct& a,
82 const AliHLTMUONChannelStruct& b
85 return a.fClusterId == b.fClusterId and a.fManu == b.fManu and
86 a.fChannelAddress == b.fChannelAddress and
87 a.fSignal == b.fSignal and a.fRawDataWord == b.fRawDataWord;
90 inline bool operator != (
91 const AliHLTMUONChannelStruct& a,
92 const AliHLTMUONChannelStruct& b
95 return not operator == (a, b);
100 const AliHLTMUONChannelsBlockStruct& a,
101 const AliHLTMUONChannelsBlockStruct& b
104 inline bool operator != (
105 const AliHLTMUONChannelsBlockStruct& a,
106 const AliHLTMUONChannelsBlockStruct& b
109 return not operator == (a, b);
112 #endif // ALIHLTMUONCHANNELSBLOCKSTRUCT_H