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 dHLT channels block structure corresponding to clusters.
14 /// The structures are defined with C linkage since C generally gives us more
15 /// binary compatibility between compilers.
18 #include "AliHLTMUONDataTypes.h"
25 * Gives the fired channel/pad information which was considered during
26 * hit reconstruction and correlated into a common cluster.
28 struct AliHLTMUONChannelStruct
30 AliHLTInt32_t fClusterId; // ID corresponding to the cluster this
31 // channel is part of. -1 == invalid.
33 AliHLTUInt32_t fBusPatch; // Bus patch to which this is connected.
34 AliHLTUInt16_t fManu; // The MANU address on electronics.
35 AliHLTUInt16_t fChannelAddress; // The channel address on electronics.
36 AliHLTUInt32_t fSignal; // ADC value of signal.
37 AliHLTUInt32_t fRawDataWord; // The raw data word as found in the DDL stream.
41 * AliHLTMUONChannelBlockStruct defines the format of the internal channel
42 * data block corresponding to clusters on the tracking chambers.
44 struct AliHLTMUONChannelsBlockStruct
46 AliHLTMUONDataBlockHeader fHeader; // Common data block header
48 // Array of cluster channels/pads.
49 //AliHLTMUONChannelStruct fChannel[/*fHeader.fNrecords*/];
56 * Stream operator for usage with std::ostream classes which prints the
57 * AliHLTMUONChannelStruct in the following format:
58 * {fClusterId = xx, fBusPatch = yy, fManu = zz, fChannelAddress = uu, fSignal = ww,
59 * fRawDataWord = 0xXXXXXXXX}
61 std::ostream& operator << (
62 std::ostream& stream, const AliHLTMUONChannelStruct& channel
66 * Stream operator for usage with std::ostream classes which prints the
67 * AliHLTMUONChannelsBlockStruct in the following format:
68 * {fHeader = xx, fChannel[] = [{..}, {..}, ...]}
70 std::ostream& operator << (
71 std::ostream& stream, const AliHLTMUONChannelsBlockStruct& block
75 inline bool operator == (
76 const AliHLTMUONChannelStruct& a,
77 const AliHLTMUONChannelStruct& b
80 return a.fClusterId == b.fClusterId and a.fBusPatch == b.fBusPatch and
81 a.fManu == b.fManu and a.fChannelAddress == b.fChannelAddress and
82 a.fSignal == b.fSignal and a.fRawDataWord == b.fRawDataWord;
85 inline bool operator != (
86 const AliHLTMUONChannelStruct& a,
87 const AliHLTMUONChannelStruct& b
90 return not operator == (a, b);
95 const AliHLTMUONChannelsBlockStruct& a,
96 const AliHLTMUONChannelsBlockStruct& b
99 inline bool operator != (
100 const AliHLTMUONChannelsBlockStruct& a,
101 const AliHLTMUONChannelsBlockStruct& b
104 return not operator == (a, b);
107 #endif // ALIHLTMUONCHANNELSBLOCKSTRUCT_H