]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/AliHLTMUONRecHitsBlockStruct.h
Bug fix for https://savannah.cern.ch/bugs/?61603
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONRecHitsBlockStruct.h
CommitLineData
26a4668d 1#ifndef ALIHLTMUONRECHITSBLOCKSTRUCT_H
2#define ALIHLTMUONRECHITSBLOCKSTRUCT_H
6845529b 3/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
26a4668d 5
1d8ae082 6// $Id$
26a4668d 7
8/**
9 * @file AliHLTMUONRecHitsBlockStruct.h
10 * @author Indranil Das <indra.das@saha.ac.in>,
11 * Artur Szostak <artursz@iafrica.com>
83d66053 12 * @date 17 May 2007
6845529b 13 * @brief Definition of internal dimuon HLT reconstructed hit data block structure.
1d8ae082 14 *
26a4668d 15 * The structures are defined with C linkage since C generally gives us more
16 * binary compatibility between compilers.
17 */
18
19#include "AliHLTMUONDataTypes.h"
20
21extern "C"
22{
23
24/**
25 * A 3D reconstructed hit point structure.
26 * These are used to store the hits reconstructed on the tracking or trigger
27 * chambers.
28 * Reconstructed hit values of (0, 0, 0) indicate an invalid or nil hit.
29 */
30struct AliHLTMUONRecHitStruct
31{
a090ff22 32 // The flags word constains the following bit fields (bit 31 is most
33 // significant):
34 //
35 // bits: [ 31 -- 16 ][ 15 -- 12 ][ 11 --- 0 ]
36 // field: reserved chamber detElemId
37 //
38 // Where we have,
39 // reserved bits must be set to zero.
40 // chamber - specifies the chamber number in the range [0..13], 0xF for invalid.
41 // detElemId - specifies the detector element ID number.
42 AliHLTUInt32_t fFlags;
43
26a4668d 44 AliHLTFloat32_t fX; // X coordinate.
45 AliHLTFloat32_t fY; // Y coordinate.
46 AliHLTFloat32_t fZ; // Z coordinate.
47};
48
49/**
50 * AliHLTMUONRecHitsBlockStruct defines the format of the internal
51 * reconstructed hit data block.
52 */
53struct AliHLTMUONRecHitsBlockStruct
54{
6845529b 55 AliHLTMUONDataBlockHeader fHeader; // Common data block header
56
57 // Array of reconstructed hits.
23ad6161 58 //AliHLTMUONRecHitStruct fHit[/*fHeader.fNrecords*/];
26a4668d 59};
60
61} // extern "C"
62
63
64/**
65 * Stream operator for usage with std::ostream classes which prints the
66 * reconstructed hit in the following format: {fX = xx, fY = yy, fZ = zz}
67 */
68inline std::ostream& operator << (
69 std::ostream& stream, const AliHLTMUONRecHitStruct& hit
70 )
71{
a090ff22 72 stream << "{fFlags = " << std::showbase << std::hex
73 << hit.fFlags << std::dec << ", fX = " << hit.fX
74 << ", fY = " << hit.fY << ", fZ = " << hit.fZ << "}";
26a4668d 75 return stream;
76}
77
78/**
79 * Stream operator for usage with std::ostream classes which prints the
80 * AliHLTMUONRecHitsBlockStruct in the following format:
6845529b 81 * {fHeader = xx, fHit[] = [{..}, {..}, ...]}
26a4668d 82 */
6845529b 83std::ostream& operator << (
26a4668d 84 std::ostream& stream, const AliHLTMUONRecHitsBlockStruct& block
6845529b 85 );
26a4668d 86
87
88inline bool operator == (
89 const AliHLTMUONRecHitStruct& a, const AliHLTMUONRecHitStruct& b
90 )
91{
a090ff22 92 return a.fFlags == b.fFlags and a.fX == b.fX and a.fY == b.fY and a.fZ == b.fZ;
26a4668d 93}
94
95inline bool operator != (
96 const AliHLTMUONRecHitStruct& a, const AliHLTMUONRecHitStruct& b
97 )
98{
99 return not operator == (a, b);
100}
101
102
6845529b 103bool operator == (
104 const AliHLTMUONRecHitsBlockStruct& a,
105 const AliHLTMUONRecHitsBlockStruct& b
106 );
26a4668d 107
108inline bool operator != (
6845529b 109 const AliHLTMUONRecHitsBlockStruct& a,
110 const AliHLTMUONRecHitsBlockStruct& b
26a4668d 111 )
112{
113 return not operator == (a, b);
114}
115
116#endif // ALIHLTMUONRECHITSBLOCKSTRUCT_H