3 #ifndef ALIHLTTPCOFFLINECLUSTERFINDERCOMPONENT_H
4 #define ALIHLTTPCOFFLINECLUSTERFINDERCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice */
10 /** @file AliHLTTPCOfflineClustererComponent.h
11 @author Matthias Richter
13 @brief Wrapper component to the TPC offline cluster finder
16 #include "AliHLTProcessor.h"
17 class AliTPCRecoParam;
19 class AliTPCclustererMI;
20 class AliRawReaderMemory;
23 * @class AliHLTTPCOfflineClustererComponent
24 * Wrapper component to the TPC offline cluster finder.
26 * The component interfaces the AliTPCclustererMI of the TPC offline code
27 * to the online HLT. The component expects raw data as input and publishes
28 * a full TreeR containing the cluster information.
30 * <h2>General properties:</h2>
32 * Component ID: \b TPCOfflineCF <br>
33 * Library: \b libAliHLTTPC.so <br>
34 * Input Data Types: @ref kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTPC <br>
35 * Output Data Types: @ref kAliHLTDataTypeAliTreeR|kAliHLTDataOriginTPC <br>
37 * <h2>Mandatory arguments:</h2>
38 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
40 * <h2>Optional arguments:</h2>
41 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
43 * <h2>Configuration:</h2>
44 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
46 * <h2>Default CDB entries:</h2>
47 * - so far the component does not load any configuration object
49 * <h2>Performance:</h2>
52 * <h2>Memory consumption:</h2>
55 * <h2>Output size:</h2>
58 * @ingroup alihlt_tpc_components
60 class AliHLTTPCOfflineClustererComponent : public AliHLTProcessor {
62 AliHLTTPCOfflineClustererComponent();
63 virtual ~AliHLTTPCOfflineClustererComponent();
65 // AliHLTComponent interface functions
66 const char* GetComponentID();
67 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
68 AliHLTComponentDataType GetOutputDataType();
69 void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
71 // Spawn function, return new class instance
72 AliHLTComponent* Spawn();
75 // AliHLTComponent interface functions
76 int DoInit( int argc, const char** argv );
78 int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
79 int Reconfigure(const char* cdbEntry, const char* chainId);
81 using AliHLTProcessor::DoEvent;
84 /** copy constructor prohibited */
85 AliHLTTPCOfflineClustererComponent(const AliHLTTPCOfflineClustererComponent&);
86 /** assignment operator prohibited */
87 AliHLTTPCOfflineClustererComponent& operator=(const AliHLTTPCOfflineClustererComponent&);
90 * Run the clusterer and PushBack the clusters with the given specification.
91 * @param outspec data specification of the output block
93 int RunClusterer(AliHLTUInt32_t outspec);
96 * Configure the component.
97 * Parse a string for the configuration arguments and set the component
100 int Configure(const char* arguments);
102 unsigned fOutputPercentage; //! Output volume in percentage of the input
103 string fGeometryFileName; //! Geometry file with full path
105 AliTPCRecoParam *fTPCRecoParam; //! TPC reco params
106 AliTPCParam *fTPCGeomParam; //! TPC geometry params
108 AliRawReaderMemory *fRawReader; //! Memory reader
109 AliTPCclustererMI *fClusterer; //! TPC clusterer
111 ClassDef(AliHLTTPCOfflineClustererComponent, 1)