]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/calibration/AliHLTTPCCalibPedestalComponent.h
correcting memory leaks on error conditions
[u/mrichter/AliRoot.git] / HLT / TPCLib / calibration / AliHLTTPCCalibPedestalComponent.h
CommitLineData
9d9ffd37 1//-*- Mode: C++ -*-
02d01bbf 2#ifndef ALIHLTTPCCALIBPEDESTALCOMPONENT_H
3#define ALIHLTTPCCALIBPEDESTALCOMPONENT_H
4
9d9ffd37 5/* This file is property of and copyright by the ALICE HLT Project *
6 * ALICE Experiment at CERN, All rights reserved. *
02d01bbf 7 * See cxx source for full Copyright notice */
8
9/** @file AliHLTTPCCalibPedestalComponent.h
10 @author Jochen Thaeder
11 @date
12 @brief A pedestal calibration component for the TPC.
13*/
14
6a8e0bb4 15// see below for class documentation
16// or
17// refer to README to build package
18// or
19// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
20
9d9ffd37 21#include "AliHLTCalibrationProcessor.h"
02d01bbf 22#include "AliHLTTPCDefinitions.h"
23
24class AliTPCRawStream;
25class AliRawReaderMemory;
26class AliTPCCalibPedestal;
27
28/**
29 * @class AliHLTTPCCalibPedestalComponent
30 *
9d9ffd37 31 * This class is the calibration component for the AliTPCCalibPedestal class
32 * used for pedestal calibration of the TPC.
33 *
7c4091c1 34 * It inherits from the AliHLTCalibrationProcessor and uses the high-level
35 * interface. The output is the class AliTPCCalibPedestal as a TObject.
02d01bbf 36 *
37 * The component has the following component arguments:
9d9ffd37 38 * -rcuformat <old/new> : Wether to use old or new rcuformat ( default is new )
39 * -enableanalysis : Wether to enable analyis before shipping data to FXS
02d01bbf 40 *
2efb85be 41 * @ingroup alihlt_tpc_components
02d01bbf 42 */
9d9ffd37 43class AliHLTTPCCalibPedestalComponent : public AliHLTCalibrationProcessor
02d01bbf 44 {
45 public:
9d9ffd37 46 /** constructor */
02d01bbf 47 AliHLTTPCCalibPedestalComponent();
02d01bbf 48 /** destructor */
49 virtual ~AliHLTTPCCalibPedestalComponent();
50
51 // Public functions to implement AliHLTComponent's interface.
52 // These functions are required for the registration process
53
54 const char* GetComponentID();
55 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
56 AliHLTComponentDataType GetOutputDataType();
57 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
58 AliHLTComponent* Spawn();
59
60 protected:
5d2abf3b 61
62 using AliHLTCalibrationProcessor::ProcessCalibration;
63 using AliHLTCalibrationProcessor::ShipDataToFXS;
02d01bbf 64
65 // Protected functions to implement AliHLTComponent's interface.
66 // These functions provide initialization as well as the actual processing
67 // capabilities of the component.
68
9d9ffd37 69 /** Initialize the calibration component. */
70 Int_t InitCalibration();
71
72 /** Scan commandline arguments of the calibration component. */
73 Int_t ScanArgument( Int_t argc, const char** argv );
74
75 /** DeInitialize the calibration component. */
76 Int_t DeinitCalibration();
77
78 /** Process the data in the calibration component. */
79 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
80
81 /** Ship the data to the FXS at end of run or eventmodulo. */
82 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
83
02d01bbf 84 private:
8f8bf0af 85 /** copy constructor prohibited */
86 AliHLTTPCCalibPedestalComponent(const AliHLTTPCCalibPedestalComponent&);
87 /** assignment operator prohibited */
88 AliHLTTPCCalibPedestalComponent& operator=(const AliHLTTPCCalibPedestalComponent&);
02d01bbf 89
9d9ffd37 90 /** The reader object for reading from memory */
02d01bbf 91 AliRawReaderMemory* fRawReader; //!transient
92
9d9ffd37 93 /** The reader object for reading TPC raw data */
02d01bbf 94 AliTPCRawStream* fRawStream; //!transient
95
96 /** Pedestal Calibration class */
97 AliTPCCalibPedestal * fCalibPedestal; //!transient
02d01bbf 98
9d9ffd37 99 /** Minimum patch specifcation for this component */
100 AliHLTUInt8_t fMinPatch; // see above
101
102 /** Minimum patch specifcation for this component */
103 AliHLTUInt8_t fMaxPatch; // see above
104
105 /** The Specification for this component */
106 AliHLTUInt32_t fSpecification; // see above
107
108 /** Analysze calibration data before shipping to FXS */
109 Bool_t fEnableAnalysis; // see above
110
9a090ccd 111 ClassDef(AliHLTTPCCalibPedestalComponent, 2)
02d01bbf 112
113 };
114#endif