]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/AliHLTMUONTrigRecsDebugBlockStruct.h
updated cluster histo component for ITS (Gaute)
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONTrigRecsDebugBlockStruct.h
CommitLineData
c8ec7c7e 1#ifndef ALIHLTMUONTRIGRECSDEBUGBLOCKSTRUCT_H
2#define ALIHLTMUONTRIGRECSDEBUGBLOCKSTRUCT_H
3/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8/**
9 * @file AliHLTMUONTrigRecsDebugBlockStruct.h
10 * @author Artur Szostak <artursz@iafrica.com>
11 * @date
12 * @brief Definition of internal dimuon HLT data structures for storing debugging
13 * information about trigger records.
14 *
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"
a090ff22 20#include "AliMUONTriggerDDLDecoderEventHandler.h"
c8ec7c7e 21
22extern "C"
23{
24
25/**
26 * Debug trigger record structures contain debug information about the trigger
27 * records that were decoded from the dimuon hardware trigger electronics.
28 */
29struct AliHLTMUONTrigRecInfoStruct
30{
31 AliHLTInt32_t fTrigRecId; // The corresponding trigger record ID this
32 // debug information corresponds to. -1 == invalid.
33
4a8fa4aa 34 AliHLTInt32_t fDetElemId[4]; // Detector ID numbers from AliRoot geometry
c8ec7c7e 35 // on which the hit clusters were found.
4a8fa4aa 36 // fDetElemId[0] is for chamber 11, fDetElemId[1]
37 // for chamber 12 etc.
c8ec7c7e 38
39 // The parameters used for momentum estimation:
484ce6c7 40 AliHLTFloat32_t fZmiddle; // Z position in the middle of the magnetic field in centimetres.
c8ec7c7e 41 AliHLTFloat32_t fBl; // The integrated magnetic field in (T.m) tesla metres.
a090ff22 42
43 AliMUONLocalInfoStruct fL0Struct; // Copy of the L0 local trigger structure bits.
c8ec7c7e 44};
45
46/**
47 * AliHLTMUONTrigRecsDebugBlockStruct defines the format of the internal
48 * data block for storing debugging information for trigger records.
49 */
50struct AliHLTMUONTrigRecsDebugBlockStruct
51{
52 AliHLTMUONDataBlockHeader fHeader; // Common data block header
53
54 // Array of trigger records.
23ad6161 55 //AliHLTMUONTrigRecInfoStruct fTrigRecInfo[/*fHeader.fNrecords*/];
c8ec7c7e 56};
57
58} // extern "C"
59
60
61/**
62 * Stream operator for usage with std::ostream classes which prints the trigger
63 * record debug information in the following format:
4a8fa4aa 64 * {fTrigRecId = xx, fDetElemId = [aa, bb, cc, dd], fZmiddle = yy, fBl = zz}
c8ec7c7e 65 */
66std::ostream& operator << (
67 std::ostream& stream, const AliHLTMUONTrigRecInfoStruct& info
68 );
69
70/**
71 * Stream operator for usage with std::ostream classes which prints the
72 * AliHLTMUONTrigRecsDebugBlockStruct in the following format:
73 * {fHeader = xx, fTrigRecInfo[] = [{..}, {..}, ...]}
74 */
75std::ostream& operator << (
76 std::ostream& stream, const AliHLTMUONTrigRecsDebugBlockStruct& block
77 );
78
79
80inline bool operator == (
81 const AliHLTMUONTrigRecInfoStruct& a,
82 const AliHLTMUONTrigRecInfoStruct& b
83 )
84{
85 return a.fTrigRecId == b.fTrigRecId and a.fDetElemId == b.fDetElemId
a090ff22 86 and a.fZmiddle == b.fZmiddle and a.fBl == b.fBl
87 and a.fL0Struct.fX2X1 == b.fL0Struct.fX2X1
88 and a.fL0Struct.fX4X3 == b.fL0Struct.fX4X3
89 and a.fL0Struct.fY2Y1 == b.fL0Struct.fY2Y1
90 and a.fL0Struct.fY4Y3 == b.fL0Struct.fY4Y3
91 and a.fL0Struct.fTriggerBits == b.fL0Struct.fTriggerBits;
c8ec7c7e 92}
93
94inline bool operator != (
95 const AliHLTMUONTrigRecInfoStruct& a,
96 const AliHLTMUONTrigRecInfoStruct& b
97 )
98{
99 return not operator == (a, b);
100}
101
102
103bool operator == (
104 const AliHLTMUONTrigRecsDebugBlockStruct& a,
105 const AliHLTMUONTrigRecsDebugBlockStruct& b
106 );
107
108inline bool operator != (
109 const AliHLTMUONTrigRecsDebugBlockStruct& a,
110 const AliHLTMUONTrigRecsDebugBlockStruct& b
111 )
112{
113 return not operator == (a, b);
114}
115
116#endif // ALIHLTMUONTRIGRECSDEBUGBLOCKSTRUCT_H