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