Line data Source code
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 19 May 2007
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"
20 : #include "AliMUONTriggerDDLDecoderEventHandler.h"
21 :
22 : extern "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 : */
29 : struct AliHLTMUONTrigRecInfoStruct
30 : {
31 : AliHLTInt32_t fTrigRecId; // The corresponding trigger record ID this
32 : // debug information corresponds to. -1 == invalid.
33 :
34 : AliHLTInt32_t fDetElemId[4]; // Detector ID numbers from AliRoot geometry
35 : // on which the hit clusters were found.
36 : // fDetElemId[0] is for chamber 11, fDetElemId[1]
37 : // for chamber 12 etc.
38 :
39 : // The parameters used for momentum estimation:
40 : AliHLTFloat32_t fZmiddle; // Z position in the middle of the magnetic field in centimetres.
41 : AliHLTFloat32_t fBl; // The integrated magnetic field in (T.m) tesla metres.
42 :
43 : AliMUONLocalInfoStruct fL0Struct; // Copy of the L0 local trigger structure bits.
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.
46 : };
47 :
48 : /**
49 : * AliHLTMUONTrigRecsDebugBlockStruct defines the format of the internal
50 : * data block for storing debugging information for trigger records.
51 : */
52 : struct AliHLTMUONTrigRecsDebugBlockStruct
53 : {
54 : AliHLTMUONDataBlockHeader fHeader; // Common data block header
55 :
56 : // Array of trigger records.
57 : //AliHLTMUONTrigRecInfoStruct fTrigRecInfo[/*fHeader.fNrecords*/];
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:
66 : * {fTrigRecId = xx, fDetElemId = [aa, bb, cc, dd], fZmiddle = yy, fBl = zz}
67 : */
68 : std::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 : */
77 : std::ostream& operator << (
78 : std::ostream& stream, const AliHLTMUONTrigRecsDebugBlockStruct& block
79 : );
80 :
81 :
82 : bool operator == (
83 : const AliHLTMUONTrigRecInfoStruct& a,
84 : const AliHLTMUONTrigRecInfoStruct& b
85 : );
86 :
87 : inline bool operator != (
88 : const AliHLTMUONTrigRecInfoStruct& a,
89 : const AliHLTMUONTrigRecInfoStruct& b
90 : )
91 : {
92 0 : return not operator == (a, b);
93 : }
94 :
95 :
96 : bool operator == (
97 : const AliHLTMUONTrigRecsDebugBlockStruct& a,
98 : const AliHLTMUONTrigRecsDebugBlockStruct& b
99 : );
100 :
101 : inline bool operator != (
102 : const AliHLTMUONTrigRecsDebugBlockStruct& a,
103 : const AliHLTMUONTrigRecsDebugBlockStruct& b
104 : )
105 : {
106 : return not operator == (a, b);
107 : }
108 :
109 : #endif // ALIHLTMUONTRIGRECSDEBUGBLOCKSTRUCT_H
|