Fixing warnings
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONMansoCandidatesBlockStruct.h
CommitLineData
90a74d7a 1#ifndef ALIHLTMUONMANSOCANDIDATESBLOCKSTRUCT_H
2#define ALIHLTMUONMANSOCANDIDATESBLOCKSTRUCT_H
3/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
1d8ae082 6// $Id$
90a74d7a 7
8/**
9 * @file AliHLTMUONMansoCandidatesBlockStruct.h
10 * @author Artur Szostak <artursz@iafrica.com>
1d8ae082 11 * @date 21 May 2007
12 * @brief Definition of internal dimuon HLT track candidates data block structure generated by the Manso algorithm.
13 *
90a74d7a 14 * The structures are defined with C linkage since C generally gives us more
15 * binary compatibility between compilers.
16 */
17
18#include "AliHLTMUONMansoTracksBlockStruct.h"
19
20extern "C"
21{
22
23/**
24 * Structure containing information about a region of interest (RoI) used in
25 * the Manso algorithm to find track candidates.
26 */
27struct AliHLTMUONMansoRoIStruct
28{
29 AliHLTFloat32_t fX; // The X coordinate for the RoI disc centre.
30 AliHLTFloat32_t fY; // The Y coordinate for the RoI disc centre.
31 AliHLTFloat32_t fZ; // The detection plane Z coordinate in which the RoI is in.
32 AliHLTFloat32_t fRadius; // The radius of the RoI disc.
33};
34
35/**
36 * This structure contains information about a track candidate that was attempted
37 * during track reconstruction in the Manso algorithm. The regions of interests
38 * used are indicated including the partially reconstructed track.
39 */
40struct AliHLTMUONMansoCandidateStruct
41{
42 // The partially of fully reconstructed track.
43 AliHLTMUONMansoTrackStruct fTrack;
44
45 // The regions of interest searched on the various chambers.
46 // fRoI[0] is region of interest on chamber 7, fRoI[1] is on 8 etc...
47 AliHLTMUONMansoRoIStruct fRoI[4];
a090ff22 48
49 // The parameters used for momentum estimation:
50 AliHLTFloat32_t fZmiddle; // Z position in the middle of the magnetic field in centimetres.
51 AliHLTFloat32_t fBl; // The integrated magnetic field in (T.m) tesla metres.
90a74d7a 52};
53
54/**
55 * AliHLTMUONMansoCandidatesBlockStruct defines the format of the internal
56 * Manso track candidates data block.
57 */
58struct AliHLTMUONMansoCandidatesBlockStruct
59{
60 AliHLTMUONDataBlockHeader fHeader; // Common data block header.
61
62 // Array of Manso track candidates.
23ad6161 63 //AliHLTMUONMansoCandidateStruct fCandidate[/*fHeader.fNrecords*/];
90a74d7a 64};
65
66} // extern "C"
67
68
69/**
70 * Stream operator for usage with std::ostream classes which prints the RoI
71 * information in the following format:
72 * {fX = xx, fY = yy, fZ = zz, fRadius = rr}
73 */
74std::ostream& operator << (
75 std::ostream& stream, const AliHLTMUONMansoRoIStruct& roi
76 );
77
78/**
79 * Stream operator for usage with std::ostream classes which prints the track
80 * candidate information in the following format:
a090ff22 81 * {fTrack = xx, fRoI[0] = {...}, fRoI[1] = {...}, fRoI[2] = {...}, fRoI[3] = {...}, fZmiddle = yy, fBl = zz}
90a74d7a 82 */
83std::ostream& operator << (
84 std::ostream& stream, const AliHLTMUONMansoCandidateStruct& candidate
85 );
86
87/**
88 * Stream operator for usage with std::ostream classes which prints the
89 * AliHLTMUONMansoCandidatesBlockStruct in the following format:
90 * {fHeader = xx, fCandidate[] = [{..}, {..}, ...]}
91 */
92std::ostream& operator << (
93 std::ostream& stream,
94 const AliHLTMUONMansoCandidatesBlockStruct& block
95 );
96
97
98inline bool operator == (
99 const AliHLTMUONMansoRoIStruct& a,
100 const AliHLTMUONMansoRoIStruct& b
101 )
102{
103 return a.fX == b.fX and a.fY == b.fY and a.fZ == b.fZ
104 and a.fRadius == b.fRadius;
105}
106
107inline bool operator == (
108 const AliHLTMUONMansoCandidateStruct& a,
109 const AliHLTMUONMansoCandidateStruct& b
110 )
111{
112 return a.fTrack == b.fTrack
113 and a.fRoI[0] == b.fRoI[0] and a.fRoI[1] == b.fRoI[1]
a090ff22 114 and a.fRoI[2] == b.fRoI[2] and a.fRoI[3] == b.fRoI[3]
115 and a.fZmiddle == b.fZmiddle and a.fBl == b.fBl;
90a74d7a 116}
117
118inline bool operator != (
119 const AliHLTMUONMansoCandidateStruct& a,
120 const AliHLTMUONMansoCandidateStruct& b
121 )
122{
123 return not operator == (a, b);
124}
125
126
127bool operator == (
128 const AliHLTMUONMansoCandidatesBlockStruct& a,
129 const AliHLTMUONMansoCandidatesBlockStruct& b
130 );
131
132inline bool operator != (
133 const AliHLTMUONMansoCandidatesBlockStruct& a,
134 const AliHLTMUONMansoCandidatesBlockStruct& b
135 )
136{
137 return not operator == (a, b);
138}
139
140#endif // ALIHLTMUONMANSOCANDIDATESBLOCKSTRUCT_H