]>
Commit | Line | Data |
---|---|---|
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 | |
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 | ||
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 | */ | |
52 | struct 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 | */ |
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 | ||
462e3880 | 82 | bool operator == ( |
c8ec7c7e | 83 | const AliHLTMUONTrigRecInfoStruct& a, |
84 | const AliHLTMUONTrigRecInfoStruct& b | |
462e3880 | 85 | ); |
c8ec7c7e | 86 | |
87 | inline bool operator != ( | |
88 | const AliHLTMUONTrigRecInfoStruct& a, | |
89 | const AliHLTMUONTrigRecInfoStruct& b | |
90 | ) | |
91 | { | |
92 | 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 |