Changing to using char** rather than const char** for main() due to coverty warning.
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONChannelsBlockStruct.cxx
index c2e7e8e..c2ef4ad 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* $Id$ */
+// $Id$
 
-/**
- * @file   AliHLTMUONChannelsBlockStruct.cxx
- * @author Artur Szostak <artursz@iafrica.com>
- * @date   
- * @brief  Implementation of the stream and comparison operators.
- */
+///
+/// @file   AliHLTMUONChannelsBlockStruct.cxx
+/// @author Artur Szostak <artursz@iafrica.com>
+/// @date   18 May 2007
+/// @brief  Implementation of the stream and comparison operators.
+///
+/// The channels blocks are internal dimuon HLT block structures containing
+/// debugging information about channels that belong to reconstructed
+/// hit clusters.
+///
 
 #include "AliHLTMUONChannelsBlockStruct.h"
 #include "AliHLTMUONUtils.h"
@@ -31,6 +35,7 @@ std::ostream& operator << (
        )
 {
        stream  << "{fClusterId = " << channel.fClusterId
+               << ", fBusPatch = " << channel.fBusPatch
                << ", fManu = " << channel.fManu
                << ", fChannelAddress = " << channel.fChannelAddress
                << ", fSignal = " << channel.fSignal
@@ -46,10 +51,12 @@ std::ostream& operator << (
 {
        assert( AliHLTMUONUtils::IntegrityOk(block) );
 
+       const AliHLTMUONChannelStruct* channel =
+               reinterpret_cast<const AliHLTMUONChannelStruct*>(&block + 1);
        stream  << "{fHeader = " << block.fHeader << ", fChannel[] = [";
-       if (block.fHeader.fNrecords > 0) stream << block.fChannel[0];
+       if (block.fHeader.fNrecords > 0) stream << channel[0];
        for (AliHLTUInt32_t i = 1; i < block.fHeader.fNrecords; i++)
-               stream << ", " << block.fChannel[i];
+               stream << ", " << channel[i];
        stream << "]}";
        return stream;
 }
@@ -62,12 +69,17 @@ bool operator == (
 {
        assert( AliHLTMUONUtils::IntegrityOk(a) );
        assert( AliHLTMUONUtils::IntegrityOk(b) );
+       
+       const AliHLTMUONChannelStruct* channelA =
+               reinterpret_cast<const AliHLTMUONChannelStruct*>(&a + 1);
+       const AliHLTMUONChannelStruct* channelB =
+               reinterpret_cast<const AliHLTMUONChannelStruct*>(&b + 1);
 
        // First check if the blocks have the same header. If they do then check
        // if every channel is the same. In either case if we find a difference
        // return false.
        if (a.fHeader != b.fHeader) return false;
        for (AliHLTUInt32_t i = 0; i < a.fHeader.fNrecords; i++)
-               if (a.fChannel[i] != b.fChannel[i]) return false;
+               if (channelA[i] != channelB[i]) return false;
        return true;
 }