- added skeleton of of offline clusterizer and tracker components
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 21 Apr 2008 09:05:23 +0000 (09:05 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 21 Apr 2008 09:05:23 +0000 (09:05 +0000)
- 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

35 files changed:
HLT/BASE/AliHLTCommonCDBEntries.h [new file with mode: 0644]
HLT/BASE/AliHLTComponent.h
HLT/BASE/AliHLTDataTypes.cxx
HLT/BASE/AliHLTDataTypes.h
HLT/BASE/AliHLTSystem.h
HLT/BASE/interface/Makefile.am
HLT/BASE/util/AliHLTDataGenerator.h
HLT/BASE/util/AliHLTFilePublisher.h
HLT/BASE/util/AliHLTFileWriter.h
HLT/BASE/util/AliHLTLoaderPublisherComponent.h
HLT/BASE/util/AliHLTRawReaderPublisherComponent.h
HLT/BASE/util/AliHLTRootFileStreamerComponent.h
HLT/BASE/util/AliHLTRootFileWriterComponent.h
HLT/PHOS/AliHLTPHOSAltroChannelSelectorComponent.h
HLT/RCU/AliHLTAltroChannelSelectorComponent.h
HLT/SampleLib/AliHLTSampleComponent1.h
HLT/SampleLib/AliHLTSampleMonitoringComponent.h
HLT/TPCLib/AliHLTTPCAgent.cxx
HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx
HLT/TPCLib/AliHLTTPCDefinitions.cxx
HLT/TPCLib/AliHLTTPCDefinitions.h
HLT/TPCLib/AliHLTTPCDigitDumpComponent.h
HLT/TPCLib/AliHLTTPCEsdWriterComponent.cxx
HLT/TPCLib/AliHLTTPCEsdWriterComponent.h
HLT/TPCLib/offline/AliHLTTPCDigitPublisherComponent.h
HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx [new file with mode: 0644]
HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.h [new file with mode: 0644]
HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx [new file with mode: 0644]
HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.h [new file with mode: 0644]
HLT/comp/AliHLTCOMPHuffmanAltroCalibComponent.h
HLT/comp/AliHLTCOMPHuffmanAltroComponent.h
HLT/libAliHLTTPC.pkg
HLT/libHLTbase.pkg
HLT/rec/AliHLTReconstructor.h
HLT/sim/AliHLTOUTComponent.h

diff --git a/HLT/BASE/AliHLTCommonCDBEntries.h b/HLT/BASE/AliHLTCommonCDBEntries.h
new file mode 100644 (file)
index 0000000..af4196d
--- /dev/null
@@ -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
index a17a859979302c33480c8742605fd9dc5d448744..da4b0b67b354e8252551b0948108d53132ab1d52 100644 (file)
@@ -29,7 +29,7 @@
 #include <string>
 #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
index e1a4ba6014609dd8cbcbddc61776593a787e1d1a..2932380ddbfdc451b53b15c2a9769cdb14166630 100644 (file)
@@ -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),
index 518661084c361e1bd253d02076b7937c9dd9d433..91c48d3a27f76dcc340f2059c4c6fa0ca680f1e6 100644 (file)
@@ -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
 
 //////////////////////////////////////////////////////////////////////////
 //
 //
 //////////////////////////////////////////////////////////////////////////
 
