3de27bf2bc6b925caa2b5b2475a4cceee794cd44
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDCalibrationComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTRDCALIBRATIONCOMPONENT_H
5 #define ALIHLTTRDCALIBRATIONCOMPONENT_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                               *
9
10 /** @file   AliHLTTRDCalibrationComponent.h
11     @author Timm Steinbeck, Matthias Richter
12     @date   
13     @brief  Declaration of a TRDCalibration component. */
14
15
16 #include "AliHLTCalibrationProcessor.h"
17 class AliCDBManager;
18 class AliTRDCalibraFillHisto;
19 class TClonesArray;
20
21 /**
22  * @class AliHLTTRDCalibrationComponent
23  * @brief A TRDCalibration HLT processing component. 
24  *
25  * - @ref InitCalibration (optional)
26  * - @ref ScanArgument (optional)
27  * - @ref DeinitCalibration (optional)
28  * - @ref ProcessCalibration
29  * - @ref ShipDataToFXS
30  * - @ref GetComponentID
31  * - @ref GetInputDataTypes
32  * - @ref GetOutputDataType
33  * - @ref GetOutputDataSize
34  * - @ref Spawn
35  * @ingroup alihlt_tutorial
36  */
37 class AliHLTTRDCalibrationComponent : public AliHLTCalibrationProcessor
38 {
39 public:
40   AliHLTTRDCalibrationComponent();
41   virtual ~AliHLTTRDCalibrationComponent();
42
43   // Public functions to implement AliHLTComponent's interface.
44   // These functions are required for the registration process
45
46   const char* GetComponentID();
47   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
48   AliHLTComponentDataType GetOutputDataType();
49   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
50   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
51   AliHLTComponent* Spawn();
52         
53 protected:
54         
55   // Protected functions to implement AliHLTComponent's interface.
56   // These functions provide initialization as well as the actual processing
57   // capabilities of the component. 
58         
59   AliTRDCalibraFillHisto *fTRDCalibraFillHisto;
60         
61   virtual Int_t InitCalibration();
62   virtual Int_t ScanArgument(int argc, const char** argv);
63   virtual Int_t DeinitCalibration();
64   virtual Int_t ProcessCalibration(const AliHLTComponent_EventData& evtData,
65                                    const AliHLTComponent_BlockData* blocks,
66                                    AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
67                                    AliHLTUInt32_t& size,
68                                    vector<AliHLTComponent_BlockData>& outputBlocks);
69   /*    virtual Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); */
70   virtual Int_t ShipDataToFXS(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
71   virtual Int_t  EORCalibration();
72         
73   using AliHLTCalibrationProcessor::ProcessCalibration;
74   //using AliHLTCalibrationProcessor::ShipDataToFXS;
75
76 private:
77   /** copy constructor prohibited */
78   AliHLTTRDCalibrationComponent(const AliHLTTRDCalibrationComponent&);
79   /** assignment operator prohibited */
80   AliHLTTRDCalibrationComponent& operator=(const AliHLTTRDCalibrationComponent&);
81   void FormOutput(Int_t param);
82
83   AliHLTUInt32_t fOutputSize;    // output size
84   TClonesArray* fTracksArray;    // array containing the input
85   TObjArray* fOutArray;          // array containing the output
86   TObjArray* fAfterRunArray;     // array with after run processing output 
87   TObjArray* fDisplayArray;        //array with online display histos
88   Bool_t fRecievedTimeBins;      // already recived the number of time bins?
89   TObjArray *fTrgStrings;        // name of trigger classes to accept or reject
90   Int_t  fAccRejTrg;             // do we actually accept or reject the trigger strings?
91   
92   ClassDef(AliHLTTRDCalibrationComponent, 2)
93
94 };
95 #endif
96