1 #ifndef ALIHLTMUONCLUSTERSBLOCKSTRUCT_H
2 #define ALIHLTMUONCLUSTERSBLOCKSTRUCT_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 * @file AliHLTMUONClustersBlockStruct.h
10 * @author Artur Szostak <artursz@iafrica.com>
12 * @brief Definition of internal dimuon HLT block structure containing
13 * debugging information about clusters and their corresponding
16 * The structures are defined with C linkage since C generally gives us more
17 * binary compatibility between compilers.
20 #include "AliHLTMUONDataTypes.h"
21 #include "AliHLTMUONRecHitsBlockStruct.h"
28 * Debugging information about a cluster and its reconstructed hit.
30 struct AliHLTMUONClusterStruct
32 AliHLTInt32_t fId; // Unique ID for the cluster. It must be at
33 // least unique for any given event. -1 == invalid.
35 AliHLTMUONRecHitStruct fHit; // Corresponding reconstructed hit.
37 AliHLTInt32_t fDetElemId; // Detector ID number from AliRoot geometry
38 // on which the cluster was found.
40 AliHLTUInt32_t fNchannels; // Number of channels/pads in the cluster.
44 * AliHLTMUONClusterBlockStruct defines the format of the internal cluster
47 struct AliHLTMUONClustersBlockStruct
49 AliHLTMUONDataBlockHeader fHeader; // Common data block header
52 AliHLTMUONClusterStruct fCluster[/*fHeader.fNrecords*/];
59 * Stream operator for usage with std::ostream classes which prints the
60 * AliHLTMUONClusterStruct in the following format:
61 * {fId = xx, fHit = {...}, fDetElemId = yy, fNchannels = zz}
63 std::ostream& operator << (
64 std::ostream& stream, const AliHLTMUONClusterStruct& cluster
68 * Stream operator for usage with std::ostream classes which prints the
69 * AliHLTMUONClustersBlockStruct in the following format:
70 * {fHeader = xx, fCluster[] = [{..}, {..}, ...]}
72 std::ostream& operator << (
73 std::ostream& stream, const AliHLTMUONClustersBlockStruct& block
77 inline bool operator == (
78 const AliHLTMUONClusterStruct& a,
79 const AliHLTMUONClusterStruct& b
82 return a.fId == b.fId and a.fHit == b.fHit and
83 a.fDetElemId == b.fDetElemId and a.fNchannels == b.fNchannels;
86 inline bool operator != (
87 const AliHLTMUONClusterStruct& a,
88 const AliHLTMUONClusterStruct& b
91 return not operator == (a, b);
96 const AliHLTMUONClustersBlockStruct& a,
97 const AliHLTMUONClustersBlockStruct& b
100 inline bool operator != (
101 const AliHLTMUONClustersBlockStruct& a,
102 const AliHLTMUONClustersBlockStruct& b
105 return not operator == (a, b);
108 #endif // ALIHLTMUONCLUSTERSBLOCKSTRUCT_H