]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/calibration/AliHLTTPCCalibTimeComponent.h
- implementation of ESD friends and friend tracks from HLT input
[u/mrichter/AliRoot.git] / HLT / TPCLib / calibration / AliHLTTPCCalibTimeComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTPCCALIBTIMECOMPONENT_H
4 #define ALIHLTTPCCALIBTIMECOMPONENT_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   AliHLTTPCCalibTimeComponent.h
11     @author Kalliopi Kanaki
12     @date   2009-07-08
13     @brief  A calibration component for interfacing the offline calculation of TPC drift velocity correction
14 */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   
21
22 #include "AliHLTCalibrationProcessor.h"
23
24 class AliTPCcalibTime;
25 class AliTPCcalibCalib;
26 class AliExternalTrackParam;
27 class AliESDEvent;
28 class AliESDtrack;
29 class AliESDfriend;
30 class AliESDfriendTrack;
31 class TObjArray;
32
33 /**
34  * @class AliHLTTPCCalibTimeComponent
35  * 
36  * Interface of the offline algorithm (AliTPCcalibTime) for correcting the 
37  * drift velocity for changes of p and T as a function of
38  * time.
39  *
40  * @ingroup alihlt_tpc_components
41  */
42 class AliHLTTPCCalibTimeComponent : public AliHLTCalibrationProcessor
43     {
44     public:
45       /** constructor */
46       AliHLTTPCCalibTimeComponent();
47       /** destructor */
48       virtual ~AliHLTTPCCalibTimeComponent();
49       
50       const char* GetComponentID();
51       void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
52       AliHLTComponentDataType GetOutputDataType();
53       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
54       AliHLTComponent* Spawn();
55
56     protected:
57
58       using AliHLTCalibrationProcessor::ProcessCalibration;
59       using AliHLTCalibrationProcessor::ShipDataToFXS;
60       
61       // Protected functions to implement AliHLTComponent's interface.
62       // These functions provide initialization as well as the actual processing
63       // capabilities of the component. 
64       
65       /** Initialize the calibration component. */
66       Int_t InitCalibration();
67
68       /** Scan commandline arguments of the calibration component. */
69       Int_t ScanArgument( Int_t argc, const char** argv );
70
71       /** DeInitialize the calibration component. */
72       Int_t DeinitCalibration();
73
74       /** Process the data in the calibration component. */
75       Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
76
77       /** Ship the data to the FXS at end of run or eventmodulo. */
78       Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
79
80     private:
81       /** copy constructor prohibited */
82       AliHLTTPCCalibTimeComponent(const AliHLTTPCCalibTimeComponent&);
83       /** assignment operator prohibited */
84       AliHLTTPCCalibTimeComponent& operator=(const AliHLTTPCCalibTimeComponent&);
85
86       AliTPCcalibTime   *fCalibTime;      //!transient
87       AliTPCcalibCalib  *fCal;            //!transient
88       AliESDEvent       *fESDevent;       //!transient
89       AliESDtrack       *fESDtrack;       //!transient
90       AliESDfriendTrack *fESDfriendTrack; //!transient
91       AliESDfriend      *fESDfriend;      //!transient
92       TObjArray         *fSeedArray;      //!transient
93       
94       ClassDef(AliHLTTPCCalibTimeComponent, 2)
95     };
96 #endif