]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/offline/AliHLTTPCOfflineCalibrationComponent.h
The present commit corresponds to an important change in the way the
[u/mrichter/AliRoot.git] / HLT / TPCLib / offline / AliHLTTPCOfflineCalibrationComponent.h
CommitLineData
e642ae99 1//-*- Mode: C++ -*-
2// $Id$
3#ifndef ALIHLTTPCOFFLINECALIBRATIONCOMPONENT_H
4#define ALIHLTTPCOFFLINECALIBRATIONCOMPONENT_H
5
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 *
9
10/** @file AliHLTTPCOfflineCalibrationComponent.h
11 @author Jacek Otwinowski
12 @date
13 @brief TPC calibration component
14*/
15
16#include "AliHLTCalibrationProcessor.h"
17
18/**
19 * @class AliHLTTPCOfflineCalibrationComponent
20 * TPC calibration component
21 *
22 * The component interfaces of the TPC offline calibration components
0e442a0a 23 * to the online HLT. The component expects a TPCseed object.
24 * The outputs are calibration components.
e642ae99 25 *
26 * <h2>General properties:</h2>
27 *
28 * Component ID: \b TPCOfflineCalibration <br>
29 * Library: \b libAliHLTTPC.so <br>
0e442a0a 30 * Input Data Types: @ref kAliHLTDataTypeTObjArray|kAliHLTDataOriginTPC <br>
e642ae99 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>
34 *
35 * <h2>Mandatory arguments:</h2>
36 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
37 *
38 * <h2>Optional arguments:</h2>
39 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
40 *
41 * <h2>Configuration:</h2>
42 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
43 *
44 * <h2>Default CDB entries:</h2>
45 * - loads magnetic field value from <tt>HLT/ConfigHLT/SolenoidBz</tt>.
46 *
47 * <h2>Performance:</h2>
48 * To be determined.
49 *
50 * <h2>Memory consumption:</h2>
51 * To be determined.
52 *
53 * <h2>Output size:</h2>
54 * To be determined.
55 *
56 */
57
58class AliTPCClusterParam;
59class AliTPCcalibTracksCuts;
60
61class AliTPCcalibAlign;
62class AliTPCcalibTracksGain;
63class AliTPCcalibTracks;
64
65class AliHLTTPCOfflineCalibrationComponent : public AliHLTCalibrationProcessor {
66public:
67 AliHLTTPCOfflineCalibrationComponent();
68 virtual ~AliHLTTPCOfflineCalibrationComponent();
69
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);
76
77 // Spawn function, return new class instance
78 AliHLTComponent* Spawn();
79
80protected:
81 // AliHLTComponent interface functions
82
83
84 /** Initialize the calibration component. */
85 Int_t InitCalibration();
86
87 /** Scan commandline arguments of the calibration component. */
88 Int_t ScanArgument( Int_t argc, const char** argv );
89
90 /** DeInitialize the calibration component. */
91 Int_t DeinitCalibration();
92
93 /** Process the data in the calibration component. */
94 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
95
96 /** Ship the data to the FXS at end of run or eventmodulo. */
97 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
98
99 using AliHLTCalibrationProcessor::ProcessCalibration;
100 using AliHLTCalibrationProcessor::ShipDataToFXS;
101
102private:
103 /** copy constructor prohibited */
104 AliHLTTPCOfflineCalibrationComponent(const AliHLTTPCOfflineCalibrationComponent&);
105 /** assignment operator prohibited */
106 AliHLTTPCOfflineCalibrationComponent& operator=(const AliHLTTPCOfflineCalibrationComponent&);
107
108 Bool_t fEnableAnalysis; //! enable component analysis
109
110 AliTPCClusterParam * fClustParam; //! TPC cluster parameters
111 AliTPCcalibTracksCuts* fTrackCuts; //! TPC track cuts
112
113 AliTPCcalibAlign *fTPCcalibAlign; //! TPC geometry params
114 AliTPCcalibTracksGain *fTPCcalibTracksGain; //! TPC tracker
115 AliTPCcalibTracks *fTPCcalibTracks; //! AliESDEvent needed by TPC tracker
116
117 /**
118 * Configure the component.
119 * Parse a string for the configuration arguments and set the component
120 * properties.
121 */
122 int Configure(const char* arguments);
123 int Reconfigure(const char* /*cdbEntry*/, const char* /*chainId*/);
124
125 ClassDef(AliHLTTPCOfflineCalibrationComponent, 0)
126};
127#endif