2 #ifndef ALIHLTTPCCALIBPULSERCOMPONENT_H
3 #define ALIHLTTPCCALIBPULSERCOMPONENT_H
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 */
9 /** @file AliHLTTPCCalibPulserComponent.h
10 @author Jochen Thaeder
12 @brief A pulser calibration component for the TPC.
15 // see header file for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 #include "AliHLTCalibrationProcessor.h"
22 #include "AliHLTTPCDefinitions.h"
24 class AliTPCRawStream;
25 class AliRawReaderMemory;
26 class AliTPCCalibPulser;
29 * @class AliHLTTPCCalibPulserComponent
31 * This class is the calibration component for the AliTPCCalibPulser class
32 * used for pulser calibration of the TPC.
34 * It inherits from the AliHLTCalibrationProcessor and uses the high-level
35 * interface. The output is the class AliTPCCalibPulser as a TObject.
37 * The component has the following component arguments:
38 * -enableanalysis : Wether to enable analyis before shipping data to FXS
40 * @ingroup alihlt_tpc_components
42 class AliHLTTPCCalibPulserComponent : public AliHLTCalibrationProcessor
46 AliHLTTPCCalibPulserComponent();
48 virtual ~AliHLTTPCCalibPulserComponent();
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 AliHLTTPCCalibPulserComponent(const AliHLTTPCCalibPulserComponent&);
86 /** assignment operator prohibited */
87 AliHLTTPCCalibPulserComponent& operator=(const AliHLTTPCCalibPulserComponent&);
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 /** Pulser Calibration class */
96 AliTPCCalibPulser * fCalibPulser; //!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(AliHLTTPCCalibPulserComponent, 0)