]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCCalibTimeGainComponent.h
A new task for measuring the size of the beam interaction spot (A.Jacholkowski)
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCCalibTimeGainComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTPCCALIBTIMEGAINCOMPONENT_H
4 #define ALIHLTTPCCALIBTIMEGAINCOMPONENT_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   AliHLTTPCCalibTimeGainComponent.h
11     @author Kalliopi Kanaki
12     @date   2009-07-08
13     @brief  A calibration component for interfacing the offline calculation of TPC gain 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 AliTPCcalibTimeGain;
25 class AliExternalTrackParam;
26 class AliESDEvent;
27
28 /**
29  * @class AliHLTTPCCalibTimeGainComponent
30  * 
31  * Interface of the offline algorithm (AliTPCcalibTimeGain) for updating
32  * the TPC gain as a function of time.
33  * 
34  * @ingroup alihlt_tpc_components
35  */
36 class AliHLTTPCCalibTimeGainComponent : public AliHLTCalibrationProcessor
37     {
38     public:
39       /** constructor */
40       AliHLTTPCCalibTimeGainComponent();
41       /** destructor */
42       virtual ~AliHLTTPCCalibTimeGainComponent();
43
44       const char* GetComponentID();
45       void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
46       AliHLTComponentDataType GetOutputDataType();
47       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
48       AliHLTComponent* Spawn();
49
50     protected:
51
52       using AliHLTCalibrationProcessor::ProcessCalibration;
53       using AliHLTCalibrationProcessor::ShipDataToFXS;
54            
55       /** Initialize the calibration component. */
56       Int_t InitCalibration();
57
58       /** Scan commandline arguments of the calibration component. */
59       Int_t ScanArgument( Int_t argc, const char** argv );
60
61       /** DeInitialize the calibration component. */
62       Int_t DeinitCalibration();
63
64       /** Process the data in the calibration component. */
65       Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
66
67       /** Ship the data to the FXS at end of run or eventmodulo. */
68       Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
69
70     private:
71       /** copy constructor prohibited */
72       AliHLTTPCCalibTimeGainComponent(const AliHLTTPCCalibTimeGainComponent&);
73       /** assignment operator prohibited */
74       AliHLTTPCCalibTimeGainComponent& operator=(const AliHLTTPCCalibTimeGainComponent&);
75
76       AliTPCcalibTimeGain *fCalibTimeGain; //!transient
77       AliESDEvent         *fESDEvent;      //!transient
78       
79       AliHLTUInt8_t  fMinPartition;   // see above
80       AliHLTUInt8_t  fMaxPartition;   // see above
81       AliHLTUInt8_t  fMinSlice;       // see above
82       AliHLTUInt8_t  fMaxSlice;       // see above
83       AliHLTUInt32_t fSpecification;  // see above
84
85       /** Analyze calibration data before shipping to FXS */
86       Bool_t fEnableAnalysis;  // see above
87
88       ClassDef(AliHLTTPCCalibTimeGainComponent, 0)
89     };
90 #endif