]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCCalibPedestalComponent.h
first steps to set the covariance matrix from the errors calculated in conformal...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCCalibPedestalComponent.h
1 //-*- Mode: C++ -*-
2 #ifndef ALIHLTTPCCALIBPEDESTALCOMPONENT_H
3 #define ALIHLTTPCCALIBPEDESTALCOMPONENT_H
4
5 /* This file is property of and copyright by the ALICE HLT Project        * 
6  * ALICE Experiment at CERN, All rights reserved.                         *
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
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
21 #include "AliHLTCalibrationProcessor.h"
22 #include "AliHLTTPCDefinitions.h"
23
24 class AliTPCRawStream;
25 class AliRawReaderMemory;
26 class AliTPCCalibPedestal;
27
28 /**
29  * @class AliHLTTPCCalibPedestalComponent
30  * 
31  * This class is the calibration component for the AliTPCCalibPedestal class 
32  * used for pedestal calibration of the TPC. 
33  * 
34  * It inherits from the AliHLTCalibrationProcessor and uses the high-level 
35  * interface. The output is the class AliTPCCalibPedestal as a TObject.
36  *
37  * The component has the following component arguments:
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
40  *
41  * @ingroup alihlt_tpc_components
42  */
43 class AliHLTTPCCalibPedestalComponent : public AliHLTCalibrationProcessor
44     {
45     public:
46       /** constructor */
47       AliHLTTPCCalibPedestalComponent();
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:
61
62       using AliHLTCalibrationProcessor::ProcessCalibration;
63       using AliHLTCalibrationProcessor::ShipDataToFXS;
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       
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
84     private:
85       /** copy constructor prohibited */
86       AliHLTTPCCalibPedestalComponent(const AliHLTTPCCalibPedestalComponent&);
87       /** assignment operator prohibited */
88       AliHLTTPCCalibPedestalComponent& operator=(const AliHLTTPCCalibPedestalComponent&);
89
90       /** The reader object for reading from memory */
91       AliRawReaderMemory* fRawReader;                                              //!transient
92
93       /** The reader object for reading TPC raw data */  
94       AliTPCRawStream* fRawStream;                                                 //!transient
95
96       /** Pedestal Calibration class */
97       AliTPCCalibPedestal * fCalibPedestal;                                        //!transient
98
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
111       ClassDef(AliHLTTPCCalibPedestalComponent, 2)
112
113     };
114 #endif