3 #ifndef ALIHLTTPCCALIBCECOMPONENT_H
4 #define ALIHLTTPCCALIBCECOMPONENT_H
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 */
10 /** @file AliHLTTPCCalibCEComponent.h
11 @author Jochen Thaeder
13 @brief A pedestal calibration component for the TPC.
16 // see below for class documentation
18 // refer to README to build package
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 #include "AliHLTCalibrationProcessor.h"
24 class AliTPCRawStream;
25 class AliRawReaderMemory;
29 * @class AliHLTTPCCalibCEComponent
31 * This class is the calibration component for the AliTPCCalibCE class
32 * used for central electrode calibration of the TPC.
34 * It inherits from the AliHLTCalibrationProcessor and uses the high-level
35 * interface. The output is the class AliTPCCalibCE as a TObject.
37 * The component has the following component arguments:
38 * -enableanalysis : Whether to enable analyis before shipping data to FXS
40 * @ingroup alihlt_tpc_components
42 class AliHLTTPCCalibCEComponent : public AliHLTCalibrationProcessor
46 AliHLTTPCCalibCEComponent();
48 virtual ~AliHLTTPCCalibCEComponent();
50 // Public functions to implement AliHLTComponent's interface.
51 // These functions are required for the registration process
53 const char* GetComponentID();
54 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
55 AliHLTComponentDataType GetOutputDataType();
56 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
57 AliHLTComponent* Spawn();
61 using AliHLTCalibrationProcessor::ProcessCalibration;
62 using AliHLTCalibrationProcessor::ShipDataToFXS;
64 // Protected functions to implement AliHLTComponent's interface.
65 // These functions provide initialization as well as the actual processing
66 // capabilities of the component.
68 /** Initialize the calibration component. */
69 Int_t InitCalibration();
71 /** Scan commandline arguments of the calibration component. */
72 Int_t ScanArgument( Int_t argc, const char** argv );
74 /** DeInitialize the calibration component. */
75 Int_t DeinitCalibration();
77 /** Process the data in the calibration component. */
78 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
80 /** Ship the data to the FXS at end of run or eventmodulo. */
81 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
84 /** copy constructor prohibited */
85 AliHLTTPCCalibCEComponent(const AliHLTTPCCalibCEComponent&);
86 /** assignment operator prohibited */
87 AliHLTTPCCalibCEComponent& operator=(const AliHLTTPCCalibCEComponent&);
89 /** The reader object for reading from memory */
90 AliRawReaderMemory* fRawReader; //!transient
92 /** The reader object for reading TPC raw data */
93 AliTPCRawStream* fRawStream; //!transient
95 /** Pedestal Calibration class */
96 AliTPCCalibCE * fCalibCE; //!transient
98 /** Minimum patch specifcation for this component */
99 AliHLTUInt8_t fMinPatch; // see above
101 /** Minimum patch specifcation for this component */
102 AliHLTUInt8_t fMaxPatch; // see above
104 /** The Specification for this component */
105 AliHLTUInt32_t fSpecification; // see above
107 /** Analysze calibration data before shipping to FXS */
108 Bool_t fEnableAnalysis; // see above
110 ClassDef(AliHLTTPCCalibCEComponent, 2)