From 1ac82ce6e4b394ec06d022599a251ca4233f9761 Mon Sep 17 00:00:00 2001 From: richterm Date: Mon, 21 Apr 2008 09:05:23 +0000 Subject: [PATCH] - added skeleton of of offline clusterizer and tracker components - added common data types for TreeD and TreeR objects - added header file for common HLT CDB entries - cleanup AliHLTTPCDefnitions: removed deprecated data types - code documentation and typos --- HLT/BASE/AliHLTCommonCDBEntries.h | 27 ++ HLT/BASE/AliHLTComponent.h | 2 +- HLT/BASE/AliHLTDataTypes.cxx | 15 ++ HLT/BASE/AliHLTDataTypes.h | 233 +++++++++++++++--- HLT/BASE/AliHLTSystem.h | 2 +- HLT/BASE/interface/Makefile.am | 2 +- HLT/BASE/util/AliHLTDataGenerator.h | 2 +- HLT/BASE/util/AliHLTFilePublisher.h | 2 +- HLT/BASE/util/AliHLTFileWriter.h | 4 +- .../util/AliHLTLoaderPublisherComponent.h | 2 +- .../util/AliHLTRawReaderPublisherComponent.h | 2 +- .../util/AliHLTRootFileStreamerComponent.h | 2 +- HLT/BASE/util/AliHLTRootFileWriterComponent.h | 4 +- .../AliHLTPHOSAltroChannelSelectorComponent.h | 4 +- HLT/RCU/AliHLTAltroChannelSelectorComponent.h | 4 +- HLT/SampleLib/AliHLTSampleComponent1.h | 6 +- .../AliHLTSampleMonitoringComponent.h | 6 +- HLT/TPCLib/AliHLTTPCAgent.cxx | 4 + .../AliHLTTPCClusterFinderComponent.cxx | 1 - HLT/TPCLib/AliHLTTPCDefinitions.cxx | 4 - HLT/TPCLib/AliHLTTPCDefinitions.h | 11 +- HLT/TPCLib/AliHLTTPCDigitDumpComponent.h | 4 +- HLT/TPCLib/AliHLTTPCEsdWriterComponent.cxx | 2 +- HLT/TPCLib/AliHLTTPCEsdWriterComponent.h | 4 +- .../AliHLTTPCDigitPublisherComponent.h | 2 +- .../AliHLTTPCOfflineClustererComponent.cxx | 216 ++++++++++++++++ .../AliHLTTPCOfflineClustererComponent.h | 93 +++++++ .../AliHLTTPCOfflineTrackerComponent.cxx | 156 ++++++++++++ .../AliHLTTPCOfflineTrackerComponent.h | 93 +++++++ .../AliHLTCOMPHuffmanAltroCalibComponent.h | 4 +- HLT/comp/AliHLTCOMPHuffmanAltroComponent.h | 4 +- HLT/libAliHLTTPC.pkg | 5 +- HLT/libHLTbase.pkg | 1 + HLT/rec/AliHLTReconstructor.h | 2 +- HLT/sim/AliHLTOUTComponent.h | 6 +- 35 files changed, 839 insertions(+), 92 deletions(-) create mode 100644 HLT/BASE/AliHLTCommonCDBEntries.h create mode 100644 HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx create mode 100644 HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.h create mode 100644 HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx create mode 100644 HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.h diff --git a/HLT/BASE/AliHLTCommonCDBEntries.h b/HLT/BASE/AliHLTCommonCDBEntries.h new file mode 100644 index 00000000000..af4196d7708 --- /dev/null +++ b/HLT/BASE/AliHLTCommonCDBEntries.h @@ -0,0 +1,27 @@ +// $Id$ + +#ifndef ALIHLTCOMMONCDBENTRIES_H +#define ALIHLTCOMMONCDBENTRIES_H +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* See cxx source for full Copyright notice * + +/** @file AliHLTCommonCDBEntries.h + @author Matthias Richter + @date + @brief Common CDB Entries for the ALICE HLT +*/ + +/** + * @defgroup alihlt_component_cdb Common CDB Entries + * @ingroup alihlt_component + */ + + +/** + * Uniform magnetic field of the solenoid. + * @ingroup alihlt_component_cdb + */ +#define kAliHLTCDBSolenoidBz "HLT/ConfigHLT/SolenoidBz" + +#endif diff --git a/HLT/BASE/AliHLTComponent.h b/HLT/BASE/AliHLTComponent.h index a17a8599793..da4b0b67b35 100644 --- a/HLT/BASE/AliHLTComponent.h +++ b/HLT/BASE/AliHLTComponent.h @@ -29,7 +29,7 @@ #include #include "AliHLTLogging.h" #include "AliHLTDataTypes.h" -//#include "AliHLTDefinitions.h" +#include "AliHLTCommonCDBEntries.h" /* Matthias Dec 2006 * The names have been changed for Aliroot's coding conventions sake diff --git a/HLT/BASE/AliHLTDataTypes.cxx b/HLT/BASE/AliHLTDataTypes.cxx index e1a4ba60146..2932380ddbf 100644 --- a/HLT/BASE/AliHLTDataTypes.cxx +++ b/HLT/BASE/AliHLTDataTypes.cxx @@ -97,6 +97,7 @@ const AliHLTComponentDataType kAliHLTDataTypeESDObject = (AliHLTComponentDataTy kAliHLTESDObjectDataTypeID, kAliHLTDataOriginAny }; + /** ESD tree data specification */ const AliHLTComponentDataType kAliHLTDataTypeESDTree = (AliHLTComponentDataType) { sizeof(AliHLTComponentDataType), @@ -104,6 +105,20 @@ const AliHLTComponentDataType kAliHLTDataTypeESDTree = (AliHLTComponentDataType kAliHLTDataOriginAny }; +/** AliRoot TreeD data specification */ +const AliHLTComponentDataType kAliHLTDataTypeAliTreeD = (AliHLTComponentDataType) { + sizeof(AliHLTComponentDataType), + kAliHLTTreeDDataTypeID, + kAliHLTDataOriginAny +}; + +/** AliRoot TreeR data specification */ +const AliHLTComponentDataType kAliHLTDataTypeAliTreeR = (AliHLTComponentDataType) { + sizeof(AliHLTComponentDataType), + kAliHLTTreeRDataTypeID, + kAliHLTDataOriginAny +}; + /** 16 bit Hardware address selection data specification, origin is 'any' */ const AliHLTComponentDataType kAliHLTDataTypeHwAddr16 = (AliHLTComponentDataType) { sizeof(AliHLTComponentDataType), diff --git a/HLT/BASE/AliHLTDataTypes.h b/HLT/BASE/AliHLTDataTypes.h index 518661084c3..91c48d3a27f 100644 --- a/HLT/BASE/AliHLTDataTypes.h +++ b/HLT/BASE/AliHLTDataTypes.h @@ -30,8 +30,9 @@ * gkAliHLTDDLListSize set from 29 to 30 according to new PubSub * specs * 5 Data types for Run and Event summary, and for monitoring added + * 6 Common data types for TreeD and TreeR defined */ -#define ALIHLT_DATA_TYPES_VERSION 5 +#define ALIHLT_DATA_TYPES_VERSION 6 ////////////////////////////////////////////////////////////////////////// // @@ -45,39 +46,59 @@ // ////////////////////////////////////////////////////////////////////////// -/** field size of datat type origin */ +/** field size of datat type origin + * @ingroup alihlt_component_datatypes + */ const int kAliHLTComponentDataTypefOriginSize=4; -/** invalid data origin */ +/** invalid data origin + * @ingroup alihlt_component_datatypes + */ # define kAliHLTDataOriginVoid "\0\0\0" /** old invalid data origin, kept for backward compatibility */ # define kAliHLTVoidDataOrigin "\0\0\0" -/** wildcard data type origin */ +/** wildcard data type origin + * @ingroup alihlt_component_datatypes + */ # define kAliHLTDataOriginAny "***" /** old wildcard data type origin, kept for backward compatibility */ # define kAliHLTAnyDataOrigin "***" -/** HLT out */ +/** Data origin HLT out + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginOut[kAliHLTComponentDataTypefOriginSize]; -/** HLT/PubSub private internal */ +/** Data origin HLT/PubSub private internal + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginPrivate[kAliHLTComponentDataTypefOriginSize]; -/** TPC */ +/** Data origin TPC + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginTPC[kAliHLTComponentDataTypefOriginSize]; -/** PHOS */ +/** Data origin PHOS + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginPHOS[kAliHLTComponentDataTypefOriginSize]; -/** MUON */ +/** Data origin MUON + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginMUON[kAliHLTComponentDataTypefOriginSize]; -/** TRD */ +/** Data origin TRD + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginTRD[kAliHLTComponentDataTypefOriginSize]; -/** ITS */ +/** Data origin ITS + * @ingroup alihlt_component_datatypes + */ extern const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize]; ////////////////////////////////////////////////////////////////////////// @@ -86,108 +107,146 @@ extern const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize]; // ////////////////////////////////////////////////////////////////////////// -/** field size of data type id */ +/** field size of data type id + * @ingroup alihlt_component_datatypes + */ const int kAliHLTComponentDataTypefIDsize=8; -/** invalid data type id */ +/** invalid data type id + * @ingroup alihlt_component_datatypes + */ # define kAliHLTVoidDataTypeID "\0\0\0\0\0\0\0" -/** special id for any data type id */ +/** special id for any data type id + * @ingroup alihlt_component_datatypes + */ # define kAliHLTAnyDataTypeID "*******" -/** DDL RAW data */ +/** DDL RAW data + * @ingroup alihlt_component_datatypes + */ # define kAliHLTDDLRawDataTypeID {'D','D','L','_','R','A','W',' '} -/** calibration data for file exchange subscriber */ +/** calibration data for file exchange subscriber + * @ingroup alihlt_component_datatypes + */ # define kAliHLTFXSCalibDataTypeID {'F','X','S','_','C','A','L',' '} /** start of run (SOR) event * @ref AliHLTRunDesc + * @ingroup alihlt_component_datatypes */ # define kAliHLTSORDataTypeID {'S','T','A','R','T','O','F','R'} /** end of run (EOR) event * @ref AliHLTRunDesc + * @ingroup alihlt_component_datatypes */ # define kAliHLTEORDataTypeID {'E','N','D','O','F','R','U','N'} /** DDL list event * @ref AliHLTEventDDL + * @ingroup alihlt_component_datatypes */ # define kAliHLTDDLDataTypeID {'D','D','L','L','I','S','T',' '} /** EventType event * - empty payload, specification gives eventType + * @ingroup alihlt_component_datatypes */ # define kAliHLTEventDataTypeID {'E','V','E','N','T','T','Y','P'} /** ComponentConfiguration event * - payload contains the CDB path as string + * @ingroup alihlt_component_datatypes */ # define kAliHLTComConfDataTypeID {'C','O','M','_','C','O','N','F'} /** DCS value update event * - payload contains string of relevant detectors + * @ingroup alihlt_component_datatypes */ # define kAliHLTUpdtDCSDataTypeID {'U','P','D','T','_','D','C','S'} /** ESD data block * an AliESD object of varying origin * The 'V0' at the end allows a versioning + * @ingroup alihlt_component_datatypes */ # define kAliHLTESDObjectDataTypeID {'A','L','I','E','S','D','V','0'} /** ESD tree data block * TTree with an AliESD object of varying origin + * @ingroup alihlt_component_datatypes */ # define kAliHLTESDTreeDataTypeID {'E','S','D','_','T','R','E','E'} +/** AliRoot TreeD + * - the digits tree of an AliRoot module + * @ingroup alihlt_component_datatypes + */ +#define kAliHLTTreeDDataTypeID {'A','L','I','T','R','E','E','D'} + +/** AliRoot TreeR + * - the rec points tree of an AliRoot module + * @ingroup alihlt_component_datatypes + */ +#define kAliHLTTreeRDataTypeID {'A','L','I','T','R','E','E','D'} + /** HW Address selection data block * - a selection list for 16 bit HW addresses * - varying origin + * @ingroup alihlt_component_datatypes */ # define kAliHLTHwAddr16DataTypeID {'H','W','A','D','D','R','1','6'} /** Event Statistics * - event statistics for given detectors * - varying origin + * @ingroup alihlt_component_datatypes */ # define kAliHLTEventStatisticsDataTypeID {'E','V','_','S','T','A','T','I'} /** Event Summary * - event summary * - origin : kAliHLTDataOriginOut ( HLT ) + * @ingroup alihlt_component_datatypes */ # define kAliHLTEventSummaryDataTypeID {'E','V','_','S','U','M','M','A'} /** Run Statistics * - run statistics for given detectors * - varying origin + * @ingroup alihlt_component_datatypes */ # define kAliHLTRunStatisticsDataTypeID {'R','U','N','S','T','A','T','I'} /** Run Summary * - run summary * - origin : kAliHLTDataOriginOut ( HLT ) + * @ingroup alihlt_component_datatypes */ # define kAliHLTRunSummaryDataTypeID {'R','U','N','S','U','M','M','A'} /** general ROOT TObject * - a general TObject exported from the HLT analysis * - varying origin + * @ingroup alihlt_component_datatypes */ #define kAliHLTTObjectDataTypeID {'R','O','O','T','T','O','B','J'} /** ROOT TObjArray * - a TObjArray exported from the HLT analysis * - varying origin + * @ingroup alihlt_component_datatypes */ #define kAliHLTTObjArrayDataTypeID {'R','O','O','T','O','B','A','R'} /** ROOT TTree * - a TTree object exported from the HLT analysis * - varying origin + * @ingroup alihlt_component_datatypes */ #define kAliHLTTTreeDataTypeID {'R','O','O','T','T','R','E','E'} @@ -195,12 +254,14 @@ const int kAliHLTComponentDataTypefIDsize=8; * - a histogram object exported from the HLT analysis * - class derives from TH1 (directly or indirectly) and inherits all common functionality * - varying origin + * @ingroup alihlt_component_datatypes */ #define kAliHLTHistogramDataTypeID {'R','O','O','T','H','I','S','T'} /** ROOT TNtuple * - a TNtupl object exported from the HLT analysis * - varying origin + * @ingroup alihlt_component_datatypes */ #define kAliHLTTNtupleDataTypeID {'R','O','O','T','T','U','P','L'} @@ -300,10 +361,24 @@ extern "C" { AliHLTUInt64_t fShmID; }; + /** + * @defgroup alihlt_component_datatypes Common Component Data Types + * The analysis framework defines a number of common data types for + * usage in the detector modules, like e.g. ::kAliHLTAnyDataType + * and ::kAliHLTDataTypeDDLRaw. Those data types always have + * origin ::kAliHLTDataOriginAny. The correct detector origin can be + * set by using operator '|' + *
+   * AliHLTComponentDataType dt=kAliHLTDDLRawDataTypeID|kAliHLTDataOriginTPC
+   * 
+ * @ingroup alihlt_component + */ + /** * @struct AliHLTComponentDataType * Data type descriptor for data blocks transferred through the processing * chain. + * @ingroup alihlt_component_datatypes */ struct AliHLTComponentDataType { @@ -455,10 +530,14 @@ extern "C" { // ////////////////////////////////////////////////////////////////////////// - /** invalid event id */ + /** invalid event id + * @ingroup alihlt_component_datatypes + */ const AliHLTEventID_t kAliHLTVoidEventID=~(AliHLTEventID_t)0; - /** invalid data specification */ + /** invalid data specification + * @ingroup alihlt_component_datatypes + */ const AliHLTUInt32_t kAliHLTVoidDataSpec = ~(AliHLTUInt32_t)0; /** invalid shared memory type */ @@ -467,7 +546,9 @@ extern "C" { /** invalid shared memory id */ const AliHLTUInt64_t gkAliHLTComponentInvalidShmID = ~(AliHLTUInt64_t)0; - /** invalid data type */ + /** invalid data type + * @ingroup alihlt_component_datatypes + */ const AliHLTComponentDataType kAliHLTVoidDataType = { sizeof(AliHLTComponentDataType), kAliHLTVoidDataTypeID, @@ -478,59 +559,104 @@ extern "C" { // (commented below) are used. rootcint does not find the id if they // are char arrays defined with {} and individual chars. If strings // are used it works fine - /** any data type */ + /** any data type + * @ingroup alihlt_component_datatypes + */ const AliHLTComponentDataType kAliHLTAnyDataType = { sizeof(AliHLTComponentDataType), kAliHLTAnyDataTypeID, kAliHLTDataOriginAny }; - /** multiple output data types */ + /** multiple output data types + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTMultipleDataType; - /** data to file exchange subscriber */ + /** data to file exchange subscriber + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeFXSCalib; - /** DDL list data type */ + /** DDL list data type + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeDDL; - /** SOR data type */ + /** SOR data type + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeSOR; - /** EOR data type */ + /** EOR data type + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeEOR; - /** Event type specification */ + /** Event type specification + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeEvent; - /** Configuration event data type */ + /** Configuration event data type + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeComConf; - /** DCS value update event */ + /** DCS value update event + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeUpdtDCS; - /** RAW DDL data specification, origin is 'any', data publisher origin correctly */ + /** RAW DDL data specification, origin is 'any', data publisher origin correctly + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeDDLRaw; - /** ESD object data specification, origin is 'any' */ + /** ESD object data specification, origin is 'any' + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeESDObject; - /** ESD Tree data specification, origin is 'any' */ + /** ESD Tree data specification, origin is 'any' + + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeESDTree; - /** 16 bit Hardware address selection data specification, origin is 'any' */ + /** AliRoot TreeD data specification, origin is 'any' + * @ingroup alihlt_component_datatypes + */ + extern const AliHLTComponentDataType kAliHLTDataTypeAliTreeD; + + /** AliRoot TreeR data specification, origin is 'any' + * @ingroup alihlt_component_datatypes + */ + extern const AliHLTComponentDataType kAliHLTDataTypeAliTreeR; + + /** 16 bit Hardware address selection data specification, origin is 'any' + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeHwAddr16; - /** Event statistics */ + /** Event statistics + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeEventStatistics; - /** Event summary */ + /** Event summary + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeEventSummary; - /** Event statistics */ + /** Event statistics + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeRunStatistics; - /** Event summary */ + /** Event summary + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeRunSummary; ////////////////////////////////////////////////////////////////////////// @@ -539,19 +665,29 @@ extern "C" { // ////////////////////////////////////////////////////////////////////////// - /** general ROOT TObject */ + /** general ROOT TObject + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeTObject; // {ROOTTOBJ,"***"} - /** ROOT TObjArray */ + /** ROOT TObjArray + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeTObjArray; // {ROOTOBAR,"***"} - /** ROOT TTree */ + /** ROOT TTree + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeTTree; // {ROOTTREE,"***"} - /** ROOT TH1 (can be used for all histograms, they derive from TH1) */ + /** ROOT TH1 (can be used for all histograms, they derive from TH1) + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeHistogram; // {ROOTHIST,"***"} - /** ROOT TNtuple */ + /** ROOT TNtuple + * @ingroup alihlt_component_datatypes + */ extern const AliHLTComponentDataType kAliHLTDataTypeTNtuple; // {ROOTTUPL,"***"} ////////////////////////////////////////////////////////////////////////// @@ -614,6 +750,11 @@ extern "C" { // ////////////////////////////////////////////////////////////////////////// +/** Comparison operator for HLT component data types. + * The operator takes wildcards into account, i.e. the ::kAliHLTAnyDataType, + * ::kAliHLTAnyDataTypeID and ::kAliHLTDataOriginAny definitions. + * @ingroup alihlt_component_datatypes + */ inline bool operator==( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) { bool any1=true, any2=true, void1=true, void2=true, match=true; @@ -640,11 +781,18 @@ inline bool operator==( const AliHLTComponentDataType& dt1, const AliHLTComponen return true; } +/** Comparison operator for HLT component data types + * invers of @ref operator==( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) + * @ingroup alihlt_component_datatypes + */ inline bool operator!=( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) { return !(dt1==dt2); } +/** exact comparison of HLT component data types + * @ingroup alihlt_component_datatypes + */ inline bool MatchExactly( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) { for ( int i = 0; i < kAliHLTComponentDataTypefIDsize; i++ ) @@ -656,6 +804,9 @@ inline bool MatchExactly( const AliHLTComponentDataType& dt1, const AliHLTCompon return true; } +/** merge operator for HLT component data types and origins + * @ingroup alihlt_component_datatypes + */ inline AliHLTComponentDataType operator|(const AliHLTComponentDataType srcdt, const char origin[kAliHLTComponentDataTypefOriginSize]) { AliHLTComponentDataType dt=srcdt; diff --git a/HLT/BASE/AliHLTSystem.h b/HLT/BASE/AliHLTSystem.h index a5bbfdd5660..a3f10cca8c0 100644 --- a/HLT/BASE/AliHLTSystem.h +++ b/HLT/BASE/AliHLTSystem.h @@ -331,7 +331,7 @@ class AliHLTSystem : public AliHLTLogging { /** * Scan options. * Known options - * + * * \li loglevel=level
* logging level for this processing * \li frameworklog=level
diff --git a/HLT/BASE/interface/Makefile.am b/HLT/BASE/interface/Makefile.am index b0c91e05fe7..9be6f278cdf 100644 --- a/HLT/BASE/interface/Makefile.am +++ b/HLT/BASE/interface/Makefile.am @@ -10,7 +10,7 @@ MODULE = HLTinterface SUBDIRS = -EXTRA_DIST = +EXTRA_DIST = HLTinterface-LinkDef.h AM_CPPFLAGS = -DMODULE=$(MODULE) \ -I$(top_srcdir)/BASE diff --git a/HLT/BASE/util/AliHLTDataGenerator.h b/HLT/BASE/util/AliHLTDataGenerator.h index e133cb3213c..7ecfd1fc9fb 100644 --- a/HLT/BASE/util/AliHLTDataGenerator.h +++ b/HLT/BASE/util/AliHLTDataGenerator.h @@ -24,7 +24,7 @@ * Library: \b libAliHLTUtil. * * Mandatory arguments:
- * + * * \li -datatype datatype dataorigin
* data type ID and origin, e.g. -datatype 'CLUSTERS' 'TPC ' * \li -dataspec specification
diff --git a/HLT/BASE/util/AliHLTFilePublisher.h b/HLT/BASE/util/AliHLTFilePublisher.h index da6249e8933..257e5689743 100644 --- a/HLT/BASE/util/AliHLTFilePublisher.h +++ b/HLT/BASE/util/AliHLTFilePublisher.h @@ -33,7 +33,7 @@ class TFile; * Library: \b libAliHLTUtil. * * Mandatory arguments:
- * + * * \li -datafile filename * \li -datafilelist file pattern
* not yet implemented diff --git a/HLT/BASE/util/AliHLTFileWriter.h b/HLT/BASE/util/AliHLTFileWriter.h index 14cdff22e2e..2602a97b7f6 100644 --- a/HLT/BASE/util/AliHLTFileWriter.h +++ b/HLT/BASE/util/AliHLTFileWriter.h @@ -24,10 +24,10 @@ * Library: \b libAliHLTUtil.so * * Mandatory arguments:
- * + * * * Optional arguments:
- * + * * \li -datafile filename
* file name base * \li -directory directory
diff --git a/HLT/BASE/util/AliHLTLoaderPublisherComponent.h b/HLT/BASE/util/AliHLTLoaderPublisherComponent.h index 01616dadcfc..41f932fed7e 100644 --- a/HLT/BASE/util/AliHLTLoaderPublisherComponent.h +++ b/HLT/BASE/util/AliHLTLoaderPublisherComponent.h @@ -31,7 +31,7 @@ class AliLoader; * Library: \b libAliHLTUtil. * * Mandatory arguments:
- * + * * \li -loader loader name * e.g. -loader TPCLoader * \li -tree tree name : digits (default), clusters diff --git a/HLT/BASE/util/AliHLTRawReaderPublisherComponent.h b/HLT/BASE/util/AliHLTRawReaderPublisherComponent.h index fd4cdcb8fe7..420644d1051 100644 --- a/HLT/BASE/util/AliHLTRawReaderPublisherComponent.h +++ b/HLT/BASE/util/AliHLTRawReaderPublisherComponent.h @@ -38,7 +38,7 @@ * Library: \b libAliHLTUtil. * * Mandatory arguments:
- * + * * \li -detector detector name * e.g. -detector TPC * \li -equipmentid id diff --git a/HLT/BASE/util/AliHLTRootFileStreamerComponent.h b/HLT/BASE/util/AliHLTRootFileStreamerComponent.h index 47080d3c4b0..a6e486caefa 100644 --- a/HLT/BASE/util/AliHLTRootFileStreamerComponent.h +++ b/HLT/BASE/util/AliHLTRootFileStreamerComponent.h @@ -25,7 +25,7 @@ * Library: \b libAliHLTUtil. * * Mandatory arguments:
- * + * * * Optional arguments:
* \li -datatype datatype dataorigin
diff --git a/HLT/BASE/util/AliHLTRootFileWriterComponent.h b/HLT/BASE/util/AliHLTRootFileWriterComponent.h index 28a1f8233fe..8954d15b05d 100644 --- a/HLT/BASE/util/AliHLTRootFileWriterComponent.h +++ b/HLT/BASE/util/AliHLTRootFileWriterComponent.h @@ -28,10 +28,10 @@ class TFile; * Library: \b libAliHLTUtil.so * * Mandatory arguments:
- * + * * * Optional arguments:
- * + * * * See AliHLTFileWriter for full list of arguments. */ diff --git a/HLT/PHOS/AliHLTPHOSAltroChannelSelectorComponent.h b/HLT/PHOS/AliHLTPHOSAltroChannelSelectorComponent.h index 7081e2eef49..4de55ddef2c 100644 --- a/HLT/PHOS/AliHLTPHOSAltroChannelSelectorComponent.h +++ b/HLT/PHOS/AliHLTPHOSAltroChannelSelectorComponent.h @@ -41,10 +41,10 @@ * Library: \b libAliHLTTPC * * Mandatory arguments:
- * + * * * Optional arguments:
- * + * * */ class AliHLTPHOSAltroChannelSelectorComponent : public AliHLTProcessor { diff --git a/HLT/RCU/AliHLTAltroChannelSelectorComponent.h b/HLT/RCU/AliHLTAltroChannelSelectorComponent.h index 50ad0c74a46..5b36779eebc 100644 --- a/HLT/RCU/AliHLTAltroChannelSelectorComponent.h +++ b/HLT/RCU/AliHLTAltroChannelSelectorComponent.h @@ -36,10 +36,10 @@ * Library: \b libAliHLTRCU * * Mandatory arguments:
- * + * * * Optional arguments:
- * + * * */ class AliHLTAltroChannelSelectorComponent : public AliHLTProcessor { diff --git a/HLT/SampleLib/AliHLTSampleComponent1.h b/HLT/SampleLib/AliHLTSampleComponent1.h index 8fa69c6ceef..dd7286397cf 100644 --- a/HLT/SampleLib/AliHLTSampleComponent1.h +++ b/HLT/SampleLib/AliHLTSampleComponent1.h @@ -30,21 +30,21 @@ * Output Data Types: none
* *

Mandatory arguments:

- * + * * \li -mandatory1 teststring
* an argument with one parameter * \li -mandatory2
* an argument without parameters * *

Optional arguments:

- * + * * \li -optional1 teststring
* an argument with one parameter * \li -optional2
* an argument without parameters * *

Configuration:

- * + * * \li -config1 teststring
* a configuration argument with one parameter * \li -config2
diff --git a/HLT/SampleLib/AliHLTSampleMonitoringComponent.h b/HLT/SampleLib/AliHLTSampleMonitoringComponent.h index 3a2a01a4c7d..98b5c2a6a95 100644 --- a/HLT/SampleLib/AliHLTSampleMonitoringComponent.h +++ b/HLT/SampleLib/AliHLTSampleMonitoringComponent.h @@ -47,10 +47,10 @@ class TH1F; * to the output stream * *

Mandatory arguments:

- * + * * *

Optional arguments:

- * + * * \li -push-histograms
* push histograms idividually * \li -push-ttree (default)
@@ -59,7 +59,7 @@ class TH1F; * push histograms embedded in TObjArray * *

Configuration:

- * + * * *

Default CDB entries:

* The component has no default CDB entry. diff --git a/HLT/TPCLib/AliHLTTPCAgent.cxx b/HLT/TPCLib/AliHLTTPCAgent.cxx index 4cae3cf7100..7a91aa916ea 100644 --- a/HLT/TPCLib/AliHLTTPCAgent.cxx +++ b/HLT/TPCLib/AliHLTTPCAgent.cxx @@ -51,6 +51,8 @@ AliHLTTPCAgent gAliHLTTPCAgent; #include "AliHLTTPCZeroSuppressionComponent.h" #include "AliHLTTPCDigitDumpComponent.h" #include "AliHLTTPCEsdWriterComponent.h" +#include "AliHLTTPCOfflineClustererComponent.h" +#include "AliHLTTPCOfflineTrackerComponent.h" /** ROOT macro for the implementation of ROOT specific class methods */ ClassImp(AliHLTTPCAgent) @@ -177,6 +179,8 @@ int AliHLTTPCAgent::RegisterComponents(AliHLTComponentHandler* pHandler) const pHandler->AddComponent(new AliHLTTPCDigitDumpComponent); pHandler->AddComponent(new AliHLTTPCEsdWriterComponent::AliWriter); pHandler->AddComponent(new AliHLTTPCEsdWriterComponent::AliConverter); + pHandler->AddComponent(new AliHLTTPCOfflineClustererComponent); + pHandler->AddComponent(new AliHLTTPCOfflineTrackerComponent); return 0; } diff --git a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx index cc433948d90..486a38c4536 100644 --- a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx +++ b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx @@ -130,7 +130,6 @@ int AliHLTTPCClusterFinderComponent::GetOutputDataTypes(AliHLTComponentDataTypeL // see header file for class documentation tgtList.clear(); tgtList.push_back(AliHLTTPCDefinitions::fgkClustersDataType); - tgtList.push_back(AliHLTTPCDefinitions::fgkActivePadsDataType); return tgtList.size(); } diff --git a/HLT/TPCLib/AliHLTTPCDefinitions.cxx b/HLT/TPCLib/AliHLTTPCDefinitions.cxx index 99f3e0cb596..e84180053fd 100644 --- a/HLT/TPCLib/AliHLTTPCDefinitions.cxx +++ b/HLT/TPCLib/AliHLTTPCDefinitions.cxx @@ -62,10 +62,6 @@ const AliHLTComponentDataType AliHLTTPCDefinitions::fgkCalibPulserDataType = (AliHLTComponentDataType){sizeof(AliHLTComponentDataType), {'C','A','L','_','P','U','L','S'}, kAliHLTDataOriginAny} | kAliHLTDataOriginTPC; const AliHLTComponentDataType AliHLTTPCDefinitions::fgkCalibCEDataType = (AliHLTComponentDataType){sizeof(AliHLTComponentDataType), {'C','A','L','_','C','E',' ',' '}, kAliHLTDataOriginAny} | kAliHLTDataOriginTPC; -const AliHLTComponentDataType AliHLTTPCDefinitions::fgkActivePadsDataType = - (AliHLTComponentDataType){sizeof(AliHLTComponentDataType), {'A','C','T','I','V','P','A','D'}, kAliHLTDataOriginAny} | kAliHLTDataOriginTPC; -const AliHLTComponentDataType AliHLTTPCDefinitions::fgkNoiseHistoDataType = - (AliHLTComponentDataType){sizeof(AliHLTComponentDataType), {'N','O','I','S','E','M','A','P'}, kAliHLTDataOriginAny} | kAliHLTDataOriginTPC; AliHLTTPCDefinitions::AliHLTTPCDefinitions() { diff --git a/HLT/TPCLib/AliHLTTPCDefinitions.h b/HLT/TPCLib/AliHLTTPCDefinitions.h index c8a66b70953..c1b646ce1cc 100644 --- a/HLT/TPCLib/AliHLTTPCDefinitions.h +++ b/HLT/TPCLib/AliHLTTPCDefinitions.h @@ -96,14 +96,11 @@ public: /** central electrode calibration data */ static const AliHLTComponentDataType fgkCalibCEDataType; // see above - /** active pads data type, Used for cosmics test december 2007 */ - static const AliHLTComponentDataType fgkActivePadsDataType; // see above - - /** noise mapping histograms */ - static const AliHLTComponentDataType fgkNoiseHistoDataType; // see above - - ClassDef(AliHLTTPCDefinitions, 1); + // Offline wrappers + /** offline TreeR tree containing recpoints */ + static const AliHLTComponentDataType fgkOfflineTreeR; // see above + ClassDef(AliHLTTPCDefinitions, 2) }; #endif diff --git a/HLT/TPCLib/AliHLTTPCDigitDumpComponent.h b/HLT/TPCLib/AliHLTTPCDigitDumpComponent.h index bf1c2996605..6236d93f874 100644 --- a/HLT/TPCLib/AliHLTTPCDigitDumpComponent.h +++ b/HLT/TPCLib/AliHLTTPCDigitDumpComponent.h @@ -32,10 +32,10 @@ * * See AliHLTFileWriter for arguments, further specific options * Mandatory arguments:
- * + * * * Optional arguments:
- * + * * \li -digitreader reader
* type of the digit reader: unpacked, packed, raw, decoder * default 'decoder' diff --git a/HLT/TPCLib/AliHLTTPCEsdWriterComponent.cxx b/HLT/TPCLib/AliHLTTPCEsdWriterComponent.cxx index 8e054d25fa9..f6ce5d109bc 100644 --- a/HLT/TPCLib/AliHLTTPCEsdWriterComponent.cxx +++ b/HLT/TPCLib/AliHLTTPCEsdWriterComponent.cxx @@ -297,7 +297,7 @@ int AliHLTTPCEsdWriterComponent::Reconfigure(const char* cdbEntry, const char* c { // see header file for class documentation int iResult=0; - const char* path="HLT/ConfigHLT/SolenoidBz"; + const char* path=kAliHLTCDBSolenoidBz; const char* defaultNotify=""; if (cdbEntry) { path=cdbEntry; diff --git a/HLT/TPCLib/AliHLTTPCEsdWriterComponent.h b/HLT/TPCLib/AliHLTTPCEsdWriterComponent.h index f8c633b8fb4..ee58b938c93 100644 --- a/HLT/TPCLib/AliHLTTPCEsdWriterComponent.h +++ b/HLT/TPCLib/AliHLTTPCEsdWriterComponent.h @@ -45,14 +45,14 @@ class AliHLTTPCTrackArray; * componentid: \b TPCEsdConverter
* componentlibrary: \b libAliHLTTPC.so
* Arguments TPCEsdWriter:
- * + * * \li -datafile filename
* file name base * \li -directory directory
* target directory * * Arguments TPCEsdConverter:
- * + * * \li -notree * write ESD directly to output (::kAliHLTDataTypeESDObject) * \li -tree diff --git a/HLT/TPCLib/offline/AliHLTTPCDigitPublisherComponent.h b/HLT/TPCLib/offline/AliHLTTPCDigitPublisherComponent.h index 213816ea5a1..e07a8f2d09e 100644 --- a/HLT/TPCLib/offline/AliHLTTPCDigitPublisherComponent.h +++ b/HLT/TPCLib/offline/AliHLTTPCDigitPublisherComponent.h @@ -31,7 +31,7 @@ class AliHLTTPCFileHandler; * Library: \b libAliHLTTPC. * * Mandatory arguments:
- * + * * \li -slice no
* TPC slice no (slice = inner + outer sector) * \li -partition no
diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx new file mode 100644 index 00000000000..1df2e0a38de --- /dev/null +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx @@ -0,0 +1,216 @@ +// $Id$ + +//************************************************************************** +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* * +//* Primary Authors: Matthias Richter * +//* * +//* 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. * +//************************************************************************** + +/** @file AliHLTTPCOfflineClustererComponent.cxx + @author Matthias Richter + @date + @brief Wrapper component to the TPC offline cluster finder +*/ + +#include "AliHLTTPCOfflineClustererComponent.h" +#include "AliHLTTPCDefinitions.h" +#include "AliRawReaderMemory.h" +#include "AliTPCParam.h" +#include "AliTPCParamSR.h" +#include "AliTPCclustererMI.h" +#include "AliDAQ.h" +#include "TString.h" +#include "TObjArray.h" +#include "TObjString.h" +#include "TTree.h" + +/** ROOT macro for the implementation of ROOT specific class methods */ +ClassImp(AliHLTTPCOfflineClustererComponent) + +AliHLTTPCOfflineClustererComponent::AliHLTTPCOfflineClustererComponent() +{ + // see header file for class documentation + // or + // refer to README to build package + // or + // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt +} + +AliHLTTPCOfflineClustererComponent::~AliHLTTPCOfflineClustererComponent() +{ + // see header file for class documentation +} + +const char* AliHLTTPCOfflineClustererComponent::GetComponentID() +{ + // see header file for class documentation + return "TPCOfflineClusterer"; +} + +void AliHLTTPCOfflineClustererComponent::GetInputDataTypes( vector& list) +{ + // see header file for class documentation + list.push_back(kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTPC); +} + +AliHLTComponentDataType AliHLTTPCOfflineClustererComponent::GetOutputDataType() +{ + // see header file for class documentation + return kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC; +} + +void AliHLTTPCOfflineClustererComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier) +{ + // see header file for class documentation + constBase = 0;inputMultiplier = 1; +} + +AliHLTComponent* AliHLTTPCOfflineClustererComponent::Spawn() +{ + // see header file for class documentation + return new AliHLTTPCOfflineClustererComponent; +} + +int AliHLTTPCOfflineClustererComponent::DoInit( int argc, const char** argv ) +{ + // see header file for class documentation + int iResult=0; + + TString argument=""; + TString configuration=""; + int bMissingParam=0; + for (int i=0; i=0; i++) { + argument=argv[i]; + if (argument.IsNull()) continue; + + } + if (bMissingParam) { + HLTError("missing parameter for argument %s", argument.Data()); + iResult=-EINVAL; + } + + if (iResult>=0 && !configuration.IsNull()) { + iResult=Configure(configuration.Data()); + } else { + iResult=Reconfigure(NULL, NULL); + } + + return iResult; +} + +int AliHLTTPCOfflineClustererComponent::DoDeinit() +{ + // see header file for class documentation + return 0; +} + +int AliHLTTPCOfflineClustererComponent::DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/) +{ + // see header file for class documentation + int iResult=0; + for (const AliHLTComponentBlockData* pBlock=GetFirstInputBlock(kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTPC); + pBlock!=NULL; + pBlock=GetNextInputBlock()) { + int slice=AliHLTTPCDefinitions::GetMinSliceNr(pBlock->fSpecification); + int patch=AliHLTTPCDefinitions::GetMinPatchNr(pBlock->fSpecification); + if (slice!=AliHLTTPCDefinitions::GetMaxSliceNr(pBlock->fSpecification) || + patch!=AliHLTTPCDefinitions::GetMaxPatchNr(pBlock->fSpecification)) { + HLTError("ambiguous readout partition (specification 0x%80x), skipping input block", pBlock->fSpecification); + break; + } + if (slice<0 || slice>35 || patch<0 || slice>5) { + HLTError("invalid readout partition %d/%d (specification 0x%80x, skipping input block", slice, patch, pBlock->fSpecification); + break; + } + + TTree* pTreeR=new TTree("TreeR", "Reconstructed Points Container"); + AliRawReaderMemory* pRawReader=new AliRawReaderMemory; + + // TODO: choose the right parameter + AliTPCParam* pParam = new AliTPCParamSR; + AliTPCclustererMI* pClusterer = new AliTPCclustererMI(pParam); + + if (pTreeR && pRawReader && pClusterer) { + // setup raw reader and cluster finder + pRawReader->SetMemory( reinterpret_cast( pBlock->fPtr ), pBlock->fSize ); + int ddlId=AliDAQ::DdlIDOffset("TPC"); + if (patch<2) { + ddlId+=2*slice+patch; + } else { + ddlId+=72; + ddlId+=4*slice+patch; + } + pRawReader->SetEquipmentID(ddlId); + + // TODO: find out from the data + //pClusterer->SetOldRCUFormat(kTRUE); + + // run the cluster finder + pClusterer->SetOutput(pTreeR); + pClusterer->Digits2Clusters(pRawReader); + + // insert tree into output stream + PushBack(pTreeR, kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC, pBlock->fSpecification); + + if (pClusterer) delete pClusterer; pClusterer=NULL; + if (pParam) delete pParam; pParam=NULL; + if (pRawReader) delete pRawReader; pRawReader=NULL; + if (pTreeR) delete pTreeR; pTreeR=NULL; + } else { + iResult=-ENOMEM; + } + } + + return iResult; +} + +int AliHLTTPCOfflineClustererComponent::Configure(const char* arguments) +{ + // see header file for class documentation + int iResult=0; + if (!arguments) return iResult; + + TString allArgs=arguments; + TString argument; + int bMissingParam=0; + + TObjArray* pTokens=allArgs.Tokenize(" "); + if (pTokens) { + for (int i=0; iGetEntries() && iResult>=0; i++) { + argument=((TObjString*)pTokens->At(i))->GetString(); + if (argument.IsNull()) continue; + + if (argument.CompareTo("-something")==0) { + if ((bMissingParam=(++i>=pTokens->GetEntries()))) break; + + } else { + HLTError("unknown argument %s", argument.Data()); + iResult=-EINVAL; + break; + } + } + delete pTokens; + } + if (bMissingParam) { + HLTError("missing parameter for argument %s", argument.Data()); + iResult=-EINVAL; + } + return iResult; +} + +int AliHLTTPCOfflineClustererComponent::Reconfigure(const char* /*cdbEntry*/, const char* /*chainId*/) +{ + // see header file for class documentation + int iResult=0; + // CDB stuff needs to be implemented + return iResult; +} diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.h b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.h new file mode 100644 index 00000000000..d9ba962f415 --- /dev/null +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.h @@ -0,0 +1,93 @@ +//-*- Mode: C++ -*- +// $Id$ +#ifndef ALIHLTTPCOFFLINECLUSTERFINDERCOMPONENT_H +#define ALIHLTTPCOFFLINECLUSTERFINDERCOMPONENT_H + +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* See cxx source for full Copyright notice */ + +/** @file AliHLTTPCOfflineClustererComponent.h + @author Matthias Richter + @date + @brief Wrapper component to the TPC offline cluster finder +*/ + +#include "AliHLTProcessor.h" + +/** + * @class AliHLTTPCOfflineClustererComponent + * Wrapper component to the TPC offline cluster finder. + * + * The component interfaces the AliTPCclustererMI of the TPC offline code + * to the online HLT. The component expects raw data as input and publishes + * a full TreeR containing the cluster information. + * + *

General properties:

+ * + * Component ID: \b TPCOfflineCF
+ * Library: \b libAliHLTTPC.so
+ * Input Data Types: @ref kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTPC
+ * Output Data Types: @ref kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC
+ * + *

Mandatory arguments:

+ * + * + *

Optional arguments:

+ * + * + *

Configuration:

+ * + * + *

Default CDB entries:

+ * - so far the component does not load any configuration object + * + *

Performance:

+ * To be determined. + * + *

Memory consumption:

+ * To be determined. + * + *

Output size:

+ * To be determined. + * + */ +class AliHLTTPCOfflineClustererComponent : public AliHLTProcessor { +public: + AliHLTTPCOfflineClustererComponent(); + virtual ~AliHLTTPCOfflineClustererComponent(); + + // AliHLTComponent interface functions + const char* GetComponentID(); + void GetInputDataTypes( vector& list); + AliHLTComponentDataType GetOutputDataType(); + void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); + + // Spawn function, return new class instance + AliHLTComponent* Spawn(); + + protected: + // AliHLTComponent interface functions + int DoInit( int argc, const char** argv ); + int DoDeinit(); + int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); + int Reconfigure(const char* cdbEntry, const char* chainId); + + using AliHLTProcessor::DoEvent; + +private: + /** copy constructor prohibited */ + AliHLTTPCOfflineClustererComponent(const AliHLTTPCOfflineClustererComponent&); + /** assignment operator prohibited */ + AliHLTTPCOfflineClustererComponent& operator=(const AliHLTTPCOfflineClustererComponent&); + + /** + * Configure the component. + * Parse a string for the configuration arguments and set the component + * properties. + */ + int Configure(const char* arguments); + + ClassDef(AliHLTTPCOfflineClustererComponent, 0) +}; +#endif diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx new file mode 100644 index 00000000000..7ee3606c5cc --- /dev/null +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx @@ -0,0 +1,156 @@ +// $Id$ + +//************************************************************************** +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* * +//* Primary Authors: Matthias Richter * +//* * +//* 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. * +//************************************************************************** + +/** @file AliHLTTPCOfflineTrackerComponent.cxx + @author Matthias Richter + @date + @brief Wrapper component to the TPC offline tracker +*/ + +#include "AliHLTTPCOfflineTrackerComponent.h" +#include "TString.h" +#include "TObjArray.h" +#include "TObjString.h" + +/** ROOT macro for the implementation of ROOT specific class methods */ +ClassImp(AliHLTTPCOfflineTrackerComponent) + +AliHLTTPCOfflineTrackerComponent::AliHLTTPCOfflineTrackerComponent() +{ + // see header file for class documentation + // or + // refer to README to build package + // or + // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt +} + +AliHLTTPCOfflineTrackerComponent::~AliHLTTPCOfflineTrackerComponent() +{ + // see header file for class documentation +} + +const char* AliHLTTPCOfflineTrackerComponent::GetComponentID() +{ + // see header file for class documentation + return "TPCOfflineTracker"; +} + +void AliHLTTPCOfflineTrackerComponent::GetInputDataTypes( vector& list) +{ + // see header file for class documentation + list.push_back(kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC); +} + +AliHLTComponentDataType AliHLTTPCOfflineTrackerComponent::GetOutputDataType() +{ + // see header file for class documentation + return kAliHLTDataTypeESDTree|kAliHLTDataOriginTPC; +} + +void AliHLTTPCOfflineTrackerComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier) +{ + // see header file for class documentation + constBase = 0;inputMultiplier = 1; +} + +AliHLTComponent* AliHLTTPCOfflineTrackerComponent::Spawn() +{ + // see header file for class documentation + return new AliHLTTPCOfflineTrackerComponent; +} + +int AliHLTTPCOfflineTrackerComponent::DoInit( int argc, const char** argv ) +{ + // see header file for class documentation + int iResult=0; + + TString argument=""; + TString configuration=""; + int bMissingParam=0; + for (int i=0; i=0; i++) { + argument=argv[i]; + if (argument.IsNull()) continue; + + } + if (bMissingParam) { + HLTError("missing parameter for argument %s", argument.Data()); + iResult=-EINVAL; + } + + if (iResult>=0 && !configuration.IsNull()) { + iResult=Configure(configuration.Data()); + } else { + iResult=Reconfigure(NULL, NULL); + } + + return iResult; +} + +int AliHLTTPCOfflineTrackerComponent::DoDeinit() +{ + // see header file for class documentation + return 0; +} + +int AliHLTTPCOfflineTrackerComponent::DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/) +{ + // see header file for class documentation + HLTInfo("processing data"); + + return 0; +} + +int AliHLTTPCOfflineTrackerComponent::Configure(const char* arguments) +{ + // see header file for class documentation + int iResult=0; + if (!arguments) return iResult; + + TString allArgs=arguments; + TString argument; + int bMissingParam=0; + + TObjArray* pTokens=allArgs.Tokenize(" "); + if (pTokens) { + for (int i=0; iGetEntries() && iResult>=0; i++) { + argument=((TObjString*)pTokens->At(i))->GetString(); + if (argument.IsNull()) continue; + + if (argument.CompareTo("-something")==0) { + if ((bMissingParam=(++i>=pTokens->GetEntries()))) break; + + } else { + HLTError("unknown argument %s", argument.Data()); + iResult=-EINVAL; + break; + } + } + delete pTokens; + } + if (bMissingParam) { + HLTError("missing parameter for argument %s", argument.Data()); + iResult=-EINVAL; + } + return iResult; +} + +int AliHLTTPCOfflineTrackerComponent::Reconfigure(const char* /*cdbEntry*/, const char* /*chainId*/) +{ + // see header file for class documentation + int iResult=0; + return iResult; +} diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.h b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.h new file mode 100644 index 00000000000..50dc660b5a3 --- /dev/null +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.h @@ -0,0 +1,93 @@ +//-*- Mode: C++ -*- +// $Id$ +#ifndef ALIHLTTPCOFFLINETRACKERCOMPONENT_H +#define ALIHLTTPCOFFLINETRACKERCOMPONENT_H + +//* This file is property of and copyright by the ALICE HLT Project * +//* ALICE Experiment at CERN, All rights reserved. * +//* See cxx source for full Copyright notice * + +/** @file AliHLTTPCOfflineTrackerComponent.h + @author Matthias Richter + @date + @brief Wrapper component to the TPC offline cluster finder +*/ + +#include "AliHLTProcessor.h" + +/** + * @class AliHLTTPCOfflineTrackerComponent + * Wrapper component to the TPC offline tracker. + * + * The component interfaces the AliTPCtrackerMI of the TPC offline code + * to the online HLT. The component expects a full TreeR containing the + * cluster information. The output is in ESD format. + * + *

General properties:

+ * + * Component ID: \b TPCOfflineTracker
+ * Library: \b libAliHLTTPC.so
+ * Input Data Types: @ref kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC
+ * Output Data Types: @ref kAliHLTDataTypeESDTree|kAliHLTDataOriginTPC
+ * + *

Mandatory arguments:

+ * + * + *

Optional arguments:

+ * + * + *

Configuration:

+ * + * + *

Default CDB entries:

+ * - loads magnetic field value from HLT/ConfigHLT/SolenoidBz. + * + *

Performance:

+ * To be determined. + * + *

Memory consumption:

+ * To be determined. + * + *

Output size:

+ * To be determined. + * + */ +class AliHLTTPCOfflineTrackerComponent : public AliHLTProcessor { +public: + AliHLTTPCOfflineTrackerComponent(); + virtual ~AliHLTTPCOfflineTrackerComponent(); + + // AliHLTComponent interface functions + const char* GetComponentID(); + void GetInputDataTypes( vector& list); + AliHLTComponentDataType GetOutputDataType(); + void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); + + // Spawn function, return new class instance + AliHLTComponent* Spawn(); + + protected: + // AliHLTComponent interface functions + int DoInit( int argc, const char** argv ); + int DoDeinit(); + int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); + int Reconfigure(const char* cdbEntry, const char* chainId); + + using AliHLTProcessor::DoEvent; + +private: + /** copy constructor prohibited */ + AliHLTTPCOfflineTrackerComponent(const AliHLTTPCOfflineTrackerComponent&); + /** assignment operator prohibited */ + AliHLTTPCOfflineTrackerComponent& operator=(const AliHLTTPCOfflineTrackerComponent&); + + /** + * Configure the component. + * Parse a string for the configuration arguments and set the component + * properties. + */ + int Configure(const char* arguments); + + ClassDef(AliHLTTPCOfflineTrackerComponent, 0) +}; +#endif diff --git a/HLT/comp/AliHLTCOMPHuffmanAltroCalibComponent.h b/HLT/comp/AliHLTCOMPHuffmanAltroCalibComponent.h index 27adda865fd..7cb6196e6ac 100644 --- a/HLT/comp/AliHLTCOMPHuffmanAltroCalibComponent.h +++ b/HLT/comp/AliHLTCOMPHuffmanAltroCalibComponent.h @@ -25,7 +25,7 @@ class AliHLTCOMPHuffmanData; * used for calibration of the Huffman code table (which is created here). * * Mandatory arguments:
- * + * * \li -origin detector <\i>
* set origin of data for code creation to specify output table (parameter transient) * \li -runnumber decimal number <\i>
@@ -36,7 +36,7 @@ class AliHLTCOMPHuffmanData; * set number of trailerwords of incoming data (ranging from 1 to 3) * * Optional arguments:
- * + * * \li -tablepath path to Huffman code table <\i>
* set path to out put Huffman code table as root file, if no path is given, output path is set to current path (parameter transient) * diff --git a/HLT/comp/AliHLTCOMPHuffmanAltroComponent.h b/HLT/comp/AliHLTCOMPHuffmanAltroComponent.h index f7e8e161842..00b14e28b09 100644 --- a/HLT/comp/AliHLTCOMPHuffmanAltroComponent.h +++ b/HLT/comp/AliHLTCOMPHuffmanAltroComponent.h @@ -28,7 +28,7 @@ class AliHLTCOMPHuffmanData; * Library: \b libAliHLTComp * * Mandatory arguments:
- * + * * \li -origin detector <\i>
* set origin of data to specify Huffman code table to be read in (parameter transient) * \li -runnumber decimal number <\i>
@@ -39,7 +39,7 @@ class AliHLTCOMPHuffmanData; * set number of trailerwords of incoming data (ranging from 1 to 3) * * Optional arguments:
- * + * * \li -tablepath path to Huffman code table <\i>
* set path to read Huffman code table from root file, if no path is given, path is set to current path (parameter transient) * diff --git a/HLT/libAliHLTTPC.pkg b/HLT/libAliHLTTPC.pkg index 8e3b4844794..578204da6e7 100644 --- a/HLT/libAliHLTTPC.pkg +++ b/HLT/libAliHLTTPC.pkg @@ -24,6 +24,8 @@ CLASS_HDRS:= AliHLTTPCTransform.h \ AliHLTTPCTrackArray.h \ AliHLTTPCTrack.h \ offline/AliHLTTPCDigitPublisherComponent.h \ + offline/AliHLTTPCOfflineClustererComponent.h \ + offline/AliHLTTPCOfflineTrackerComponent.h \ AliHLTTPCClusters.h \ AliHLTTPCConfMapFit.h \ AliHLTTPCConfMapTrack.h \ @@ -74,9 +76,6 @@ CLASS_HDRS:= AliHLTTPCTransform.h \ AliHLTTPCKryptonClusterFinderComponent.h -# offline/AliHLTTPCOfflineClustererComponent.h -# offline/AliHLTTPCOfflineTrackerComponent.h - # AliHLTTPCDDLDataFileHandler.h # tracking/AliHLTTPCHough.h \ diff --git a/HLT/libHLTbase.pkg b/HLT/libHLTbase.pkg index 90ee6584f24..349dc8d1838 100644 --- a/HLT/libHLTbase.pkg +++ b/HLT/libHLTbase.pkg @@ -43,6 +43,7 @@ MODULE_SRCS= AliHLT_C_Component_WrapperInterface.cxx \ MODULE_HDRS:= $(CLASS_HDRS) \ AliHLTDataTypes.h \ + AliHLTCommonCDBEntries.h \ AliHLTMisc.h \ AliHLT_C_Component_WrapperInterface.h \ AliHLTDefinitions.h \ diff --git a/HLT/rec/AliHLTReconstructor.h b/HLT/rec/AliHLTReconstructor.h index 725ca6abe97..ff70451d5fc 100644 --- a/HLT/rec/AliHLTReconstructor.h +++ b/HLT/rec/AliHLTReconstructor.h @@ -41,7 +41,7 @@ class AliHLTEsdManager; * will only load libAliHLTSample.so * * Optional arguments:
- * + * * \li loglevel=level
* level can be a hex number encoding the @ref AliHLTComponentLogSeverity * \li alilog=off
diff --git a/HLT/sim/AliHLTOUTComponent.h b/HLT/sim/AliHLTOUTComponent.h index b81eee90ce5..9c5f70474b9 100644 --- a/HLT/sim/AliHLTOUTComponent.h +++ b/HLT/sim/AliHLTOUTComponent.h @@ -38,15 +38,15 @@ typedef vector AliHLTMonitoringWriterPVector; * Output Data Types: none (offline data sink)
* *

Mandatory arguments:

- * + * * *

Optional arguments:

- * + * * \li -links n
* number of output ddl links * *

Configuration:

- * + * * none * *

Default CDB entries:

-- 2.43.0