/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONUtils.h
/// @brief Class containing various dimuon HLT utility routines and macros.
///
+#include "TObject.h"
#include "AliHLTMUONDataTypes.h"
#include <ostream>
struct AliHLTMUONMansoTracksBlockStruct;
struct AliHLTMUONMansoCandidateStruct;
struct AliHLTMUONMansoCandidatesBlockStruct;
+struct AliHLTMUONTrackStruct;
+struct AliHLTMUONTracksBlockStruct;
struct AliHLTMUONTrackDecisionStruct;
struct AliHLTMUONSinglesDecisionBlockStruct;
struct AliHLTMUONPairDecisionStruct;
/**
* This unpacks the AliHLTMUONTriggerRecordStruct::fFlags bits into
* its component fields.
- * @param flags The flags from an AliHLTMUONTriggerRecordStruct structure.
- * @param sign Sets this to the particle sign.
- * @param hitset Sets the array elements to indicate if the corresponding
+ * @param [in] flags The flags from an AliHLTMUONTriggerRecordStruct structure.
+ * @param [out] sign Sets this to the particle sign.
+ * @param [out] hitset Sets the array elements to indicate if the corresponding
* fHits[i] element was set/filled.
*/
static void UnpackTriggerRecordFlags(
/**
* This unpacks the AliHLTMUONRecHitStruct::fFlags bits into
* its component fields.
- * [in] @param flags The flags from an AliHLTMUONRecHitStruct structure.
- * [out] @param chamber Sets the chamber number in the range [0..13].
- * [out] @param detElemId Sets the detector element ID number.
+ * @param [in] flags The flags from an AliHLTMUONRecHitStruct structure.
+ * @param [out] chamber Sets the chamber number in the range [0..13].
+ * @param [out] detElemId Sets the detector element ID number.
*/
static void UnpackRecHitFlags(
AliHLTUInt32_t flags, // [in]
AliHLTUInt16_t& detElemId // [out]
);
+ /**
+ * Returns the detector element ID from the flags bits.
+ * @param [in] flags The flags from an AliHLTMUONRecHitStruct structure.
+ */
+ static AliHLTUInt16_t GetDetElemIdFromFlags(AliHLTUInt32_t flags)
+ {
+ return flags & 0xFFF;
+ }
+
/**
* This packs the given parameters into the bits of a word appropriate
* for AliHLTMUONMansoTrackStruct::fFlags.
/**
* This unpacks the AliHLTMUONMansoTrackStruct::fFlags bits into
* its component fields.
- * @param flags The flags from an AliHLTMUONMansoTrackStruct structure.
- * @param sign Sets this to the particle sign.
- * @param hitset Sets the array elements to indicate if the corresponding
+ * @param [in] flags The flags from an AliHLTMUONMansoTrackStruct structure.
+ * @param [out] sign Sets this to the particle sign.
+ * @param [out] hitset Sets the array elements to indicate if the corresponding
* fHits[i] element was set/filled.
*/
static void UnpackMansoTrackFlags(
{
UnpackTriggerRecordFlags(flags, sign, hitset);
}
+
+ /**
+ * This packs the given parameters into the bits of a word appropriate
+ * for AliHLTMUONTrackStruct::fFlags.
+ * @param sign The particle sign.
+ * @param hitset Flags to indicate if the corresponding fHits[i] elements
+ * was set/filled.
+ * @return Returns the 32 bit packed word.
+ */
+ static AliHLTUInt32_t PackTrackFlags(
+ AliHLTMUONParticleSign sign, const bool hitset[16]
+ );
+
+ /**
+ * This unpacks the AliHLTMUONTrackStruct::fFlags bits into
+ * its component fields.
+ * @param [in] flags The flags from an AliHLTMUONTrackStruct structure.
+ * @param [out] sign Sets this to the particle sign.
+ * @param [out] hitset Sets the array elements to indicate if the corresponding
+ * fHits[i] element was set/filled.
+ */
+ static void UnpackTrackFlags(
+ AliHLTUInt32_t flags, // [in]
+ AliHLTMUONParticleSign& sign, // [out]
+ bool hitset[16] // [out]
+ );
/**
* This packs the given parameters into the bits of a word appropriate
/**
* This unpacks the AliHLTMUONTrackDecisionStruct::fTriggerBits bits into
* its component fields.
- * @param bits The trigger bits from an AliHLTMUONTrackDecisionStruct
+ * @param [in] bits The trigger bits from an AliHLTMUONTrackDecisionStruct
* structure.
- * @param highPt Sets this to the value of the high pt cut bit.
- * @param lowPt Sets this to the value of the low pt cut bit.
+ * @param [out] highPt Sets this to the value of the high pt cut bit.
+ * @param [out] lowPt Sets this to the value of the low pt cut bit.
*/
static void UnpackTrackDecisionBits(
AliHLTUInt32_t bits, // [in]
/**
* This unpacks the AliHLTMUONPairDecisionStruct::fTriggerBits bits into
* its component fields.
- * @param bits The trigger bits from an AliHLTMUONPairDecisionStruct
+ * @param [in] bits The trigger bits from an AliHLTMUONPairDecisionStruct
* structure.
- * @param highMass Sets this to the value of the high invariant mass cut bit.
- * @param lowMass Sets this to the value of the low invariant mass cut bit.
- * @param unlike Sets this if the pair is unlike sign.
- * @param highPtCount Sets this to the high pt count bits.
- * @param lowPtCount Sets this to the low pt count bits.
+ * @param [out] highMass Sets this to the value of the high invariant mass cut bit.
+ * @param [out] lowMass Sets this to the value of the low invariant mass cut bit.
+ * @param [out] unlike Sets this if the pair is unlike sign.
+ * @param [out] highPtCount Sets this to the high pt count bits.
+ * @param [out] lowPtCount Sets this to the low pt count bits.
*/
static void UnpackPairDecisionBits(
AliHLTUInt32_t bits, // [in]
/**
* This unpacks the AliHLTMUONPairDecisionStruct::fTriggerBits bits into
* its component fields.
- * @param bits The Pub/Sub specification word from a data block descriptor.
- * @param ddl The output list of DDLs forming part of the readout. ddl[0]
+ * @param [in] bits The Pub/Sub specification word from a data block descriptor.
+ * @param [out] ddl The output list of DDLs forming part of the readout. ddl[0]
* indicates DDL number 2560, ddl[1] is for DDL 2561 and so
* on up to ddl[19]. ddl[20] and ddl[21] will be for the
* trigger DDLs 2816 and 2817 respectively.
*/
static bool IsSpecValid(AliHLTUInt32_t spec)
{
- AliHLTUInt32_t mask = ~((1 << 22) - 1); // First 22 bits indicate DDL number.
+ AliHLTUInt32_t mask = ~AliHLTUInt32_t((1 << 22) - 1); // First 22 bits indicate DDL number.
return (spec & mask) == 0x0;
}
*/
static bool ContainsDataFromTrigger(AliHLTUInt32_t spec)
{
- AliHLTUInt32_t mask = ((1 << 22) - 1) & ~((1 << 20) - 1);
+ AliHLTUInt32_t mask = AliHLTUInt32_t((1 << 22) - 1) & ~AliHLTUInt32_t((1 << 20) - 1);
return (spec & mask) != 0x0;
}
*/
static bool ContainsDataFromTracker(AliHLTUInt32_t spec)
{
- AliHLTUInt32_t mask = ((1 << 20) - 1);
+ AliHLTUInt32_t mask = AliHLTUInt32_t((1 << 20) - 1);
return (spec & mask) != 0x0;
}
kInvalidDetElementNumber, ///< An invalid detector element ID was found.
kInvalidChamberNumber, ///< An invalid chamber number was found.
kHitIsNil, ///< The hit cannot be set to a nil value.
- kInvalidChannelCount, ///< The number of channels indicated is zero or outside the valid range.
+ kInvalidChannelCountB, ///< The number of channels in the bending plane indicated is zero or outside the valid range.
+ kInvalidChannelCountNB, ///< The number of channels in the non-bending plane indicated is zero or outside the valid range.
+ kInvalidChargeB, ///< The charge for the bending plane does not have a valid value.
+ kInvalidChargeNB, ///< The charge for the non-bending plane does not have a valid value.
kInvalidBusPatchId, ///< The bus patch ID is outside the valid range.
kInvalidManuId, ///< The MANU ID is outside the valid range.
kInvalidChannelAddress, ///< The MANU channel address is outside the valid range.
kDataWordDifferent, ///< The raw data word is different from the unpacked values.
kChiSquareInvalid, ///< The chi squared value must be a positive value or -1 indicating a fitting error.
kMomentumVectorNotZero, ///< The chi sqaured value is set to -1, but momentum vector not zero.
+ kMomentumParamsNotZero, ///< The chi sqaured value is set to -1, but fitted momentum parameters are not zero.
+ kDCAVertexNotZero, ///< The chi sqaured value is set to -1, but DCA vertex is not zero.
kRoiRadiusInvalid, ///< The region of interest radius is invalid.
kHitNotWithinRoi, ///< A tracks hit is not within the corresponding region of interest.
kPtValueNotValid, ///< The pT value is not positive nor -1 indicating an invalid value.
* supposed type of the trigger records data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the trigger debug information data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the reconstructed hits data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the clusters data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the channels data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the Manso tracks data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the Manso candidates data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
return HeaderOk(block, reason, count);
}
+ /**
+ * Method used to check if the header information corresponds to the
+ * supposed type of the tracks data block given.
+ * This method will return either kHeaderContainsWrongType or
+ * kHeaderContainsWrongRecordWidth as the reason code.
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
+ * by this pointer will be filled with the reason code describing why
+ * the header is not valid, if and only if a problem is found with
+ * the data.
+ * \returns true if there is no problem with the header and false otherwise.
+ */
+ static bool HeaderOk(const AliHLTMUONTracksBlockStruct& block, WhyNotValid* reason = NULL)
+ {
+ AliHLTUInt32_t count = 1;
+ return HeaderOk(block, reason, count);
+ }
+
/**
* Method used to check if the header information corresponds to the
* supposed type of the single tracks dHLT trigger decision data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
* supposed type of the track pairs dHLT trigger decision data block.
* This method will return either kHeaderContainsWrongType or
* kHeaderContainsWrongRecordWidth as the reason code.
- * [in] \param block The data block to check.
- * [out] \param reason If this is not NULL, then the variable pointed to
+ * \param [in] block The data block to check.
+ * \param [out] reason If this is not NULL, then the variable pointed to
* by this pointer will be filled with the reason code describing why
* the header is not valid, if and only if a problem is found with
* the data.
WhyNotValid* reason, AliHLTUInt32_t& reasonCount
);
+ static bool HeaderOk(
+ const AliHLTMUONTracksBlockStruct& block,
+ WhyNotValid* reason, AliHLTUInt32_t& reasonCount
+ );
+
static bool HeaderOk(
const AliHLTMUONSinglesDecisionBlockStruct& block,
WhyNotValid* reason, AliHLTUInt32_t& reasonCount
/**
* This method is used to check more extensively if the integrity of the
* trigger record structure is OK and returns true in that case.
- * [in] \param tr The trigger record structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] tr The trigger record structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the structure and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The trigger record data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The trigger record data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the trigger record that had a problem. This value will
* only contain a valid value if the method RecordNumberWasSet(*reason)
* returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* trigger record debug information structure is OK and returns true in that case.
- * [in] \param trigInfo The trigger record debug information structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] trigInfo The trigger record debug information structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the structure and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The trigger record debugging information data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The trigger record debugging information data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the trigger record debug information structure that had
* a problem. This value will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* reconstructed hit structure is OK and returns true in that case.
- * [in] \param hit The reconstructed hit structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] hit The reconstructed hit structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the data and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The reconstructed hits data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The reconstructed hits data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the cluster structure that had a problem. This value
* will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* cluster data structure is OK and returns true in that case.
- * [in] \param cluster The cluster structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] cluster The cluster structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the data and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The clusters data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The clusters data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the cluster structure that had a problem. This value
* will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* channel data structure is OK and returns true in that case.
- * [in] \param cluster The channel structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] cluster The channel structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the data and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The ADC channels data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The ADC channels data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the channel structure that had a problem. This value
* will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* Manso track structure is OK and returns true in that case.
- * [in] \param track The Manso track structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] track The Manso track structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the structure and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The Manso track data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The Manso track data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the Manso track structure that had a problem.
* This value will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* Manso track candidate structure is OK and returns true in that case.
- * [in] \param candidate The Manso track candidate structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] candidate The Manso track candidate structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the structure and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The Manso track candidate data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The Manso track candidate data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the Manso track candidate structure that had a problem.
* This value will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
return IntegrityOk(block, reason, recordNum, count);
}
+ /**
+ * This method is used to check more extensively if the integrity of the
+ * full track structure is OK and returns true in that case.
+ * \param [in] track The track structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
+ * the reason code describing why the structure is not valid, if and
+ * only if a problem is found with the data.
+ * \returns true if there is no problem with the structure and false otherwise.
+ */
+ static bool IntegrityOk(
+ const AliHLTMUONTrackStruct& track,
+ WhyNotValid* reason = NULL
+ )
+ {
+ AliHLTUInt32_t count = 1;
+ return IntegrityOk(track, reason, count);
+ }
+
+ /**
+ * This method is used to check more extensively if the integrity of the
+ * dHLT raw internal data block is OK and returns true in that case.
+ * \param [in] block The track data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
+ * the reason code describing why the data block is not valid, if and
+ * only if a problem is found with the data.
+ * \param [out] recordNum If this is not NULL, then it will be filled with
+ * the number of the Manso track structure that had a problem.
+ * This value will only contain a valid value if the method
+ * RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
+ * \returns true if there is no problem with the data and false otherwise.
+ */
+ static bool IntegrityOk(
+ const AliHLTMUONTracksBlockStruct& block,
+ WhyNotValid* reason = NULL, AliHLTUInt32_t* recordNum = NULL
+ )
+ {
+ AliHLTUInt32_t count = 1;
+ return IntegrityOk(block, reason, recordNum, count);
+ }
+
/**
* This method is used to check more extensively if the integrity of the
* single track trigger decision structure is OK and returns true in that case.
- * [in] \param decision The trigger decision structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] decision The trigger decision structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the structure and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The single track trigger decision data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The single track trigger decision data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the single track trigger decision structure that had
* a problem. This value will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
/**
* This method is used to check more extensively if the integrity of the
* track pair trigger decision structure is OK and returns true in that case.
- * [in] \param decision The trigger decision structure to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] decision The trigger decision structure to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the structure is not valid, if and
* only if a problem is found with the data.
* \returns true if there is no problem with the structure and false otherwise.
/**
* This method is used to check more extensively if the integrity of the
* dHLT raw internal data block is OK and returns true in that case.
- * [in] \param block The track pair trigger decision data block to check.
- * [out] \param reason If this is not NULL, then it will be filled with
+ * \param [in] block The track pair trigger decision data block to check.
+ * \param [out] reason If this is not NULL, then it will be filled with
* the reason code describing why the data block is not valid, if and
* only if a problem is found with the data.
- * [out] \param recordNum If this is not NULL, then it will be filled with
+ * \param [out] recordNum If this is not NULL, then it will be filled with
* the number of the track pairs trigger decision structure that had
* a problem. This value will only contain a valid value if the method
* RecordNumberWasSet(*reason) returns true. Thus, 'reason' must be set.
AliHLTUInt32_t& reasonCount
);
+ static bool IntegrityOk(
+ const AliHLTMUONTrackStruct& track,
+ WhyNotValid* reason, AliHLTUInt32_t& reasonCount
+ );
+
+ static bool IntegrityOk(
+ const AliHLTMUONTracksBlockStruct& block,
+ WhyNotValid* reason, AliHLTUInt32_t* recordNum,
+ AliHLTUInt32_t& reasonCount
+ );
+
static bool IntegrityOk(
const AliHLTMUONTrackDecisionStruct& decision,
WhyNotValid* reason, AliHLTUInt32_t& reasonCount
static bool RecordNumberWasSet(WhyNotValid reason);
private:
- // Should never have to create or destroy this object.
- AliHLTMUONUtils();
- ~AliHLTMUONUtils();
+
+ // Should never have to create, copy or destroy this object.
+ AliHLTMUONUtils() {}
+ AliHLTMUONUtils(const AliHLTMUONUtils& obj);
+ virtual ~AliHLTMUONUtils() {}
+ AliHLTMUONUtils& operator = (const AliHLTMUONUtils& obj);
+
+ ClassDef(AliHLTMUONUtils, 0); // Interface for helpful dHLT utility methods.
};
//_____________________________________________________________________________
// information into the dimuon HLT code. Its usage is meant to be for generating
// traces of the program which are only useful during full scale debugging.
// Log messages should use the standard HLT logging mechanisms.
-// The output is only generated in programs compiled with the DEBUG directive
+// The output is only generated in programs compiled with the DEBUGTRACE directive
// defined. Here is a usage example:
//
// // statements...
// DebugTrace("x = " << x << " and y = 0x" << std::hex << y );
// // statements...
//
-#ifdef DEBUG
+#ifdef DEBUGTRACE
# include <iostream>
# define DebugTrace(message) {std::cout << message << std::endl;}
#else // DEBUG