//-*- 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 AliTPCRecoParam; class AliTPCParam; class AliTPCclustererMI; class AliRawReaderMemory; /** * @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. * * @ingroup alihlt_tpc_components */ 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&); /** * Run the clusterer and PushBack the clusters with the given specification. * @param outspec data specification of the output block */ int RunClusterer(AliHLTUInt32_t outspec); /** * Configure the component. * Parse a string for the configuration arguments and set the component * properties. */ int Configure(const char* arguments); unsigned fOutputPercentage; //! Output volume in percentage of the input string fGeometryFileName; //! Geometry file with full path AliTPCRecoParam *fTPCRecoParam; //! TPC reco params AliTPCParam *fTPCGeomParam; //! TPC geometry params AliRawReaderMemory *fRawReader; //! Memory reader AliTPCclustererMI *fClusterer; //! TPC clusterer ClassDef(AliHLTTPCOfflineClustererComponent, 1) }; #endif