Fixing up svn Id log tags.
Removing obsolete files.
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONChannelsBlockStruct.cxx
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONChannelsBlockStruct.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONClustersBlockStruct.cxx
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONClustersBlockStruct.h
/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project *
+ * This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
+ * about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONConstants.cxx
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONConstants.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONCountedList.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONDataBlockReader.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 19 May 2007
* @brief Definition of a reader class for internal dimuon HLT raw data blocks.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONDataBlockWriter.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 19 May 2007
* @brief Definition of a writer class for internal dimuon HLT raw data blocks.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONDataTypes.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 18 May 2007
* @brief Declaration of basic data types used in HLT/MUON module.
*
* The types and structs are defined with C linkage since C generally gives us
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONDecision.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONDecision.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONEvent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONRootifierComponent.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file HLTMUONLinkDef.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONList.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
- * @brief Declaration of a singly linked-list class which preallocates memory
- * to give faster online performance.
+ * @date 29 May 2007
+ * @brief Declaration of a singly linked-list class which preallocates memory to give faster online performance.
*/
#include "AliHLTDataTypes.h"
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONMansoCandidatesBlockStruct.cxx
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 21 May 2007
* @brief Implementation of useful stream and comparison operators.
*/
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONMansoCandidatesBlockStruct.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
- * @brief Definition of internal dimuon HLT track candidates data block
- * structure generated by the Manso algorithm.
- *
+ * @date 21 May 2007
+ * @brief Definition of internal dimuon HLT track candidates data block structure generated by the Manso algorithm.
+ *
* The structures are defined with C linkage since C generally gives us more
* binary compatibility between compilers.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTrack.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTrack.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTracksBlockStruct.cxx
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTracksBlockStruct.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONPairsDecisionBlockStruct.cxx
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 21 May 2007
* @brief Implementation of useful stream and comparison operators.
*/
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONPairsDecisionBlockStruct.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
- * @brief Definition of internal dimuon HLT trigger decision data structure
- * containing decision information for pairs of tracks.
- *
+ * @date 21 May 2007
+ * @brief Definition of internal dimuon HLT trigger decision data structure containing decision information for pairs of tracks.
+ *
* The structures are defined with C linkage since C generally gives us more
* binary compatibility between compilers.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONProcessor.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONProcessor.h
* Some common methods useful to all dHLT specific components are implemented
* by this class.
*
+ * The following argument can be inherited by components derived from the
+ * AliHLTMUONProcessor class, as long as the protected methods provided are used
+ * properly and the argument evaluation is handled as indicated in DoInit.
+ * \li -cdbpath <i>path</i> <br>
+ * This allows one to override the path to use for the CDB location.
+ * <i>path</i> must be a valid CDB URI. By default the HLT system framework
+ * sets the CDB path. <br>
+ * \li -run <i>number</i> <br>
+ * This allows one to override the run number to use. <i>number</i> must be
+ * a positive integer number. By default the HLT system framework sets the
+ * run number. <br>
+ * \li -delaysetup <br>
+ * If indicated then part of the initialisation of the component is forcefully
+ * delayed to the first event received, i.e. the Start-of-Run event. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
+ *
* @ingroup alihlt_dimuon_component
*/
class AliHLTMUONProcessor : public AliHLTProcessor
/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project *
+ * This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
+ * about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONRecHit.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONRecHit.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONRecHitsBlockStruct.h
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONRecHitsBlockStruct.h
* Artur Szostak <artursz@iafrica.com>
* @date 17 May 2007
* @brief Definition of internal dimuon HLT reconstructed hit data block structure.
- *
+ *
* The structures are defined with C linkage since C generally gives us more
* binary compatibility between compilers.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONSinglesDecisionBlockStruct.cxx
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 21 May 2007
* @brief Implementation of useful stream and comparison operators.
*/
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONSinglesDecisionBlockStruct.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 21 May 2007
* @brief Definition of internal dimuon HLT trigger decision data structure
* containing decision information for single tracks.
- *
+ *
* The structures are defined with C linkage since C generally gives us more
* binary compatibility between compilers.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONTrigRecsDebugBlockStruct.cxx
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 19 May 2007
* @brief Implementation of useful stream and comparison operators.
*/
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONTrigRecsDebugBlockStruct.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 19 May 2007
* @brief Definition of internal dimuon HLT data structures for storing debugging
* information about trigger records.
- *
+ *
* The structures are defined with C linkage since C generally gives us more
* binary compatibility between compilers.
*/
/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project *
+ * This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
+ * about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONTriggerRecord.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONTriggerRecord.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONTriggerRecordsBlockStruct.cxx
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 18 May 2007
* @brief Implementation of useful stream and comparison operators.
*/
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONTriggerRecordsBlockStruct.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 18 May 2007
* @brief Definition of internal dimuon HLT trigger record data block structure.
- *
+ *
* The structures are defined with C linkage since C generally gives us more
* binary compatibility between compilers.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONUtils.cxx
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONUtils.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONAgent.cxx
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONAgent.h
/// @author Artur Szostak <artursz@iafrica.com>
/// @date 28 May 2007
-/// @brief The HLT module agent for libAliHLTMUON.so which interfaces HLT
-/// components with offline.
+/// @brief The HLT module agent for libAliHLTMUON.so which interfaces HLT components with offline.
///
#include "AliHLTModuleAgent.h"
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: AliHLTMUONDigitPublisherComponent.cxx 26179 2008-05-29 22:27:27Z aszostak $ */
+// $Id: AliHLTMUONDigitPublisherComponent.cxx 26179 2008-05-29 22:27:27Z aszostak $
///
/// @file AliHLTMUONDigitPublisherComponent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: AliHLTMUONDigitPublisherComponent.h 26179 2008-05-29 22:27:27Z aszostak $ */
+// $Id: AliHLTMUONDigitPublisherComponent.h 26179 2008-05-29 22:27:27Z aszostak $
///
/// @file AliHLTMUONDigitPublisherComponent.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONESDMaker.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONESDMaker.h
/**
* @class AliHLTMUONESDMaker
+ * \brief Component for converting dHLT results into ESD format.
+ *
* The component is used to convert dHLT reconstructed data into AliESDEvent
* objects which can be stored in ROOT files during offline reconstruction.
* Only the dHLT track and trigger record data is converted, then filled in the ESD.
* \li -make_minimal_esd <br>
* Indicates that AliESDEvent objects should be created with only the TClonesArray
* for the muon tracks created. (default is to generate all standard ESD objects)<br>
+ * \li -add_rootified_objects <br>
+ * If specified then the any rootified dHLT event data that is found is added to the
+ * ESD list of objects as a custom data object.<br>
* \li -warn_on_unexpected_block <br>
* If set, then warning messages are generated for any data block types that
* were not expected. (default is to generate only debug messages)<br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
*
* @ingroup alihlt_dimuon_component
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONRecHitsSource.cxx
/// @author Artur Szostak <artursz@iafrica.com>
-/// @date
+/// @date 28 May 2007
/// @brief Implementation of the AliHLTMUONRecHitsSource component.
///
#ifndef ALIHLTMUONRECHITSSOURCE_H
#define ALIHLTMUONRECHITSSOURCE_H
/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project *
+ * This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
+ * about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONRecHitsSource.h
/// @author Artur Szostak <artursz@iafrica.com>
-/// @date
+/// @date 28 May 2007
/// @brief Class for generating reconstructed hits data blocks from AliRoot data.
///
/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project *
+ * This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
+ * about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONRootifierComponent.cxx
/// @date 29 Sep 2007
/// @brief Implementation of the AliHLTMUONRootifierComponent component.
///
+/// Implements a component to convert dHLT raw data into TObjects.
#include "AliHLTMUONRootifierComponent.h"
#include "AliHLTMUONEvent.h"
{
/// Inherited from AliHLTComponent. Returns the output data types.
- tgtList.push_back(kAliHLTAnyDataType);
+ tgtList.push_back(AliHLTMUONConstants::RootifiedEventDataType());
return tgtList.size();
}
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONRootifierComponent.h
#include "AliHLTMUONProcessor.h"
/**
- * Converts dHLT raw data blocks into ROOT objects.
+ * \class AliHLTMUONRootifierComponent
+ * \brief Converts dHLT raw data blocks into ROOT objects.
+ *
+ * This component class is used to convert all internal raw dHLT data blocks into
+ * ROOT object that can be stored in '.root' files in a platform independant manner.
+ * This can also make some of the analysis easier because the dHLT internal data
+ * will be available in TObjects.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b MUONRootifier <br>
+ * Library: \b libAliHLTMUON.so <br>
+ * Input Data Types: kAliHLTAnyDataType = "*******:***" <br>
+ * Output Data Types: AliHLTMUONConstants::RootifiedEventDataType() = "ROOTEVNT:MUON" <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * None.
+ *
+ * <h2>Optional arguments:</h2>
+ * \li -warn_on_unexpected_block <br>
+ * This will cause the component to generate warnings when it receives data block
+ * types it does not know how to handle. Without this option the component only
+ * generates debug messages when they are compiled in. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
+ *
+ * <h2>Standard configuration:</h2>
+ * There is no special configuration for this component.
+ *
+ * <h2>Default CDB entries:</h2>
+ * None.
+ *
+ * <h2>Performance:</h2>
+ * A few milliseconds per event.
+ *
+ * <h2>Memory consumption:</h2>
+ * A few MBytes.
+ *
+ * <h2>Output size:</h2>
+ * A few kBytes.
+ *
+ * @ingroup alihlt_dimuon_component
*/
class AliHLTMUONRootifierComponent : public AliHLTMUONProcessor
{
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONTriggerRecordsSource.cxx
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 16 Sep 2007
* @brief Implementation of the AliHLTMUONTriggerRecordsSource component.
*/
#ifndef ALIHLTMUONTRIGGERRECORDSSOURCE_H
#define ALIHLTMUONTRIGGERRECORDSSOURCE_H
/**************************************************************************
- * This file is property of and copyright by the ALICE HLT Project *
+ * This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
+ * about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONTriggerRecordsSource.h
* @author Artur Szostak <artursz@iafrica.com>
- * @date
+ * @date 16 Sep 2007
* @brief Class for generating trigger record data blocks from AliRoot data.
*/
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
////////////////////////////////////////////////////////////////////////////////
//
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
////////////////////////////////////////////////////////////////////////////////
//
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONClusterFinderComponent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONClusterFinderComponent.h
* \li -run <i>number</i> <br>
* Specifies the run number to use, given by <i>number</i>. This option will
* override the current run number automatically set by the HLT framework. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
* \li -tryrecover <br>
* This is a special option to the raw data decoder to turn on logic which will
* try and recover from corrupt raw DDL data. This is off by default. <br>
+ * \li -nostore <br>
+ * If specified then the AliMUONVClusterStore object generated by the offline
+ * reconstruction code is not added to the output data. The default to send this object. <br>
+ * \li -makehits <br>
+ * If specified then the clusters found by the offline reconstruction algorithm are
+ * converted to internal dHLT reconstructed hit format and a reconstructed hits data
+ * block is generated. The default is not to write in dHLT internal format since the
+ * closter store object is already written by default. <br>
*
* <h2>Standard configuration:</h2>
* This component should normally be configured with no extra options in the XML
* subdirectory in the CDB, MUON/Calib and MUON/Align.
*
* <h2>Performance:</h2>
- * A few tens of Hertz.
+ * A few tens of Hertz during online running.
*
* <h2>Memory consumption:</h2>
* A few MBytes.
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONDecisionComponent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONDecisionComponent.h
* are applied. The number of pairs that pass the low or high mass cut are then
* counted. The results are encoded into two data blocks, one for trigger decisions
* for single tracks and another for the track pairs.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b MUONDecisionComponent <br>
+ * Library: \b libAliHLTMUON.so <br>
+ * Input Data Types: AliHLTMUONConstants::MansoTracksBlockDataType() = "MANTRACK:MUON" <br>
+ * Output Data Types: \li AliHLTMUONConstants::SinglesDecisionBlockDataType() = "DECIDSIN:MUON"
+ * \li AliHLTMUONConstants::PairsDecisionBlockDataType() = "DECIDPAR:MUON" <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * None.
+ *
+ * <h2>Optional arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ * \li -lowptcut <i>value</i> <br>
+ * Sets the low pT cut value to use when applying the decision. The <i>value</i>
+ * should be a floating point number and has units GeV/c. If this parameter is
+ * specified then it will not be loaded from CDB. <br>
+ * \li -highptcut <i>value</i> <br>
+ * Sets the high pT cut value to use when applying the decision. The <i>value</i>
+ * should be a floating point number and has units GeV/c. If this parameter is
+ * specified then it will not be loaded from CDB. <br>
+ * \li -lowmasscut <i>value</i> <br>
+ * Sets the low invariant mass cut value to use when applying the decision.
+ * The <i>value</i> should be a floating point number and has units GeV/c^2.
+ * If this parameter is specified then it will not be loaded from CDB. <br>
+ * \li -highmasscut <i>value</i> <br>
+ * Sets the high invariant mass cut value to use when applying the decision.
+ * The <i>value</i> should be a floating point number and has units GeV/c^2.
+ * If this parameter is specified then it will not be loaded from CDB. <br>
+ * \li -no_singles_detail <br>
+ * If specified the detailed decision information for tracks is not added to
+ * the output. Only the scalar values are then present in the output data block
+ * for decisions on single tracks. <br>
+ * \li -no_pairs_detail <br>
+ * If specified the detailed decision information for track pairs is not added
+ * to the output. Only the scalar values are then present in the output data
+ * block for decisions for track pairs. <br>
+ * \li -warn_on_unexpected_block <br>
+ * This will cause the component to generate warnings when it receives data block
+ * types it does not know how to handle. Without this option the component only
+ * generates debug messages when they are compiled in. <br>
+ * \li -cdbpath <i>path</i> <br>
+ * This allows one to override the path to use for the CDB location.
+ * <i>path</i> must be a valid CDB URI. By default the HLT system framework
+ * sets the CDB path. <br>
+ * \li -run <i>number</i> <br>
+ * This allows one to override the run number to use. <i>number</i> must be
+ * a positive integer number. By default the HLT system framework sets the
+ * run number. <br>
+ * \li -delaysetup <br>
+ * If indicated then part of the initialisation of the component is forcefully
+ * delayed to the first event received, i.e. the Start-of-Run event. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
+ *
+ * <h2>Standard configuration:</h2>
+ * The configuration is taken from the CDB by default. It can be overridden with
+ * the command line arguments.
+ *
+ * <h2>Default CDB entries:</h2>
+ * HLT/ConfigMUON/DecisionComponent - Contains a TMap with the cut parameters.
+ *
+ * <h2>Performance:</h2>
+ * For worst case numbers of tracks the decision component requires less than a
+ * millisecond to process an event.
+ *
+ * <h2>Memory consumption:</h2>
+ * This is a linear function of the input data size, but only a fraction. Thus the
+ * memory usage is minimal. It should be under 1 MBytes.
+ *
+ * <h2>Output size:</h2>
+ * This will depend linearly on the number of tracks found. But for nominal
+ * multiplicities this should be less than 16 kBytes.
+ *
+ * @ingroup alihlt_dimuon_component
*/
class AliHLTMUONDecisionComponent : public AliHLTMUONProcessor
{
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///////////////////////////////////////////////
//Author : Indranil Das, SINP, INDIA
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///////////////////////////////////////////////
//Author : Indranil Das, SINP, INDIA
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONHitReconstructorComponent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONHitReconstructorComponent.h
* process in DoEvent.
* If -ddl or -ddlid were not used, then the DDL number will be taken from
* the first block's specification during runtime from the first
- * event (Start-of-Run event).
+ * event (i.e. Start-of-Run event).
* Using the -lut or -dccut arguments will override loading from CDB for a
* delayed setup. <br>
*
* \li -warnifpadskipped <br>
* If this option is set the a warning message is generated for every pad that
* is skipped because it contains invalid value markers in the calibration data. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
*
* <h2>Standard configuration:</h2>
* This component should normally be configured with either of the two sets of
+++ /dev/null
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Author: The ALICE Off-line Project. *
- * Contributors are mentioned in the code where appropriate. *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
- **************************************************************************/
-
-/* $Id$ */
-
-/**
- * @file AliHLTMUONMansoTrackerComponent.cxx
- * @author Artur Szostak <artursz@iafrica.com>
- * @date
- * @brief Implementation of AliHLTMUONMansoTrackerComponent class.
- */
-
-#include "AliHLTMUONMansoTrackerComponent.h"
-#include "Util/AliHLTMUONRecPoint.h"
-#include <stdlib.h>
-#include <errno.h>
-
-namespace
-{
- // this is a global object used for automatic component registration, do not use this
- AliHLTMUONMansoTrackerComponent gAliHLTMUONMansoTrackerComponent;
-}
-
-
-ClassImp(AliHLTMUONMansoTrackerComponent);
-
-
-AliHLTMUONMansoTrackerComponent::AliHLTMUONMansoTrackerComponent()
- :
- fOutputPercentage(100) // By default we copy to the output exactly what we got as input
- {
- }
-
-AliHLTMUONMansoTrackerComponent::~AliHLTMUONMansoTrackerComponent()
- {
- }
-
-const char* AliHLTMUONMansoTrackerComponent::GetComponentID()
- {
- return "tracking"; // The ID of this component
- }
-
-void AliHLTMUONMansoTrackerComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list)
- {
- /* in order to be backward compatible we have to keep the old code, at
- * least for a while. Remember to use the new const kAliHLTVoidDataType
- * if you are using a more recent AliRoot version (from Jan 07)
- list.push_back(kAliHLTAnyDataType); // We do not have any requirements for our input data type(s).
- */
-
- AliHLTComponentDataType dt =
- { sizeof(AliHLTComponentDataType),
- {'*','*','*','*','*','*','*','\0'},
- {'*','*','*','\0'}};
- list.push_back(dt);
- }
-
-AliHLTComponentDataType AliHLTMUONMansoTrackerComponent::GetOutputDataType()
- {
- /* in order to be backward compatible we have to keep the old code, at
- * least for a while. Remember to use the new const kAliHLTVoidDataType
- * if you are using a more recent AliRoot version (from Jan 07)
- return kAliHLTVoidDataType;
- */
- AliHLTComponentDataType dt =
- { sizeof(AliHLTComponentDataType),
- {'\0','\0','\0','0','\0','\0','\0','\0'},
- {'\0','\0','\0','\0'}};
- return dt;
- }
-
-void AliHLTMUONMansoTrackerComponent::GetOutputDataSize( unsigned long& constBase, double& inputMultiplier )
- {
- constBase = 0;
- inputMultiplier = ((double)fOutputPercentage)/100.0;
- }
-
-
-
-// Spawn function, return new instance of this class
-AliHLTComponent* AliHLTMUONMansoTrackerComponent::Spawn()
- {
- return new AliHLTMUONMansoTrackerComponent;
- }
-
-int AliHLTMUONMansoTrackerComponent::DoInit( int argc, const char** argv )
- {
- // perform initialization. We check whether our relative output size is specified in the arguments.
- fOutputPercentage = 100;
-
- fTracker = new AliHLTMUONMansoTracker();
-
- Logging(kHLTLogInfo, "dHLT", "Tracking", "hitrec, DoInit");
- if (argc==0 && argv==NULL) {
- // this is just to get rid of the warning "unused parameter"
- }
-
- int i = 0;
- char* cpErr;
- while ( i < argc )
- {
- Logging( kHLTLogDebug, "AliHLTMUONMansoTrackerComponent::DoInit", "Arguments", "argv[%d] == %s", i, argv[i] );
- if ( !strcmp( argv[i], "output_percentage" ) )
- {
- if ( i+1>=argc )
- {
- Logging(kHLTLogError, "AliHLTMUONMansoTrackerComponent::DoInit", "Missing Argument", "Missing output_percentage parameter");
- return ENOTSUP;
- }
- Logging( kHLTLogDebug, "AliHLTMUONMansoTrackerComponent::DoInit", "Arguments", "argv[%d+1] == %s", i, argv[i+1] );
- fOutputPercentage = strtoul( argv[i+1], &cpErr, 0 );
- if ( *cpErr )
- {
- Logging(kHLTLogError, "AliHLTMUONMansoTrackerComponent::DoInit", "Wrong Argument", "Cannot convert output_percentage parameter '%s'", argv[i+1] );
- return EINVAL;
- }
- Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoInit", "Output percentage set", "Output percentage set to %lu %%", fOutputPercentage );
- i += 2;
- continue;
- }
- Logging(kHLTLogError, "AliHLTMUONMansoTrackerComponent::DoInit", "Unknown Option", "Unknown option '%s'", argv[i] );
- return EINVAL;
- }// while loop
- return 0;
- }
-
-int AliHLTMUONMansoTrackerComponent::DoDeinit()
-{
- if(fTracker)
- delete fTracker;
- return 0;
-}
-
-int AliHLTMUONMansoTrackerComponent::DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
- AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
- AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks )
-{
- Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoEvent", "Output percentage set", "Output percentage set to %lu %%", fOutputPercentage );
- // Process an event
- unsigned long totalSize = 0;
- AliHLTUInt32_t maxTracksPerEvent = 1024;
-
- fTracker->Reset();
- fTracker->SetTrackOutputBuffer((AliHLTMUONTrackPoints*)outputPtr,maxTracksPerEvent);
-
-// cout<<"BlockSize :"<<evtData.fBlockCnt<<" size :"<<outputBlocks.size()<<endl;
- // Loop over all input blocks in the event
- for ( unsigned long n = 0; n < evtData.fBlockCnt; n++ )
- {
- // Align the beginning of this block to the required value.
-// if ( totalSize % kAliHLTBlockAlignment )
-// totalSize += kAliHLTBlockAlignment-(totalSize % kAliHLTBlockAlignment);
-
- if ( totalSize > size )
- break;
- // Determine the size we should use for the output for this block (the input block's size times the relative output size)
- unsigned long mySize = (blocks[n].fSize * fOutputPercentage) / 100;
- Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoEvent", "mySize set (1)", "mySize == %lu B - blocks[%lu].fSize == %lu - fOutputPercentage == %lu - totalSize == %lu",
- mySize, n, blocks[n].fSize, fOutputPercentage, totalSize );
-
- Int_t noftrigData,nofhitData;
- if(n== (evtData.fBlockCnt - 1)){// for trigger
- UInt_t trigDataSize;
- memcpy(&trigDataSize,blocks[n].fPtr,sizeof(UInt_t));
-// cout<<"trigDataSize :"<<trigDataSize<<endl;
- UInt_t trigOffSet;
- memcpy(&trigOffSet,(UInt_t*)blocks[n].fPtr + 1,sizeof(UInt_t));
-// cout<<"trigOffSet :"<<trigOffSet<<endl;
- noftrigData = (trigDataSize - sizeof(UInt_t))*sizeof(AliHLTUInt32_t)/sizeof(AliHLTMUONCoreTriggerRecord) ;
- fTrigData = new AliHLTMUONCoreTriggerRecord[noftrigData];
-
- for(Int_t i=0;i<noftrigData;i++){
- AliHLTMUONCoreTriggerRecord record;
- memcpy(&record,(UInt_t*)blocks[n].fPtr + 2 + i*(sizeof(AliHLTMUONCoreTriggerRecord))/4,sizeof(AliHLTMUONCoreTriggerRecord));
- fTrigData[i] = record;
-
-// cout<<" Sign : "<<fTrigData[i].fSign
-// <<" Pt : "<<fTrigData[i].fPt
-// <<"\t X1:"<<fTrigData[i].fStation1impact.X()<<" Y1 :"<<fTrigData[i].fStation1impact.Y()
-// <<"\t X2:"<<fTrigData[i].fStation2impact.X()<<" Y2 :"<<fTrigData[i].fStation2impact.Y()
-// << endl;
- }// for
-
- fTracker->FindTracks(fTrigData,noftrigData);
-// cout<<"Nof tracks found :"<<fTracker->TrackCount()<<endl;
-// cout<<"Z7 : "<<AliHLTMUONCoreMansoTracker::GetZ7()<<endl;
-
- }else{ // for hitrec
- UInt_t hitDataSize;
- memcpy(&hitDataSize,blocks[n].fPtr,sizeof(UInt_t));
-// cout<<"hitDataSize :"<<hitDataSize<<endl;
- nofhitData = hitDataSize*sizeof(AliHLTUInt32_t)/sizeof(AliHLTMUONCorePoint) ;
-
- Int_t chamber = n + 6;
- AliHLTMUONRecPoint *recHit = new AliHLTMUONRecPoint[nofhitData];
- for(Int_t i=0;i<nofhitData;i++){
- AliHLTMUONCorePoint point;
- memcpy(&point,(UInt_t*)blocks[n].fPtr + 1 + i*(sizeof(AliHLTMUONCorePoint))/4,sizeof(AliHLTMUONCorePoint));
-// cout <<"chamber :"<<chamber<<"\tX : "<<point.X()<<"\t Y : "<<point.Y()<< endl;
- recHit[i].fX = point.X();
- recHit[i].fY = point.Y();
- }// for
-
- fTracker->AddRecHits(chamber,recHit,nofhitData);
-
- }// hit or trig condn
-
-
- //for(Int_t itrig = 0 ; itrig < nofTrigData ; itrig++){
-
- //}
-
-
- // Check how much space we have left and adapt this output block's size accordingly.
-// if ( totalSize + mySize > size )
-// mySize = size-totalSize;
-// Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoEvent", "mySize set (2)", "mySize == %lu B - totalSize == %lu - size == %lu",
-// mySize, totalSize, size );
-// if ( mySize<=0 )
-// continue; // No room left to write a further block.
-// // Now copy the input block
-// unsigned long copied = 0;
-// // First copy all full multiples of the input block
-// while ( copied+blocks[n].fSize <= mySize )
-// {
-// Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoEvent", "Copying", "Copying %lu B - Copied: %lu B - totalSize: %lu B",
-// blocks[n].fSize, copied, totalSize );
-// memcpy( outputPtr+totalSize+copied, blocks[n].fPtr, blocks[n].fSize );
-// copied += blocks[n].fSize;
-// }
-// // And the copy the remaining fragment of the block
-// Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoEvent", "Copying", "Copying %lu B - Copied: %lu B - totalSize: %lu B",
-// mySize-copied, copied, totalSize );
-// memcpy( outputPtr+totalSize+copied, blocks[n].fPtr, mySize-copied );
-// Logging( kHLTLogInfo, "AliHLTMUONMansoTrackerComponent::DoEvent", "Copied", "Copied: %lu B - totalSize: %lu B",
-// copied, totalSize );
-// // Fill a block data structure for our output block.
-// AliHLTComponentBlockData ob;
-// // Let the structure be filled with the default values.
-// // This takes care of setting the shared memory and data type values to default values,
-// // so that they can be filled in by the calling code.
-// FillBlockData( ob );
-// // This block's start (offset) is after all other blocks written so far
-// ob.fOffset = totalSize;
-// // the size of this block's data.
-// ob.fSize = mySize;
-// // The specification of the data is copied from the input block.
-// ob.fSpecification = blocks[n].fSpecification;
-// // The data type is set automatically to the component's specified output data type.
-// // Place this block into the list of output blocks
-// outputBlocks.push_back( ob );
-// // Increase the total amount of data written so far to our output memory
-// totalSize += mySize;
- }
- // Finally we set the total size of output memory we consumed.
- size = totalSize;
- return 0;
-}
+++ /dev/null
-#ifndef AliHLTMUONMANSOTRACKERCOMPONENT_H
-#define AliHLTMUONMANSOTRACKERCOMPONENT_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-/**
- * @file AliHLTMUONMansoTrackerComponent.h
- * @author Artur Szostak <artursz@iafrica.com>
- * @date
- * @brief Tracker component implementing the Manso algorithm for the dimuon HLT.
- */
-
-#include "AliHLTProcessor.h"
-#include "AliHLTMUONConstants.h"
-#include "AliHLTMUONMansoTracker.h"
-
-/**
- * @class AliHLTMUONMansoTrackerComponent
- * @brief Manso tracker component
- */
-class AliHLTMUONMansoTrackerComponent : public AliHLTProcessor
- {
- public:
- AliHLTMUONMansoTrackerComponent();
- virtual ~AliHLTMUONMansoTrackerComponent();
-
- // Public functions to implement AliHLTComponent's interface.
- // These functions are required for the registration process
-
- const char* GetComponentID();
- void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
- AliHLTComponentDataType GetOutputDataType();
- virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
- AliHLTComponent* Spawn();
-
- protected:
-
- // Protected functions to implement AliHLTComponent's interface.
- // These functions provide initialization as well as the actual processing
- // capabilities of the component.
-
- int DoInit( int argc, const char** argv );
- int DoDeinit();
- int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
- AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
- AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
-
- private:
-
- // The size of the output data produced, as a percentage of the input data's size.
- // Can be greater than 100 (%)
- unsigned fOutputPercentage;
-
- // For Tracking
-
- //TrackerCallback callback;
- AliHLTMUONMansoTracker* fTracker;
-
-/* struct TriggerBlock */
-/* { */
-/* const AliHLTMUONCoreTriggerRecord *data; */
-/* }; */
-
- AliHLTMUONCoreTriggerRecord *fTrigData;
- //std::vector<TriggerBlock> fTriggerBlocks; // array of trigger record blocks
-
- ClassDef(AliHLTMUONMansoTrackerComponent, 0);
-
- };
-
-#endif // AliHLTMUONMANSOTRACKERCOMPONENT_H
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTrackerFSM.cxx
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTrackerFSM.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file AliHLTMUONMansoTrackerFSMCallback.h
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTrackerFSMComponent.cxx
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONMansoTrackerFSMComponent.h
* This will cause the component to generate warnings when it receives data block
* types it does not know how to handle. Without this option the component only
* generates debug messages when they are compiled in. <br>
+ * \li -cdbpath <i>path</i> <br>
+ * This allows one to override the path to use for the CDB location.
+ * <i>path</i> must be a valid CDB URI. By default the HLT system framework
+ * sets the CDB path. <br>
+ * \li -run <i>number</i> <br>
+ * This allows one to override the run number to use. <i>number</i> must be
+ * a positive integer number. By default the HLT system framework sets the
+ * run number. <br>
+ * \li -delaysetup <br>
+ * If indicated then part of the initialisation of the component is forcefully
+ * delayed to the first event received, i.e. the Start-of-Run event. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
*
* <h2>Standard configuration:</h2>
* This component should normally be configured with no extra options.
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**********************************************************************
Created on : 16/05/2007
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
/**********************************************************************
Created on : 16/05/2007
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONTriggerReconstructorComponent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONTriggerReconstructorComponent.h
/**
* @class AliHLTMUONTriggerReconstructorComponent
* @brief A processing component for the dHLT trigger DDL reconstruction.
+ *
+ * The trigger reconstructor component is used to decode the raw data coming
+ * from the trigger chambers and electronics of the muon spectrometer.
+ * The local trigger decisions are converted into trigger records which is a
+ * usable format by the tracking stage.
+ * No full cluster finding is performed, rather just the fired strip information
+ * as received from the trigger electronics is converted into global coordinates
+ * to be used by the tracker as track seeds.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b MUONTriggerReconstructor <br>
+ * Library: \b libAliHLTMUON.so <br>
+ * Input Data Types: AliHLTMUONConstants::DDLRawDataType() = "DDL_RAW :MUON" <br>
+ * Output Data Types: AliHLTMUONConstants::TriggerRecordsBlockDataType() = "TRIGRECS:MUON" <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * \li -ddl <i>number</i> <br>
+ * This indicates the DDL from which the component is expect to receive data
+ * and for which it should load the appropriate electronics mapping lookup
+ * table.
+ * The <i>number</i> should be in the range [21..22], following local dimuon
+ * spectrometer DDL numbering. If either the -ddlid, -lut or -delaysetup
+ * arguments are used, then -ddl becomes optional. <br>
+ * \li -ddlid <i>number</i> <br>
+ * This indicates the DDL by equipment ID, from which the component is expect
+ * to receive data and for which it should load the appropriate electronics
+ * mapping lookup table.
+ * The <i>number</i> should be in the range [2816..2817].
+ * If either the -ddl, -lut or -delaysetup arguments are used, then -ddlid
+ * becomes optional. <br>
+ * \li -delaysetup <br>
+ * Specifying this option causes the component to initialise the lookup table
+ * and magnetic field parameters from CDB only after receiving the first event
+ * to process in DoEvent.
+ * If -ddl or -ddlid were not used, then the DDL number will be taken from
+ * the first block's specification during runtime from the first
+ * event (i.e. Start-of-Run event).
+ * Using the -lut, -zmiddle or -bfieldintegral arguments will override loading
+ * from CDB for a delayed setup. <br>
+ *
+ * <h2>Optional arguments:</h2>
+ * \li -lut <i>filename</i> <br>
+ * A pree-built lookup table for the electronics mapping and calibration
+ * information can be loaded with this argument. The file should have been
+ * generated with the GenerateLookupTable method. The location of the file
+ * is given by the parameter <i>filename</i> <br>
+ * \li -cdb <br>
+ * Indicates that the component should load from CDB. This option is implicit
+ * if the -cdbpath is given. It will also override the -lut option.<br>
+ * \li -cdbpath <i>path</i> <br>
+ * Specifies the CDB path to use, given by <i>path</i>. This option will override
+ * the CDB path automatically set by the HLT framework. <br>
+ * \li -run <i>number</i> <br>
+ * Specifies the run number to use, given by <i>number</i>. This option will
+ * override the current run number automatically set by the HLT framework. <br>
+ * \li -zmiddle <i>position</i> <br>
+ * This indicates the Z coordinate position of the middle of the dipole magnetic
+ * field. <i>position</i> is a floating point value in centimeters. Specifying
+ * this argument on the will override the value loaded from CDB. <br>
+ * \li -bfieldintegral <i>field</i> <br>
+ * This indicates the magnetic field integral for the dipole magnetic field.
+ * <i>field</i> must be a floating point value in Tesla meters (T.m).
+ * The sign of the value will indicate the polarity setting of the dipole magnet.
+ * Specifying this argument on the will override the value loaded from CDB. <br>
+ * \li -warn_on_unexpected_block <br>
+ * This will cause the component to generate warnings when it receives data block
+ * types it does not know how to handle. Without this option the component only
+ * generates debug messages when they are compiled in. <br>
+ * \li -suppress_partial_triggers <br>
+ * This option forces all trigger records that have less than 3 hits in them
+ * to be removed from the output. This is the default setting. <br>
+ * \li -generate_partial_triggers <br>
+ * With this option all trigger records, even partial ones with just one or two
+ * hits is written to the output. <br>
+ * \li -stop_on_buffer_overflow <br>
+ * If this option is specified then the component will stop processing and generate
+ * an error code in the DoEvent method as soon as the output buffer has been filled.
+ * Otherwise the component normally just keeps processing but some data might be lost
+ * due to full buffers. <br>
+ * \li -tryrecover <br>
+ * This is a special option to the raw data decoder to turn on logic which will
+ * try and recover from corrupt raw DDL data. This is off by default. <br>
+ * \li -dont_use_crateid <br>
+ * This option indicates that the crate ID values found in the regional structures
+ * in the raw DDL data should not be used to identify the channels in the offline
+ * mapping. Rather the position of the raw data structure instead. <br>
+ * \li -dont_use_localid <br>
+ * This option indicates that the local structure ID values found in the raw DDL
+ * data should not be used to identify the channels in the offline mapping, but
+ * rather the position of the local structure in the DDL should be used instead. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
+ *
+ * <h2>Standard configuration:</h2>
+ * The configuration is taken from the CDB by default. It can be overridden with
+ * the command line arguments.
+ *
+ * <h2>Default CDB entries:</h2>
+ * HLT/ConfigHLT/HLTGlobalTrigger - Contains the global trigger menu.
+ *
+ * <h2>Performance:</h2>
+ * This is a linear function of the number of input triggers (AliHLTTrigger) that
+ * need to be processed.
+ * For a modest trigger menu configurations the processing time per event should
+ * be on the order of a few milliseconds.
+ *
+ * <h2>Memory consumption:</h2>
+ * This is a linear function of the input data size, but only a fraction. Thus the
+ * memory usage is minimal. It should be under 1 MBytes.
+ *
+ * <h2>Output size:</h2>
+ * This will depend linearly on the number of tracks found. But for nominal multiplicities
+ * this should be less than 16 kBytes.
+ *
+ * @ingroup alihlt_dimuon_component
*/
class AliHLTMUONTriggerReconstructorComponent : public AliHLTMUONProcessor
{
/// Not implemented.
AliHLTMUONTriggerReconstructorComponent& operator = (const AliHLTMUONTriggerReconstructorComponent& /*obj*/);
+ /**
+ * Read in the lookup table from file.
+ * \param lutpath The file to read the lookup table from.
+ */
int ReadLookUpTable(const char* lutpath);
+
+ /**
+ * Loads the lookup table containing channel and geometrical position
+ * information about trigger strips from CDB.
+ *
+ * \note To override the default CDB path and/or run number the
+ * SetCDBPathAndRunNo(cdbPath, run) method should be called before this
+ * method.
+ *
+ * \return 0 on success and non zero codes for errors.
+ */
int ReadLutFromCDB();
/**
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
/**
* \ingroup macros
* $ALICE_ROOT/HLT/MUON/macros into your current working directory, then from
* the shell command prompt run the following command:
* \code
- * > aliroot -b -q -l $ALICE_ROOT/HLT/MUON/macros/CreateDefaultCDBEntries.C+
+ * > aliroot -b -q -l $ALICE_ROOT/HLT/MUON/macros/CreateDefaultCDBEntries.C
* \endcode
*
* \author Artur Szostak <artursz@iafrica.com>
/**
* Generates default CDB entries in the given CDB storage (local by default)
* \param cdbPath The path to the local storage.
+ * \param version = 0,
+ * \param firstRun = 0,
+ * \param lastRun = AliCDBRunRange::Infinity()
+ * \param zmiddle The middle of the dipole field (cm) used by AliHLTMUONTriggerReconstructorComponent and AliHLTMUONMansoTrackerFSMComponent.
+ * \param bfieldintegral The dipole magnetic field integral (T.m) used by AliHLTMUONTriggerReconstructorComponent and AliHLTMUONMansoTrackerFSMComponent.
+ * \param dccut DC cut applied to channels by AliHLTMUONHitReconstructorComponent.
+ * \param roiParamAchamber7 Region of interest parameter A for chamber 7 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamBchamber7 Region of interest parameter B for chamber 7 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamAchamber8 Region of interest parameter A for chamber 8 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamBchamber8 Region of interest parameter B for chamber 8 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamAchamber9 Region of interest parameter A for chamber 9 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamBchamber9 Region of interest parameter B for chamber 9 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamAchamber10 Region of interest parameter A for chamber 10 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param roiParamBchamber10 Region of interest parameter B for chamber 10 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param lowptcut The low pT cut applied to tracks (GeV/c) used by the AliHLTMUONDecisionComponent.
+ * \param highptcut The hight pT cut applied to tracks (GeV/c) used by the AliHLTMUONDecisionComponent.
+ * \param lowmasscut The low invariant mass cut applied to track pairs (GeV/c^2) used by the AliHLTMUONDecisionComponent.
+ * \param highmasscut The hight invariant mass cut applied to track pairs (GeV/c^2) used by the AliHLTMUONDecisionComponent.
+ * \param chamber7postion Nominal position for chamber 7 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param chamber8postion Nominal position for chamber 8 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param chamber9postion Nominal position for chamber 9 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param chamber10postion Nominal position for chamber 10 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param chamber11postion Nominal position for chamber 11 used by AliHLTMUONMansoTrackerFSMComponent.
+ * \param chamber13postion Nominal position for chamber 13 used by AliHLTMUONMansoTrackerFSMComponent.
*/
void CreateDefaultCDBEntries(
const char* cdbPath = "local://$ALICE_ROOT/OCDB",
+ Int_t version = 0,
+ Int_t firstRun = 0,
+ Int_t lastRun = AliCDBRunRange::Infinity(),
float zmiddle = -975.,
float bfieldintegral = -3.,
int dccut = 50,
return;
}
- Int_t version = 0;
- Int_t firstRun = 0;
- Int_t lastRun = AliCDBRunRange::Infinity();
-
const char* path = NULL;
AliCDBMetaData* metaData = NULL;
TMap* params = NULL;
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* \ingroup macros
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* \ingroup macros
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* \ingroup macros
* for consistency with the AliHLTMUONDataCheckerComponent.
* @param rawDataPath The path of the raw data (i.e. path to the rawXX directories)
* or can be the file name if using the "rawreader" option for dataSource.
+ * @param runNumber Specifies the run number to use. If it is set to -1 then the
+ * run number is not set if the CDB manager already has a run number set,
+ * otherwise a default run number of 0 is used. The default value is -1.
+ * @param cdbPath This gives the CDB path to use. If it is set to NULL then
+ * the CDB path is not set if the CDB manager already has a default storage
+ * CDB path set, otherwise a default value of "local://$ALICE_ROOT/OCDB" is used.
+ * The default value is NULL.
+ * @param tryrecover If this is true then the "-tryrecover" flag is set in the
+ * raw data reconstruction components. This is useful if when running RunChain
+ * log messages appear indicating that there was a problem decoding the raw data.
+ * The "-tryrecover" flag will turn on recovery logic in the raw data decoders
+ * to try and overcome errors in the data.
*/
void RunChain(
const char* chainType = "full",
const char* logLevel = "normal",
const char* lutDir = "CDB",
bool checkData = false,
- const char* rawDataPath = "./"
+ const char* rawDataPath = "./",
+ Int_t runNumber = -1,
+ const char* cdbPath = NULL,
+ bool tryrecover = false
)
{
// Setup the CDB default storage and run number if nothing was set.
cerr << "ERROR: Global CDB manager object does not exist." << endl;
return;
}
- if (cdbManager->GetDefaultStorage() == NULL)
+ if (runNumber != -1)
{
- cdbManager->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+ cdbManager->SetRun(runNumber);
}
- if (cdbManager->GetRun() == -1)
+ else if (cdbManager->GetRun() == -1)
{
cdbManager->SetRun(0);
}
+ if (cdbPath != NULL)
+ {
+ cdbManager->SetDefaultStorage(cdbPath);
+ }
+ else if (cdbManager->GetDefaultStorage() == NULL)
+ {
+ cdbManager->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+ }
+
+ if (cdbManager->GetDefaultStorage() == NULL)
+ {
+ cerr << "ERROR: There is no value for the default CDB storage, cannot continue." << endl;
+ return;
+ }
// Make sure that the lastEvent is greater than firstEvent.
if (lastEvent < firstEvent)
// these components if we are are building the ddlreco or full chains.
if (buildDDLRecoComps)
{
- if (TString(lutDir) == "CDB")
+ const char* recoverFlag = tryrecover ? "-tryrecover" : "";
+ for (int k = 13; k <= 22; k++)
{
- AliHLTConfiguration recDDL13("recDDL13", "MUONHitReconstructor", "pubDDL13", TString("-ddl 13 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL14("recDDL14", "MUONHitReconstructor", "pubDDL14", TString("-ddl 14 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL15("recDDL15", "MUONHitReconstructor", "pubDDL15", TString("-ddl 15 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL16("recDDL16", "MUONHitReconstructor", "pubDDL16", TString("-ddl 16 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL17("recDDL17", "MUONHitReconstructor", "pubDDL17", TString("-ddl 17 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL18("recDDL18", "MUONHitReconstructor", "pubDDL18", TString("-ddl 18 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL19("recDDL19", "MUONHitReconstructor", "pubDDL19", TString("-ddl 19 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL20("recDDL20", "MUONHitReconstructor", "pubDDL20", TString("-ddl 20 -cdbpath local://$ALICE_ROOT/OCDB -run 0"));
- AliHLTConfiguration recDDL21("recDDL21", "MUONTriggerReconstructor", "pubDDL21", TString("-ddl 21 -cdbpath local://$ALICE_ROOT/OCDB -run 0 -suppress_partial_triggers"));
- AliHLTConfiguration recDDL22("recDDL22", "MUONTriggerReconstructor", "pubDDL22", TString("-ddl 22 -cdbpath local://$ALICE_ROOT/OCDB -run 0 -suppress_partial_triggers"));
- }
- else
- {
- AliHLTConfiguration recDDL13("recDDL13", "MUONHitReconstructor", "pubDDL13", TString("-ddl 13 -lut ") + lutDir + TString("/Lut13.dat"));
- AliHLTConfiguration recDDL14("recDDL14", "MUONHitReconstructor", "pubDDL14", TString("-ddl 14 -lut ") + lutDir + TString("/Lut14.dat"));
- AliHLTConfiguration recDDL15("recDDL15", "MUONHitReconstructor", "pubDDL15", TString("-ddl 15 -lut ") + lutDir + TString("/Lut15.dat"));
- AliHLTConfiguration recDDL16("recDDL16", "MUONHitReconstructor", "pubDDL16", TString("-ddl 16 -lut ") + lutDir + TString("/Lut16.dat"));
- AliHLTConfiguration recDDL17("recDDL17", "MUONHitReconstructor", "pubDDL17", TString("-ddl 17 -lut ") + lutDir + TString("/Lut17.dat"));
- AliHLTConfiguration recDDL18("recDDL18", "MUONHitReconstructor", "pubDDL18", TString("-ddl 18 -lut ") + lutDir + TString("/Lut18.dat"));
- AliHLTConfiguration recDDL19("recDDL19", "MUONHitReconstructor", "pubDDL19", TString("-ddl 19 -lut ") + lutDir + TString("/Lut19.dat"));
- AliHLTConfiguration recDDL20("recDDL20", "MUONHitReconstructor", "pubDDL20", TString("-ddl 20 -lut ") + lutDir + TString("/Lut20.dat"));
- AliHLTConfiguration recDDL21("recDDL21", "MUONTriggerReconstructor", "pubDDL21", TString("-ddl 21 -lut ") + lutDir + TString("/Lut21.dat -suppress_partial_triggers"));
- AliHLTConfiguration recDDL22("recDDL22", "MUONTriggerReconstructor", "pubDDL22", TString("-ddl 22 -lut ") + lutDir + TString("/Lut22.dat -suppress_partial_triggers"));
+ string compId = Form("recDDL%d", k);
+ string name = (k <= 20) ? "MUONHitReconstructor" : "MUONTriggerReconstructor";
+ string parent = Form("pubDDL%d", k);
+ string cmd;
+ if (TString(lutDir) == "CDB")
+ {
+ const char* path = cdbManager->GetDefaultStorage()->GetURI().Data();
+ cmd = Form("-ddl %d -cdbpath %s -run %d %s",
+ k, path, cdbManager->GetRun(), recoverFlag
+ );
+ }
+ else
+ {
+ cmd = Form("-ddl %d -lut %s/Lut%d.dat %s",
+ k, lutDir, k, recoverFlag
+ );
+ }
+ if (k >= 21)
+ {
+ cmd += " -suppress_partial_triggers -dont_use_crateid -dont_use_localid";
+ }
+ AliHLTConfiguration recDDL(compId.c_str(), name.c_str(), parent.c_str(), cmd.c_str());
}
}
return;
}
AliHLTOfflineInterface::SetParamsToComponents(NULL, rawReader);
+ rawReader->NextEvent(); // Need to call this once here or we will start at the wrong event.
// Now step through the events.
for (int i = 0; i < firstEvent; i++) rawReader->NextEvent();
for (int i = firstEvent; i <= lastEvent; i++)
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
/**
* \ingroup macros
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: AliHLTMUONDataCheckerComponent.cxx 26179 2008-05-29 22:27:27Z aszostak $ */
+// $Id: AliHLTMUONDataCheckerComponent.cxx 26179 2008-05-29 22:27:27Z aszostak $
///
/// @file AliHLTMUONDataCheckerComponent.cxx
}
+bool AliHLTMUONDataCheckerComponent::IgnoreArgument(const char* arg) const
+{
+ /// Return true if the argument is -delaysetup
+ /// to prevent the parent class from parsing these arguments in DoInit.
+
+ if (strcmp(arg, "-delaysetup") == 0)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+
int AliHLTMUONDataCheckerComponent::DoInit(int argc, const char** argv)
{
/// Inherited from AliHLTComponent.
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: AliHLTMUONDataCheckerComponent.h 26179 2008-05-29 22:27:27Z aszostak $ */
+// $Id: AliHLTMUONDataCheckerComponent.h 26179 2008-05-29 22:27:27Z aszostak $
///
/// @file AliHLTMUONDataCheckerComponent.h
* would tell the framework that processing of the event failed. Otherwise
* errors are just logged but the data is considered to be processed successfully.
* (default behaviour is not to return errors)<br>
+ * \li -cdbpath <i>path</i> <br>
+ * This allows one to override the path to use for the CDB location.
+ * <i>path</i> must be a valid CDB URI. By default the HLT system framework
+ * sets the CDB path. <br>
+ * \li -run <i>number</i> <br>
+ * This allows one to override the run number to use. <i>number</i> must be
+ * a positive integer number. By default the HLT system framework sets the
+ * run number. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
*
* @ingroup alihlt_dimuon_component
*/
AliHLTUInt32_t& size,
AliHLTComponentBlockDataList& outputBlocks
);
+ virtual bool IgnoreArgument(const char* arg) const;
using AliHLTProcessor::DoEvent;
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONEmptyEventFilterComponent.cxx
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
+// $Id$
///
/// @file AliHLTMUONEmptyEventFilterComponent.h
/**
* @class AliHLTMUONEmptyEventFilterComponent
+ * \brief Component for filtering on empty events.
* This component class is a utility component for debugging. It is used to filter
* empty dHLT events. (Specifically built for the Dec 2007 Cosmic tests where the
* muon spectrometer should not see any hits. Therefor we would be interested to
* A dump subscriber can then connect to the empty event filter component to
* make sure it only receives events that are not empty.
*
- * command line parameters:
- * -sendempty This parameter causes the component to behave like an anti-filter
- * meaning that it will send all events for which the dHLT results data
- * blocks were empty. This is useful for collecting those events where dHLT
- * is not finding anything but perhaps it should.
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b MUONEmptyEventFilter <br>
+ * Library: \b libAliHLTMUON.so <br>
+ * Input Data Types: kAliHLTAnyDataType = "*******:***" <br>
+ * Output Data Types: kAliHLTAnyDataType|kAliHLTDataOriginMUON = "*******:MUON" <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * None.
+ *
+ * <h2>Optional arguments:</h2>
+ * \li -sendempty <br>
+ * This parameter causes the component to behave like an anti-filter
+ * meaning that it will send all events for which the dHLT results data
+ * blocks were empty. This is useful for collecting those events where dHLT
+ * is not finding anything but perhaps it should. <br>
+ * \li -dumponerror <br>
+ * This flag will cause the component to dump the data blocks it received if
+ * an error occurs during the processing of an event. <br>
+ * \li -dumppath <i>path</i> <br>
+ * Allows one to specify the path in which to dump the received data blocks
+ * if an error occurs. <br>
+ *
+ * <h2>Standard configuration:</h2>
+ * There is no special configuration for this component.
+ *
+ * <h2>Default CDB entries:</h2>
+ * None.
+ *
+ * <h2>Performance:</h2>
+ * Less than a milliseconds per event.
+ *
+ * <h2>Memory consumption:</h2>
+ * Minimal, under 1 MBytes.
+ *
+ * <h2>Output size:</h2>
+ * The maximum is the same size as the input data size.
+ *
+ * @ingroup alihlt_dimuon_component
*/
class AliHLTMUONEmptyEventFilterComponent : public AliHLTMUONProcessor
{
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONRawDataHistoComponent.cxx
/// @date 30 April 2008
/// @brief Implementation of the raw data histogramming component for dHLT.
///
-/// The class implements
+/// The class implements a component for checking basic statistics and errors in
+/// raw data from the muon spectrometer. It is useful for basic monitoring.
#include "AliHLTMUONRawDataHistoComponent.h"
#include "AliHLTMUONConstants.h"
int AliHLTMUONRawDataHistoComponent::DoEvent(
- const AliHLTComponentEventData& /*evtData*/,
- AliHLTComponentTriggerData& /*trigData*/
+ const AliHLTComponentEventData& evtData,
+ AliHLTComponentTriggerData& trigData
)
{
/// Inherited from AliHLTProcessor.
if (AliHLTMUONUtils::IsTrackerDDL(block->fSpecification))
{
- ProcessTrackerDDL(block);
+ bool decodeOk = ProcessTrackerDDL(block);
+ if (not decodeOk and DumpDataOnError())
+ {
+ DumpEvent(evtData, trigData);
+ return -EIO;
+ }
}
else if (AliHLTMUONUtils::IsTriggerDDL(block->fSpecification))
{
- ProcessTriggerDDL(block);
+ bool decodeOk = ProcessTriggerDDL(block);
+ if (not decodeOk and DumpDataOnError())
+ {
+ DumpEvent(evtData, trigData);
+ return -EIO;
+ }
}
else
{
}
-void AliHLTMUONRawDataHistoComponent::ProcessTrackerDDL(const AliHLTComponentBlockData* block)
+bool AliHLTMUONRawDataHistoComponent::ProcessTrackerDDL(const AliHLTComponentBlockData* block)
{
/// Processes a raw data block from the tracker stations.
AliHLTUInt8_t* payload = reinterpret_cast<AliHLTUInt8_t*>(block->fPtr)
+ sizeof(AliRawDataHeader);
UInt_t payloadSize = UInt_t(block->fSize) - sizeof(AliRawDataHeader);
- fTrackerDecoder.Decode(payload, payloadSize);
+ return fTrackerDecoder.Decode(payload, payloadSize);
}
else
{
);
fErrorHist[ddl]->Fill(40);
}
+ return false;
}
-void AliHLTMUONRawDataHistoComponent::ProcessTriggerDDL(const AliHLTComponentBlockData* block)
+bool AliHLTMUONRawDataHistoComponent::ProcessTriggerDDL(const AliHLTComponentBlockData* block)
{
/// Processes a raw data block from the trigger stations.
AliHLTUInt8_t* payload = reinterpret_cast<AliHLTUInt8_t*>(header+1);
UInt_t payloadSize = UInt_t(block->fSize) - sizeof(AliRawDataHeader);
bool scalarEvent = ((header->GetL1TriggerMessage() & 0x1) == 0x1);
- fTriggerDecoder.Decode(payload, payloadSize, scalarEvent);
+ return fTriggerDecoder.Decode(payload, payloadSize, scalarEvent);
}
else
{
);
fErrorHist[ddl]->Fill(40);
}
+ return false;
}
* ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id: $ */
+// $Id: $
///
/// @file AliHLTMUONRawDataHistoComponent.h
/**
* @class AliHLTMUONRawDataHistoComponent
* @brief Dimuon HLT component for generating basic monitoring histograms for raw data.
+ *
+ * This component is useful for performing basic monitoring tasks on the raw data
+ * from the muon spectrometer. It will try and decode the data and histogram the
+ * following information:
+ * \li The distribution of signals per DDL.
+ * \li The number of ADC values found per MANU for each DDL.
+ * \li The error codes found by the decoders while trying to decode the data for each DDL.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b MUONRawDataHistogrammer <br>
+ * Library: \b libAliHLTMUON.so <br>
+ * Input Data Types: AliHLTMUONConstants::DDLRawDataType() = "DDL_RAW :MUON" <br>
+ * Output Data Types: AliHLTMUONConstants::HistogramDataType() = "ROOTHIST:MUON" <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * None.
+ *
+ * <h2>Optional arguments:</h2>
+ * \li -pubdelay <i>delay</i> <br>
+ * Indicates the number of seconds to wait between publishing the histograms.
+ * The default is zero seconds. <i>delay</i> must be a positive floating point
+ * number. <br>
+ * \li -noemptyhists <br>
+ * If indicated then any histograms that are empty will not be published.
+ * By default all events are processed. <br>
+ * \li -onlydataevents <br>
+ * If indicated then only data events are processed.
+ * By default all events are processed. <br>
+ * \li -clearafterpub <br>
+ * If specified then all the internal histograms are cleared after they are
+ * published, so they will not accumilate statistics over the whole run.
+ * This is off by default. <br>
+ * \li -tryrecover <br>
+ * This is a special option to the raw data decoder to turn on logic which will
+ * try and recover from corrupt raw DDL data. This is off by default. <br>
+ *
+ * <h2>Standard configuration:</h2>
+ * There is no special configuration for this component.
+ *
+ * <h2>Default CDB entries:</h2>
+ * None.
+ *
+ * <h2>Performance:</h2>
+ * A few milliseconds per event.
+ *
+ * <h2>Memory consumption:</h2>
+ * Minimal, under 1 MBytes.
+ *
+ * <h2>Output size:</h2>
+ * A few kBytes.
+ *
+ * @ingroup alihlt_dimuon_component
*/
class AliHLTMUONRawDataHistoComponent : public AliHLTMUONProcessor
{
AliHLTMUONRawDataHistoComponent(const AliHLTMUONRawDataHistoComponent& /*obj*/);
AliHLTMUONRawDataHistoComponent& operator = (const AliHLTMUONRawDataHistoComponent& /*obj*/);
- void ProcessTrackerDDL(const AliHLTComponentBlockData* block);
- void ProcessTriggerDDL(const AliHLTComponentBlockData* block);
+ /**
+ * Decodes the tracker DDL data block and fills the histograms.
+ * \param block The data block to decode.
+ * \returns true if the block could be decoded and false if there was an error in the data.
+ */
+ bool ProcessTrackerDDL(const AliHLTComponentBlockData* block);
+
+ /**
+ * Decodes the trigger DDL data block and fills the histograms.
+ * \param block The data block to decode.
+ * \returns true if the block could be decoded and false if there was an error in the data.
+ */
+ bool ProcessTriggerDDL(const AliHLTComponentBlockData* block);
+
+ /**
+ * Deletes all the histograms and resets the pointers.
+ */
void FreeObjects();
AliMUONTrackerDDLDecoder<AliTrackerDecoderHandler> fTrackerDecoder; // Raw data decoder for the tracker data.
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+// $Id$
/**
* @file dHLTdumpraw.cxx
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id: $ */
+// $Id: $
/**
* @file dHLTrootify.cxx
* Component ID: \b HLTGlobalTrigger <br>
* Library: \b libAliHLTTrigger.so <br>
* Input Data Types: ::kAliHLTAnyDataType <br>
- * Output Data Types: kAliHLTDataTypeTObject|kAliHLTDataOriginOut <br>
+ * Output Data Types: kAliHLTDataTypeGlobalTrigger and kAliHLTDataTypeReadoutList <br>
*
* <h2>Mandatory arguments:</h2>
+ * None.
*
* <h2>Optional arguments:</h2>
* <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
* Indicates that the CTP data should not be added to the global HLT trigger decision.
*
* <h2>Configuration:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
- * Configuration by component arguments.
+ * Configured from CDB but can be overridden with the -config argument.
*
* <h2>Default CDB entries:</h2>
* HLT/ConfigHLT/HLTGlobalTrigger - Contains the global trigger menu.