//-*- Mode: C++ -*- // $Id$ #ifndef ALIHLTTPCOFFLINECALIBRATIONCOMPONENT_H #define ALIHLTTPCOFFLINECALIBRATIONCOMPONENT_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 AliHLTTPCOfflineCalibrationComponent.h @author Jacek Otwinowski @date @brief TPC calibration component */ #include "AliHLTCalibrationProcessor.h" /** * @class AliHLTTPCOfflineCalibrationComponent * TPC calibration component * * The component interfaces of the TPC offline calibration components * to the online HLT. The component expects a TPCseed object. * The outputs are calibration components. * *

General properties:

* * Component ID: \b TPCOfflineCalibration
* Library: \b libAliHLTTPC.so
* Input Data Types: @ref kAliHLTDataTypeTObjArray|kAliHLTDataOriginTPC
* Output Data Types: @ref AliHLTTPCDefinitions::fgkOfflineCalibAlignDataType|kAliHLTDataOriginTPC
* Output Data Types: @ref AliHLTTPCDefinitions::fgkOfflineCalibTracksDataType|kAliHLTDataOriginTPC
* Output Data Types: @ref AliHLTTPCDefinitions::fgkOfflineCalibTracksGainDataType|kAliHLTDataOriginTPC
* *

Mandatory arguments:

* * *

Optional arguments:

* * *

Configuration:

* * *

Default CDB entries:

* - loads magnetic field value from HLT/ConfigHLT/SolenoidBz. * *

Performance:

* To be determined. * *

Memory consumption:

* To be determined. * *

Output size:

* To be determined. * */ class AliTPCClusterParam; class AliTPCcalibTracksCuts; class AliTPCcalibAlign; class AliTPCcalibTracksGain; class AliTPCcalibTracks; class AliHLTTPCOfflineCalibrationComponent : public AliHLTCalibrationProcessor { public: AliHLTTPCOfflineCalibrationComponent(); virtual ~AliHLTTPCOfflineCalibrationComponent(); // AliHLTComponent interface functions const char* GetComponentID(); void GetInputDataTypes(vector& list); AliHLTComponentDataType GetOutputDataType(); int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList); void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); // Spawn function, return new class instance AliHLTComponent* Spawn(); protected: // AliHLTComponent interface functions /** Initialize the calibration component. */ Int_t InitCalibration(); /** Scan commandline arguments of the calibration component. */ Int_t ScanArgument( Int_t argc, const char** argv ); /** DeInitialize the calibration component. */ Int_t DeinitCalibration(); /** Process the data in the calibration component. */ Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData ); /** Ship the data to the FXS at end of run or eventmodulo. */ Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData ); using AliHLTCalibrationProcessor::ProcessCalibration; using AliHLTCalibrationProcessor::ShipDataToFXS; private: /** copy constructor prohibited */ AliHLTTPCOfflineCalibrationComponent(const AliHLTTPCOfflineCalibrationComponent&); /** assignment operator prohibited */ AliHLTTPCOfflineCalibrationComponent& operator=(const AliHLTTPCOfflineCalibrationComponent&); Bool_t fEnableAnalysis; //! enable component analysis AliTPCClusterParam * fClustParam; //! TPC cluster parameters AliTPCcalibTracksCuts* fTrackCuts; //! TPC track cuts AliTPCcalibAlign *fTPCcalibAlign; //! TPC geometry params AliTPCcalibTracksGain *fTPCcalibTracksGain; //! TPC tracker AliTPCcalibTracks *fTPCcalibTracks; //! AliESDEvent needed by TPC tracker /** * Configure the component. * Parse a string for the configuration arguments and set the component * properties. */ int Configure(const char* arguments); int Reconfigure(const char* /*cdbEntry*/, const char* /*chainId*/); ClassDef(AliHLTTPCOfflineCalibrationComponent, 0) }; #endif