-/** 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 '|'
+   * <pre>
+   * AliHLTComponentDataType dt=kAliHLTDDLRawDataTypeID|kAliHLTDataOriginTPC
+   * </pre>
+   * @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;
index a5bbfdd5660f24098449bbcc73ae42f890f3a5af..a3f10cca8c07d926b8e8e38b42f58e9337b8d7d7 100644 (file)
@@ -331,7 +331,7 @@ class AliHLTSystem : public AliHLTLogging {
   /**
    * Scan options.
    * Known options
-   * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+   * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
    * \li loglevel=<i>level</i> <br>
    *     logging level for this processing
    * \li frameworklog=<i>level</i> <br>
index b0c91e05fe77a35912e1bf0b26893bbec8c2441e..9be6f278cdf224d12c92e32e53b828e5b42094db 100644 (file)
@@ -10,7 +10,7 @@ MODULE                                = HLTinterface
 
 SUBDIRS                        = 
 
-EXTRA_DIST                     =
+EXTRA_DIST                     = HLTinterface-LinkDef.h
 
 AM_CPPFLAGS                    = -DMODULE=$(MODULE) \
                                  -I$(top_srcdir)/BASE
index e133cb3213c762220a37e99100649a66dd3f7008..7ecfd1fc9fbc5f309c01fd0f94471ae40db099c0 100644 (file)
@@ -24,7 +24,7 @@
  * Library: \b libAliHLTUtil.
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -datatype     <i> datatype   dataorigin </i> <br>
  *      data type ID and origin, e.g. <tt>-datatype 'CLUSTERS' 'TPC ' </tt>
  * \li -dataspec     <i> specification </i> <br>
index da6249e893353c402e18ae9d5fdf49fe9d3d7fd7..257e5689743456f560b7ebc6f80e74e23828fd4b 100644 (file)
@@ -33,7 +33,7 @@ class TFile;
  * Library: \b libAliHLTUtil.
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -datafile     <i> filename      </i>
  * \li -datafilelist <i> file pattern  </i> <br>
  *      not yet implemented
index 14cdff22e2e7b8d67bb968b04f22044c223d42a9..2602a97b7f6fbd2fa3ccb28e37e35f3850debfbf 100644 (file)
  * Library: \b libAliHLTUtil.so
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -datafile     <i> filename   </i> <br>
  *      file name base
  * \li -directory    <i> directory  </i> <br>
index 01616dadcfc0b14968c89cf2f9aba2c99f3bff91..41f932fed7e7a25e1d3575fefa68ce00894ac3ee 100644 (file)
@@ -31,7 +31,7 @@ class AliLoader;
  * Library: \b libAliHLTUtil.
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -loader       <i> loader name      </i>
  *      e.g. <tt> -loader TPCLoader </tt>
  * \li -tree         <i> tree name </i> : digits (default), clusters     
index fd4cdcb8fe768eacd676b4675b676678989757b6..420644d105143b44d09924476c822c14d2045658 100644 (file)
@@ -38,7 +38,7 @@
  * Library: \b libAliHLTUtil.
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -detector     <i> detector name      </i>
  *      e.g. <tt> -detector TPC </tt>
  * \li -equipmentid  <i> id      </i>
index 47080d3c4b0c90f3e2163c0ede7f4a40f0501a78..a6e486caefa27b75e96067217e9dfe3cd7ec1b7d 100644 (file)
@@ -25,7 +25,7 @@
  * Library: \b libAliHLTUtil.
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * Optional arguments:<br>
  * \li -datatype     <i> datatype   dataorigin </i> <br>
index 28a1f8233fed9f4aeb65eaa079af3cddc0b545ed..8954d15b05d890a8c2120ad85bedbae507719b90 100644 (file)
@@ -28,10 +28,10 @@ class TFile;
  * Library: \b libAliHLTUtil.so
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * See AliHLTFileWriter for full list of arguments.
  */
index 7081e2eef49a6e32a14e6c99282e0cf732aca9ed..4de55ddef2c9c25b4bf2466373f1466b3258b295 100644 (file)
  * Library: \b libAliHLTTPC
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  */
 class AliHLTPHOSAltroChannelSelectorComponent : public AliHLTProcessor {
index 50ad0c74a461f8ae779e240de203a12f6861060e..5b36779eebc39c759cb12dbf4fab5f7b00263adc 100644 (file)
  * Library: \b libAliHLTRCU
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  */
 class AliHLTAltroChannelSelectorComponent : public AliHLTProcessor {
index 8fa69c6ceef3442c24cb4c1695b9134cd4cd289b..dd7286397cfa642a448a14eae0476464535085ea 100644 (file)
  * Output Data Types: none <br>
  *
  * <h2>Mandatory arguments:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -mandatory1     <i> teststring   </i> <br>
  *      an argument with one parameter
  * \li -mandatory2                           <br>
  *      an argument without parameters
  *
  * <h2>Optional arguments:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -optional1      <i> teststring   </i> <br>
  *      an argument with one parameter
  * \li -optional2                            <br>
  *      an argument without parameters
  *
  * <h2>Configuration:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -config1      <i> teststring   </i> <br>
  *      a configuration argument with one parameter
  * \li -config2                            <br>
index 3a2a01a4c7de85dca6fac9d18c0c31ced6ae5e71..98b5c2a6a95f6a59cd683ef6dc14d5cecf5b7c42 100644 (file)
@@ -47,10 +47,10 @@ class TH1F;
  *     to the output stream
  *
  * <h2>Mandatory arguments:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * <h2>Optional arguments:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -push-histograms                              <br>
  *      push histograms idividually
  * \li -push-ttree (default)                         <br>
@@ -59,7 +59,7 @@ class TH1F;
  *      push histograms embedded in TObjArray
  *
  * <h2>Configuration:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * <h2>Default CDB entries:</h2>
  * The component has no default CDB entry.
index 4cae3cf7100fdd62e9b1989ed8fd731271b64430..7a91aa916eadba3b3ffc2efc04360d9df7c6959f 100644 (file)
@@ -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;
 }
index cc433948d90ea8473557994c2cde7ab523e71863..486a38c45364ecdfe4773583236fd27f3565d2bd 100644 (file)
@@ -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();
 }
 
