3 #ifndef ALIHLTTPCCALIBTIMECOMPONENT_H
4 #define ALIHLTTPCCALIBTIMECOMPONENT_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 AliHLTTPCCalibTimeComponent.h
11 @author Kalliopi Kanaki
13 @brief A calibration component for interfacing the offline calculation of TPC drift velocity correction
16 // see below for class documentation
18 // refer to README to build package
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 #include "AliHLTCalibrationProcessor.h"
24 class AliTPCcalibTime;
25 class AliExternalTrackParam;
30 * @class AliHLTTPCCalibTimeComponent
32 * Interface of the offline algorithm (AliTPCcalibTime) for correcting the
33 * drift velocity for changes of p and T as a function of
36 * @ingroup alihlt_tpc_components
38 class AliHLTTPCCalibTimeComponent : public AliHLTCalibrationProcessor
42 AliHLTTPCCalibTimeComponent();
44 virtual ~AliHLTTPCCalibTimeComponent();
46 const char* GetComponentID();
47 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
48 AliHLTComponentDataType GetOutputDataType();
49 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
50 AliHLTComponent* Spawn();
54 using AliHLTCalibrationProcessor::ProcessCalibration;
55 using AliHLTCalibrationProcessor::ShipDataToFXS;
57 // Protected functions to implement AliHLTComponent's interface.
58 // These functions provide initialization as well as the actual processing
59 // capabilities of the component.
61 /** Initialize the calibration component. */
62 Int_t InitCalibration();
64 /** Scan commandline arguments of the calibration component. */
65 Int_t ScanArgument( Int_t argc, const char** argv );
67 /** DeInitialize the calibration component. */
68 Int_t DeinitCalibration();
70 /** Process the data in the calibration component. */
71 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
73 /** Ship the data to the FXS at end of run or eventmodulo. */
74 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
77 /** copy constructor prohibited */
78 AliHLTTPCCalibTimeComponent(const AliHLTTPCCalibTimeComponent&);
79 /** assignment operator prohibited */
80 AliHLTTPCCalibTimeComponent& operator=(const AliHLTTPCCalibTimeComponent&);
82 AliTPCcalibTime *fCalibTime; //!transient
83 AliESDEvent *fESDEvent; //!transient
84 TObjArray *fSeedArray; //!transient
86 AliHLTUInt8_t fMinPartition; // see above
87 AliHLTUInt8_t fMaxPartition; // see above
88 AliHLTUInt8_t fMinSlice; // see above
89 AliHLTUInt8_t fMaxSlice; // see above
90 AliHLTUInt32_t fSpecification; // see above
92 /** Analyze calibration data before shipping to FXS */
93 Bool_t fEnableAnalysis; // see above
95 ClassDef(AliHLTTPCCalibTimeComponent, 0)