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 * -rcuformat <old/new> : Wether to use old or new rcuformat ( default is new )
39 * -enableanalysis : Wether to enable analyis before shipping data to FXS
43 class AliHLTTPCCalibPulserComponent : public AliHLTCalibrationProcessor
47 AliHLTTPCCalibPulserComponent();
49 virtual ~AliHLTTPCCalibPulserComponent();
51 // Public functions to implement AliHLTComponent's interface.
52 // These functions are required for the registration process
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();
62 // Protected functions to implement AliHLTComponent's interface.
63 // These functions provide initialization as well as the actual processing
64 // capabilities of the component.
66 /** Initialize the calibration component. */
67 Int_t InitCalibration();
69 /** Scan commandline arguments of the calibration component. */
70 Int_t ScanArgument( Int_t argc, const char** argv );
72 /** DeInitialize the calibration component. */
73 Int_t DeinitCalibration();
75 /** Process the data in the calibration component. */
76 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
78 /** Ship the data to the FXS at end of run or eventmodulo. */
79 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
82 /** copy constructor prohibited */
83 AliHLTTPCCalibPulserComponent(const AliHLTTPCCalibPulserComponent&);
84 /** assignment operator prohibited */
85 AliHLTTPCCalibPulserComponent& operator=(const AliHLTTPCCalibPulserComponent&);
87 /** The reader object for reading from memory */
88 AliRawReaderMemory* fRawReader; //!transient
90 /** The reader object for reading TPC raw data */
91 AliTPCRawStream* fRawStream; //!transient
93 /** Pulser Calibration class */
94 AliTPCCalibPulser * fCalibPulser; //!transient
96 /** Wether to use old RCU format */
97 Bool_t fRCUFormat; // see above
99 /** Minimum patch specifcation for this component */
100 AliHLTUInt8_t fMinPatch; // see above
102 /** Minimum patch specifcation for this component */
103 AliHLTUInt8_t fMaxPatch; // see above
105 /** The Specification for this component */
106 AliHLTUInt32_t fSpecification; // see above
108 /** Analysze calibration data before shipping to FXS */
109 Bool_t fEnableAnalysis; // see above
111 ClassDef(AliHLTTPCCalibPulserComponent, 0)