3 #ifndef ALIHLTTPCOFFLINECALIBRATIONCOMPONENT_H
4 #define ALIHLTTPCOFFLINECALIBRATIONCOMPONENT_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 AliHLTTPCOfflineCalibrationComponent.h
11 @author Jacek Otwinowski
13 @brief TPC calibration component
16 #include "AliHLTCalibrationProcessor.h"
19 * @class AliHLTTPCOfflineCalibrationComponent
20 * TPC calibration component
22 * The component interfaces of the TPC offline calibration components
23 * to the online HLT. The component expects a full AliESD event containing the
24 * TPCseed track information. The outputs are calibration components.
26 * <h2>General properties:</h2>
28 * Component ID: \b TPCOfflineCalibration <br>
29 * Library: \b libAliHLTTPC.so <br>
30 * Input Data Types: @ref kAliHLTDataTypeESDTree|kAliHLTDataOriginTPC <br>
31 * Output Data Types: @ref AliHLTTPCDefinitions::fgkOfflineCalibAlignDataType|kAliHLTDataOriginTPC <br>
32 * Output Data Types: @ref AliHLTTPCDefinitions::fgkOfflineCalibTracksDataType|kAliHLTDataOriginTPC <br>
33 * Output Data Types: @ref AliHLTTPCDefinitions::fgkOfflineCalibTracksGainDataType|kAliHLTDataOriginTPC <br>
35 * <h2>Mandatory arguments:</h2>
36 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
38 * <h2>Optional arguments:</h2>
39 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
41 * <h2>Configuration:</h2>
42 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
44 * <h2>Default CDB entries:</h2>
45 * - loads magnetic field value from <tt>HLT/ConfigHLT/SolenoidBz</tt>.
47 * <h2>Performance:</h2>
50 * <h2>Memory consumption:</h2>
53 * <h2>Output size:</h2>
58 class AliTPCClusterParam;
59 class AliTPCcalibTracksCuts;
61 class AliTPCcalibAlign;
62 class AliTPCcalibTracksGain;
63 class AliTPCcalibTracks;
65 class AliHLTTPCOfflineCalibrationComponent : public AliHLTCalibrationProcessor {
67 AliHLTTPCOfflineCalibrationComponent();
68 virtual ~AliHLTTPCOfflineCalibrationComponent();
70 // AliHLTComponent interface functions
71 const char* GetComponentID();
72 void GetInputDataTypes(vector<AliHLTComponentDataType>& list);
73 AliHLTComponentDataType GetOutputDataType();
74 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
75 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
77 // Spawn function, return new class instance
78 AliHLTComponent* Spawn();
81 // AliHLTComponent interface functions
84 /** Initialize the calibration component. */
85 Int_t InitCalibration();
87 /** Scan commandline arguments of the calibration component. */
88 Int_t ScanArgument( Int_t argc, const char** argv );
90 /** DeInitialize the calibration component. */
91 Int_t DeinitCalibration();
93 /** Process the data in the calibration component. */
94 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
96 /** Ship the data to the FXS at end of run or eventmodulo. */
97 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
99 using AliHLTCalibrationProcessor::ProcessCalibration;
100 using AliHLTCalibrationProcessor::ShipDataToFXS;
103 /** copy constructor prohibited */
104 AliHLTTPCOfflineCalibrationComponent(const AliHLTTPCOfflineCalibrationComponent&);
105 /** assignment operator prohibited */
106 AliHLTTPCOfflineCalibrationComponent& operator=(const AliHLTTPCOfflineCalibrationComponent&);
108 Bool_t fEnableAnalysis; //! enable component analysis
110 AliTPCClusterParam * fClustParam; //! TPC cluster parameters
111 AliTPCcalibTracksCuts* fTrackCuts; //! TPC track cuts
113 AliTPCcalibAlign *fTPCcalibAlign; //! TPC geometry params
114 AliTPCcalibTracksGain *fTPCcalibTracksGain; //! TPC tracker
115 AliTPCcalibTracks *fTPCcalibTracks; //! AliESDEvent needed by TPC tracker
118 * Configure the component.
119 * Parse a string for the configuration arguments and set the component
122 int Configure(const char* arguments);
123 int Reconfigure(const char* /*cdbEntry*/, const char* /*chainId*/);
125 ClassDef(AliHLTTPCOfflineCalibrationComponent, 0)