]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/calibration/AliHLTTPCCalibTimeComponent.h
7a5834fe04db8f8f9efa901b052d664a15c3bf51
[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 AliExternalTrackParam;
26 class AliESDEvent;
27 class TObjArray;
28
29 /**
30  * @class AliHLTTPCCalibTimeComponent
31  * 
32  * Interface of the offline algorithm (AliTPCcalibTime) for correcting the 
33  * drift velocity for changes of p and T as a function of
34  * time.
35  *
36  * @ingroup alihlt_tpc_components
37  */
38 class AliHLTTPCCalibTimeComponent : public AliHLTCalibrationProcessor
39     {
40     public:
41       /** constructor */
42       AliHLTTPCCalibTimeComponent();
43       /** destructor */
44       virtual ~AliHLTTPCCalibTimeComponent();
45       
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();
51
52     protected:
53
54       using AliHLTCalibrationProcessor::ProcessCalibration;
55       using AliHLTCalibrationProcessor::ShipDataToFXS;
56       
57       // Protected functions to implement AliHLTComponent's interface.
58       // These functions provide initialization as well as the actual processing
59       // capabilities of the component. 
60       
61       /** Initialize the calibration component. */
62       Int_t InitCalibration();
63
64       /** Scan commandline arguments of the calibration component. */
65       Int_t ScanArgument( Int_t argc, const char** argv );
66
67       /** DeInitialize the calibration component. */
68       Int_t DeinitCalibration();
69
70       /** Process the data in the calibration component. */
71       Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
72
73       /** Ship the data to the FXS at end of run or eventmodulo. */
74       Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
75
76     private:
77       /** copy constructor prohibited */
78       AliHLTTPCCalibTimeComponent(const AliHLTTPCCalibTimeComponent&);
79       /** assignment operator prohibited */
80       AliHLTTPCCalibTimeComponent& operator=(const AliHLTTPCCalibTimeComponent&);
81
82       AliTPCcalibTime *fCalibTime; //!transient
83       AliESDEvent     *fESDEvent;  //!transient
84       TObjArray       *fSeedArray; //!transient
85       
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
91
92       /** Analyze calibration data before shipping to FXS */
93       Bool_t fEnableAnalysis;  // see above
94
95       ClassDef(AliHLTTPCCalibTimeComponent, 0)
96     };
97 #endif