index 99f3e0cb596504c7a0eee3a7a036ab48fa07c057..e84180053fd2314e9248c08c5207a883151842a4 100644 (file)
@@ -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()
 {
index c8a66b709532dad80ae57318deff30a8978e557e..c1b646ce1cce54bf583d4620587efae06f777e85 100644 (file)
@@ -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
index bf1c299660585b1929749548b8f293656a1905eb..6236d93f8742c02277e9fcb2aa4acf16e2092f99 100644 (file)
  *
  * See AliHLTFileWriter for arguments, further specific options
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -digitreader    <i> reader   </i> <br>
  *      type of the digit reader: <i>unpacked, packed, raw, decoder</i>
  *      default 'decoder' 
index 8e054d25fa96c1652d4bfadb8740bbdfdfd279d1..f6ce5d109bc21388e742fc666cf2099d579387a9 100644 (file)
@@ -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;
index f8c633b8fb41db3eb75aa75ee7acedb88854225c..ee58b938c932dbde4b3c2b3a892a44da64bf89bc 100644 (file)
@@ -45,14 +45,14 @@ class AliHLTTPCTrackArray;
  * componentid: \b TPCEsdConverter <br>
  * componentlibrary: \b libAliHLTTPC.so <br>
  * Arguments TPCEsdWriter: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -datafile     <i> filename   </i> <br>
  *      file name base
  * \li -directory    <i> directory  </i> <br>
  *      target directory
  *
  * Arguments TPCEsdConverter: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -notree
  *      write ESD directly to output (::kAliHLTDataTypeESDObject)
  * \li -tree
index 213816ea5a14ada8f979f5e862161327929c1516..e07a8f2d09eabe9984c8d1487d203dbfae41ebd9 100644 (file)
@@ -31,7 +31,7 @@ class AliHLTTPCFileHandler;
  * Library: \b libAliHLTTPC.
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -slice     <i> no </i> <br>
  *      TPC slice no (slice = inner + outer sector)
  * \li -partition     <i> no </i> <br>
diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx
new file mode 100644 (file)
index 0000000..1df2e0a
--- /dev/null
@@ -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 <Matthias.Richter@ift.uib.no>        *
+//*                                                                        *
+//* 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<AliHLTComponentDataType>& 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<argc && iResult>=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<UChar_t*>( 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; i<pTokens->GetEntries() && 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 (file)
index 0000000..d9ba962
--- /dev/null
@@ -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.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b TPCOfflineCF <br>
+ * Library: \b libAliHLTTPC.so     <br>
+ * Input Data Types: @ref kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTPC <br>
+ * Output Data Types: @ref kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Optional arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Configuration:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Default CDB entries:</h2>
+ * - so far the component does not load any configuration object
+ *
+ * <h2>Performance:</h2>
+ * To be determined.
+ *
+ * <h2>Memory consumption:</h2>
+ * To be determined.
+ *
+ * <h2>Output size:</h2>
+ * To be determined.
+ *
+ */
+class AliHLTTPCOfflineClustererComponent : public AliHLTProcessor {
+public:
+  AliHLTTPCOfflineClustererComponent();
+  virtual ~AliHLTTPCOfflineClustererComponent();
+
+  // AliHLTComponent interface functions
+  const char* GetComponentID();
+  void GetInputDataTypes( vector<AliHLTComponentDataType>& 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 (file)
index 0000000..7ee3606
--- /dev/null
@@ -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 <Matthias.Richter@ift.uib.no>        *
+//*                                                                        *
+//* 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<AliHLTComponentDataType>& 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<argc && iResult>=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; i<pTokens->GetEntries() && 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 (file)
index 0000000..50dc660
--- /dev/null
@@ -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.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b TPCOfflineTracker <br>
+ * Library: \b libAliHLTTPC.so     <br>
+ * Input Data Types: @ref kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC <br>
+ * Output Data Types: @ref kAliHLTDataTypeESDTree|kAliHLTDataOriginTPC <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Optional arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Configuration:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Default CDB entries:</h2>
+ * - loads magnetic field value from <tt>HLT/ConfigHLT/SolenoidBz</tt>.
+ *
+ * <h2>Performance:</h2>
+ * To be determined.
+ *
+ * <h2>Memory consumption:</h2>
+ * To be determined.
+ *
+ * <h2>Output size:</h2>
+ * To be determined.
+ *
+ */
+class AliHLTTPCOfflineTrackerComponent : public AliHLTProcessor {
+public:
+  AliHLTTPCOfflineTrackerComponent();
+  virtual ~AliHLTTPCOfflineTrackerComponent();
+
+  // AliHLTComponent interface functions
+  const char* GetComponentID();
+  void GetInputDataTypes( vector<AliHLTComponentDataType>& 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
index 27adda865fdef5057720c7ee2dc7af94143a44b5..7cb6196e6acb7a6c57fa69b32c827f75fc51e9a6 100644 (file)
@@ -25,7 +25,7 @@ class AliHLTCOMPHuffmanData;
  * used for calibration of the Huffman code table (which is created here). 
  *
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -origin <i> detector <\i> <br>
  *  set origin of data for code creation to specify output table (parameter transient)
  * \li -runnumber <i> decimal number <\i> <br>
@@ -36,7 +36,7 @@ class AliHLTCOMPHuffmanData;
  *  set number of trailerwords of incoming data (ranging from 1 to 3)
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -tablepath <i> path to Huffman code table <\i> <br>
  *  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)
  *
index f7e8e1618422d1637eda12904bb8aed1f67b0a31..00b14e28b099071e80792c06ec12743d8c00bf06 100644 (file)
@@ -28,7 +28,7 @@ class AliHLTCOMPHuffmanData;
  * Library: \b libAliHLTComp
  * 
  * Mandatory arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -origin <i> detector <\i> <br>
  *  set origin of data to specify Huffman code table to be read in (parameter transient)
  * \li -runnumber <i> decimal number <\i> <br>
@@ -39,7 +39,7 @@ class AliHLTCOMPHuffmanData;
  *  set number of trailerwords of incoming data (ranging from 1 to 3)
  *
  * Optional arguments: <br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -tablepath <i> path to Huffman code table <\i> <br>
  *  set path to read Huffman code table from root file, if no path is given, path is set to current path (parameter transient)
  *
index 8e3b484479498c8d4a47024c49aef18a221ae839..578204da6e7ddac0673a26211fb1b90032b8ca46 100644 (file)
@@ -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 \
index 90ee6584f244ef9b579865bc80ed5f8c24206654..349dc8d1838bc9295e18a54bf05466d702184d8f 100644 (file)
@@ -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 \
index 725ca6abe97af35568d0938497da8b96f5f11469..ff70451d5fc387e2d72e1957f75e298544854e77 100644 (file)
@@ -41,7 +41,7 @@ class AliHLTEsdManager;
  * will only load <tt>libAliHLTSample.so</tt>
  * 
  * Optional arguments:<br>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li loglevel=<i>level</i><br>
  *     level can be a hex number encoding the @ref AliHLTComponentLogSeverity
  * \li alilog=off <br>
index b81eee90ce5722f0613530f6b9ea9c3a664cc97a..9c5f70474b961bc6076305ee82dfc01e43869f9f 100644 (file)
@@ -38,15 +38,15 @@ typedef vector<AliHLTMonitoringWriter*> AliHLTMonitoringWriterPVector;
  * Output Data Types: none (offline data sink) <br>
  *
  * <h2>Mandatory arguments:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
  * <h2>Optional arguments:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * \li -links      <i> n   </i> <br>
  *      number of output ddl links
  *
  * <h2>Configuration:</h2>
- * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  * none
  *
  * <h2>Default CDB entries:</h2>