]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDCalibrationComponent.h
update of TRD HLT (Konstantin)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDCalibrationComponent.h
1 #ifndef ALIHLTTRDCALIBRATIONCOMPONENT_H
2 #define ALIHLTTRDCALIBRATIONCOMPONENT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /** @file   AliHLTTRDCalibrationComponent.h
7     @author Timm Steinbeck, Matthias Richter
8     @date   
9     @brief  Declaration of a TRDCalibration component. */
10
11
12 #include "AliHLTCalibrationProcessor.h"
13 class AliCDBManager;
14 class AliTRDCalibraFillHisto;
15
16 /**
17  * @class AliHLTTRDCalibrationComponent
18  * @brief A TRDCalibration HLT processing component. 
19  *
20  * - @ref InitCalibration (optional)
21  * - @ref ScanArgument (optional)
22  * - @ref DeinitCalibration (optional)
23  * - @ref ProcessCalibration
24  * - @ref ShipDataToFXS
25  * - @ref GetComponentID
26  * - @ref GetInputDataTypes
27  * - @ref GetOutputDataType
28  * - @ref GetOutputDataSize
29  * - @ref Spawn
30  * @ingroup alihlt_tutorial
31  */
32 class AliHLTTRDCalibrationComponent : public AliHLTCalibrationProcessor
33     {
34     public:
35         AliHLTTRDCalibrationComponent();
36         virtual ~AliHLTTRDCalibrationComponent();
37
38         // Public functions to implement AliHLTComponent's interface.
39         // These functions are required for the registration process
40
41         const char* GetComponentID();
42         void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
43         AliHLTComponent_DataType GetOutputDataType();
44         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
45         AliHLTComponent* Spawn();
46         
47     protected:
48         
49         // Protected functions to implement AliHLTComponent's interface.
50         // These functions provide initialization as well as the actual processing
51         // capabilities of the component. 
52         
53         AliTRDCalibraFillHisto *fTRDCalibraFillHisto;
54         
55         virtual Int_t InitCalibration();
56         virtual Int_t ScanArgument(int argc, const char** argv);
57         virtual Int_t DeinitCalibration();
58         virtual Int_t ProcessCalibration(const AliHLTComponent_EventData& evtData,
59                                          const AliHLTComponent_BlockData* blocks,
60                                          AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
61                                          AliHLTUInt32_t& size,
62                                          vector<AliHLTComponent_BlockData>& outputBlocks);
63 /*      virtual Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); */
64         virtual Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
65         
66         using AliHLTCalibrationProcessor::ProcessCalibration;
67         using AliHLTCalibrationProcessor::ShipDataToFXS;
68
69         Bool_t fUseHLTTracks;
70         Int_t ReadTracks(TClonesArray *outArray, void* inputPtr, AliHLTUInt32_t size);
71         
72     private:
73         /** copy constructor prohibited */
74         AliHLTTRDCalibrationComponent(const AliHLTTRDCalibrationComponent&);
75         /** assignment operator prohibited */
76         AliHLTTRDCalibrationComponent& operator=(const AliHLTTRDCalibrationComponent&);
77         TObjArray* FormOutput();
78         // The size of the output data produced, as a percentage of the input data's size.
79         // Can be greater than 100 (%)
80         
81         unsigned fOutputPercentage; // Output volume in percentage of the input
82         string fStrorageDBpath; // Default path for OCDB
83         AliCDBManager *fCDB; //! Pointer to OCDB
84         
85         ClassDef(AliHLTTRDCalibrationComponent, 0)
86
87     };
88 #endif