]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/AliHLTMUONTrigRecsDebugBlockStruct.h
HLTqadm
[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
1d8ae082 6// $Id$
c8ec7c7e 7
8/**
9 * @file AliHLTMUONTrigRecsDebugBlockStruct.h
10 * @author Artur Szostak <artursz@iafrica.com>
1d8ae082 11 * @date 19 May 2007
c8ec7c7e 12 * @brief Definition of internal dimuon HLT data structures for storing debugging
13 * information about trigger records.
1d8ae082 14 *
c8ec7c7e 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.
462e3880 44 AliMUONLocalInfoStruct fL0StructPrev; // Copy of the previous L0 local trigger structure bits used. Can be zero if none used.
45 AliMUONLocalInfoStruct fL0StructNext; // Copy of the next L0 local trigger structure bits used. Can be zero if none used.
c8ec7c7e 46};
47
48/**
49 * AliHLTMUONTrigRecsDebugBlockStruct defines the format of the internal
50 * data block for storing debugging information for trigger records.
51 */
52struct AliHLTMUONTrigRecsDebugBlockStruct
53{
54 AliHLTMUONDataBlockHeader fHeader; // Common data block header
55
56 // Array of trigger records.
23ad6161 57 //AliHLTMUONTrigRecInfoStruct fTrigRecInfo[/*fHeader.fNrecords*/];
c8ec7c7e 58};
59
60} // extern "C"
61
62
63/**
64 * Stream operator for usage with std::ostream classes which prints the trigger
65 * record debug information in the following format:
4a8fa4aa 66 * {fTrigRecId = xx, fDetElemId = [aa, bb, cc, dd], fZmiddle = yy, fBl = zz}
c8ec7c7e 67 */
68std::ostream& operator << (
69 std::ostream& stream, const AliHLTMUONTrigRecInfoStruct& info
70 );
71
72/**
73 * Stream operator for usage with std::ostream classes which prints the
74 * AliHLTMUONTrigRecsDebugBlockStruct in the following format:
75 * {fHeader = xx, fTrigRecInfo[] = [{..}, {..}, ...]}
76 */
77std::ostream& operator << (
78 std::ostream& stream, const AliHLTMUONTrigRecsDebugBlockStruct& block
79 );
80
81
462e3880 82bool operator == (
c8ec7c7e 83 const AliHLTMUONTrigRecInfoStruct& a,
84 const AliHLTMUONTrigRecInfoStruct& b
462e3880 85 );
c8ec7c7e 86
87inline bool operator != (
88 const AliHLTMUONTrigRecInfoStruct& a,
89 const AliHLTMUONTrigRecInfoStruct& b
90 )
91{
92 return not operator == (a, b);
93}
94
95
96bool operator == (
97 const AliHLTMUONTrigRecsDebugBlockStruct& a,
98 const AliHLTMUONTrigRecsDebugBlockStruct& b
99 );
100
101inline bool operator != (
102 const AliHLTMUONTrigRecsDebugBlockStruct& a,
103 const AliHLTMUONTrigRecsDebugBlockStruct& b
104 )
105{
106 return not operator == (a, b);
107}
108
109#endif // ALIHLTMUONTRIGRECSDEBUGBLOCKSTRUCT_H