//-*- Mode: C++ -*- // $Id$ #ifndef ALIHLTSAMPLEESDANALYSISCOMPONENT_H #define ALIHLTSAMPLEESDANALYSISCOMPONENT_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 AliHLTSampleESDAnalysisComponent.h /// @author Matthias Richter /// @date 2010-04-17 /// @brief A sample processing component for ESD analysis. /// @ingroup alihlt_tutorial #include "AliHLTProcessor.h" /** * @class AliHLTSampleESDAnalysisComponent * An example how to implement an HLT ESD analysis component. * The class features the AliHLTComponent interface for HLT processing * components. The interface allows to run such components in either * the (sequential) AliSimulation/AliReconstruction framework or the * parallel HLT online processing framework. * * An example to run the component can be found in macro sampleEsdAnalysis.C * in the folder HLT/exa. * * Component fetches the ESD from the input objects, loops over tracks and * publishes the tracks in a TObjArray of AliESDtrack. * *

General properties:

* * Component ID: \b SampleESDAnalysis
* Library: \b libAliHLTSample.so
* Input Data Types: @ref kAliHLTDataTypeESDObject
* Output Data Types: @ref kAliHLTDataTypeTObjArray|kAliHLTDataOriginSample * {ROOTOBAR:SMPL}
* *

Mandatory arguments:

* * Argument scan is implemented in the function ScanConfigurationArgument(). * see @ref alihltcomponent-initialization-ocdb. * Please provide specific descriptions and implementations. * \li -mandatory1 teststring
* an argument with one parameter * *

Optional arguments:

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

Configuration:

* * *

Default CDB entries:

* The component has just one default CDB entry in * HLT/ConfigSample/SampleESDAnalysis. * It does not load any configuration from the global ConfigHLT * folder. * \li -TObjString object holding a string with the configuration parameters * explained above * *

Performance:

* The component does not any event data processing. * *

Memory consumption:

* The component does not any event data processing. * *

Output size:

* The component has no output data. * * @ingroup alihlt_tutorial */ class AliHLTSampleESDAnalysisComponent : public AliHLTProcessor { public: AliHLTSampleESDAnalysisComponent(); virtual ~AliHLTSampleESDAnalysisComponent(); // AliHLTComponent interface functions const char* GetComponentID(); void GetInputDataTypes( vector& list); AliHLTComponentDataType GetOutputDataType(); void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); void GetOCDBObjectDescription( TMap* const targetMap); // 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 ScanConfigurationArgument(int argc, const char** argv); int Reconfigure(const char* cdbEntry, const char* chainId); int ReadPreprocessorValues(const char* modules); using AliHLTProcessor::DoEvent; private: /** copy constructor prohibited */ AliHLTSampleESDAnalysisComponent(const AliHLTSampleESDAnalysisComponent&); /** assignment operator prohibited */ AliHLTSampleESDAnalysisComponent& operator=(const AliHLTSampleESDAnalysisComponent&); ClassDef(AliHLTSampleESDAnalysisComponent, 0) }; #endif