//-*- Mode: C++ -*- // $Id$ // ************************************************************************ // 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 AliHLTITSSAPTrackerComponent.h /// @author Ruben Shahoyan /// @date August 2014 /// @brief An ITS standalone primaries tracker/vertexer processing component for the HLT /// Adapted from HLT/ITS/tracking/AliHLTITSTrackerComponent component #ifndef ALIHLTITSSAPTRACKERCOMPONENT_H #define ALIHLTITSSAPTRACKERCOMPONENT_H #include "AliHLTProcessor.h" #include "AliHLTDataTypes.h" #include "AliHLTComponentBenchmark.h" class AliITSSAPTracker; class TClonesArray; /** * @class AliHLTITSSAPTrackerComponent * The HL ITS standalone primaries tracker/vertexer component. * *

General properties:

* * Component ID: \b ITSSAPTracker
* Library: \b libAliHLTITS.so
* Input Data Types:
* kAliHLTDataTypeTrack|kAliHLTDataOriginTPC
* kAliHLTDataTypeClusters|kAliHLTDataOriginITSSSD
* kAliHLTDataTypeClusters|kAliHLTDataOriginITSSPD
* kAliHLTDataTypeClusters|kAliHLTDataOriginITSSDD
* * Output Data Types:
* kAliHLTDataTypeTrack|kAliHLTDataOriginITS
* *

Mandatory arguments:

* * *

Optional arguments:

* * *

Configuration:

* * \li -config1 teststring
* a configuration argument with one parameter * \li -config2
* a configuration argument without parameters * *

Default CDB entries:

* * ITS/Align/Data * ITS/Calib/SPDNoisy * ITS/Calib/SPDDead * ITS/Calib/PITConditions * ITS/Calib/CalibSDD * ITS/Calib/RespSDD * ITS/Calib/DriftSpeedSDD * ITS/Calib/DDLMapSDD * ITS/Calib/MapsTimeSDD * ITS/Calib/NoiseSSD * ITS/Calib/GainSSD * ITS/Calib/BadChannelsSSD * ITS/Calib/RecoParam * *

Performance:

* TODO * *

Memory consumption:

* TODO * *

Output size:

* TODO * * @ingroup alihlt_its_components */ class AliHLTITSSAPTrackerComponent : public AliHLTProcessor { public: /** standard constructor */ AliHLTITSSAPTrackerComponent(); /** dummy copy constructor, defined according to effective C++ style */ AliHLTITSSAPTrackerComponent( const AliHLTITSSAPTrackerComponent& ); /** dummy assignment op, but defined according to effective C++ style */ AliHLTITSSAPTrackerComponent& operator=( const AliHLTITSSAPTrackerComponent& ); /** standard destructor */ virtual ~AliHLTITSSAPTrackerComponent(); // Public functions to implement AliHLTComponent's interface. // These functions are required for the registration process /** @see component interface @ref AliHLTComponent::GetComponentID */ const char* GetComponentID() ; /** @see component interface @ref AliHLTComponent::GetInputDataTypes */ void GetInputDataTypes( vector& list ) ; /** @see component interface @ref AliHLTComponent::GetOutputDataType */ AliHLTComponentDataType GetOutputDataType() ; /** @see component interface @ref AliHLTComponent::GetOutputDataType */ int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList); /** @see component interface @ref AliHLTComponent::GetOutputDataSize */ virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ; /** @see component interface @ref AliHLTComponent::Spawn */ AliHLTComponent* Spawn() ; protected: // Protected functions to implement AliHLTComponent's interface. // These functions provide initialization as well as the actual processing // capabilities of the component. /** @see component interface @ref AliHLTComponent::DoInit */ int DoInit( int argc, const char** argv ); /** @see component interface @ref AliHLTComponent::DoDeinit */ int DoDeinit(); /** reconfigure **/ int Reconfigure( const char* cdbEntry, const char* chainId ); /** @see component interface @ref AliHLTProcessor::DoEvent */ int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size, vector& outputBlocks ); private: /** magnetic field */ double fSolenoidBz; // see above AliHLTComponentBenchmark fBenchmark;// benchmark AliITSSAPTracker *fTracker; // the tracker itself /** set configuration parameters **/ void SetDefaultConfiguration(); int ReadConfigurationString( const char* arguments ); int ReadCDBEntry( const char* cdbEntry, const char* chainId ); int Configure( const char* cdbEntry, const char* chainId, const char *commandLine ); TClonesArray* fClusters; ClassDef( AliHLTITSSAPTrackerComponent, 0 ); }; #endif