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 */
9 * @file AliHLTMUONTrigRecsDebugBlockStruct.h
10 * @author Artur Szostak <artursz@iafrica.com>
12 * @brief Definition of internal dimuon HLT data structures for storing debugging
13 * information about trigger records.
15 * The structures are defined with C linkage since C generally gives us more
16 * binary compatibility between compilers.
19 #include "AliHLTMUONDataTypes.h"
20 #include "AliMUONTriggerDDLDecoderEventHandler.h"
26 * Debug trigger record structures contain debug information about the trigger
27 * records that were decoded from the dimuon hardware trigger electronics.
29 struct AliHLTMUONTrigRecInfoStruct
31 AliHLTInt32_t fTrigRecId; // The corresponding trigger record ID this
32 // debug information corresponds to. -1 == invalid.
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.
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.
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.
49 * AliHLTMUONTrigRecsDebugBlockStruct defines the format of the internal
50 * data block for storing debugging information for trigger records.
52 struct AliHLTMUONTrigRecsDebugBlockStruct
54 AliHLTMUONDataBlockHeader fHeader; // Common data block header
56 // Array of trigger records.
57 //AliHLTMUONTrigRecInfoStruct fTrigRecInfo[/*fHeader.fNrecords*/];
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}
68 std::ostream& operator << (
69 std::ostream& stream, const AliHLTMUONTrigRecInfoStruct& info
73 * Stream operator for usage with std::ostream classes which prints the
74 * AliHLTMUONTrigRecsDebugBlockStruct in the following format:
75 * {fHeader = xx, fTrigRecInfo[] = [{..}, {..}, ...]}
77 std::ostream& operator << (
78 std::ostream& stream, const AliHLTMUONTrigRecsDebugBlockStruct& block
83 const AliHLTMUONTrigRecInfoStruct& a,
84 const AliHLTMUONTrigRecInfoStruct& b
87 inline bool operator != (
88 const AliHLTMUONTrigRecInfoStruct& a,
89 const AliHLTMUONTrigRecInfoStruct& b
92 return not operator == (a, b);
97 const AliHLTMUONTrigRecsDebugBlockStruct& a,
98 const AliHLTMUONTrigRecsDebugBlockStruct& b
101 inline bool operator != (
102 const AliHLTMUONTrigRecsDebugBlockStruct& a,
103 const AliHLTMUONTrigRecsDebugBlockStruct& b
106 return not operator == (a, b);
109 #endif // ALIHLTMUONTRIGRECSDEBUGBLOCKSTRUCT_H