]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCCalibPulserComponent.h
build system clean-up, support for custom LinkDef added
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCCalibPulserComponent.h
CommitLineData
9d9ffd37 1//-*- Mode: C++ -*-
2#ifndef ALIHLTTPCCALIBPULSERCOMPONENT_H
3#define ALIHLTTPCCALIBPULSERCOMPONENT_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 AliHLTTPCCalibPulserComponent.h
10 @author Jochen Thaeder
11 @date
12 @brief A pulser calibration component for the TPC.
13*/
14
15#include "AliHLTCalibrationProcessor.h"
16#include "AliHLTTPCDefinitions.h"
17
18class AliTPCRawStream;
19class AliRawReaderMemory;
20class AliTPCCalibPulser;
21
22/**
23 * @class AliHLTTPCCalibPulserComponent
24 *
25 * This class is the calibration component for the AliTPCCalibPulser class
26 * used for pulser calibration of the TPC.
27 *
7c4091c1 28 * It inherits from the AliHLTCalibrationProcessor and uses the high-level
29 * interface. The output is the class AliTPCCalibPulser as a TObject.
9d9ffd37 30 *
31 * The component has the following component arguments:
32 * -rcuformat <old/new> : Wether to use old or new rcuformat ( default is new )
33 * -enableanalysis : Wether to enable analyis before shipping data to FXS
34 *
35 * @ingroup alihlt_tpc
36 */
37class AliHLTTPCCalibPulserComponent : public AliHLTCalibrationProcessor
38 {
39 public:
40 /** constructor */
41 AliHLTTPCCalibPulserComponent();
42 /** not a valid copy constructor, defined according to effective C++ style */
43 AliHLTTPCCalibPulserComponent(const AliHLTTPCCalibPulserComponent&);
44 /** not a valid assignment op, but defined according to effective C++ style */
45 AliHLTTPCCalibPulserComponent& operator=(const AliHLTTPCCalibPulserComponent&);
46 /** destructor */
47 virtual ~AliHLTTPCCalibPulserComponent();
48
49 // Public functions to implement AliHLTComponent's interface.
50 // These functions are required for the registration process
51
52 const char* GetComponentID();
53 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
54 AliHLTComponentDataType GetOutputDataType();
55 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
56 AliHLTComponent* Spawn();
57
58 protected:
59
60 // Protected functions to implement AliHLTComponent's interface.
61 // These functions provide initialization as well as the actual processing
62 // capabilities of the component.
63
64 /** Initialize the calibration component. */
65 Int_t InitCalibration();
66
67 /** Scan commandline arguments of the calibration component. */
68 Int_t ScanArgument( Int_t argc, const char** argv );
69
70 /** DeInitialize the calibration component. */
71 Int_t DeinitCalibration();
72
73 /** Process the data in the calibration component. */
74 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
75
76 /** Ship the data to the FXS at end of run or eventmodulo. */
77 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
78
79 private:
80
81 /** The reader object for reading from memory */
82 AliRawReaderMemory* fRawReader; //!transient
83
84 /** The reader object for reading TPC raw data */
85 AliTPCRawStream* fRawStream; //!transient
86
87 /** Pulser Calibration class */
88 AliTPCCalibPulser * fCalibPulser; //!transient
89
90 /** Wether to use old RCU format */
91 Bool_t fRCUFormat; // see above
92
93 /** Minimum patch specifcation for this component */
94 AliHLTUInt8_t fMinPatch; // see above
95
96 /** Minimum patch specifcation for this component */
97 AliHLTUInt8_t fMaxPatch; // see above
98
99 /** The Specification for this component */
100 AliHLTUInt32_t fSpecification; // see above
101
102 /** Analysze calibration data before shipping to FXS */
103 Bool_t fEnableAnalysis; // see above
104
105 ClassDef(AliHLTTPCCalibPulserComponent, 0)
106
107 };
108
109#endif