]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDCalibFitComponent.h
new centrality selection
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDCalibFitComponent.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTTRDCalibFitComponent.h 40269 2010-04-08 22:08:53Z richterm $
3
4 #ifndef ALIHLTTRDCALIBFITCOMPONENT_H
5 #define ALIHLTTRDCALIBFITCOMPONENT_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   AliHLTTRDCalibFitComponent.h
11 //  @author 
12 //  @date   
13 //  @brief  Declaration of a TRDCalibration component. 
14 // 
15
16
17 #include "AliHLTCalibrationProcessor.h"
18 class AliCDBManager;
19 class AliTRDCalibraFillHisto;
20 class TClonesArray;
21
22 /**
23  * @class AliHLTTRDCalibFitComponent
24  * @brief A TRDCalibration HLT processing component. 
25  *
26  * - @ref InitCalibration (optional)
27  * - @ref ScanArgument (optional)
28  * - @ref DeinitCalibration (optional)
29  * - @ref ProcessCalibration
30  * - @ref ShipDataToFXS
31  * - @ref GetComponentID
32  * - @ref GetInputDataTypes
33  * - @ref GetOutputDataType
34  * - @ref GetOutputDataSize
35  * - @ref Spawn
36  * @ingroup alihlt_tutorial
37  */
38 class AliHLTTRDCalibFitComponent : public AliHLTCalibrationProcessor
39 {
40 public:
41   AliHLTTRDCalibFitComponent();
42   virtual ~AliHLTTRDCalibFitComponent();
43
44   // Public functions to implement AliHLTComponent's interface.
45   // These functions are required for the registration process
46
47   const char* GetComponentID();
48   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
49   AliHLTComponentDataType GetOutputDataType();
50   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
51   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
52   AliHLTComponent* Spawn();
53         
54 protected:
55         
56   // Protected functions to implement AliHLTComponent's interface.
57   // These functions provide initialization as well as the actual processing
58   // capabilities of the component. 
59         
60   virtual Int_t InitCalibration();
61   virtual Int_t DeinitCalibration();
62   virtual Int_t ProcessCalibration(const AliHLTComponent_EventData& evtData,
63                                    const AliHLTComponent_BlockData* blocks,
64                                    AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
65                                    AliHLTUInt32_t& size,
66                                    vector<AliHLTComponent_BlockData>& outputBlocks);
67   /*    virtual Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); */
68   virtual Int_t ShipDataToFXS(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
69   virtual Int_t  EORCalibration();
70         
71   using AliHLTCalibrationProcessor::ProcessCalibration;
72   //using AliHLTCalibrationProcessor::ShipDataToFXS;
73
74 private:
75   /** copy constructor prohibited */
76   AliHLTTRDCalibFitComponent(const AliHLTTRDCalibFitComponent&);
77   /** assignment operator prohibited */
78   AliHLTTRDCalibFitComponent& operator=(const AliHLTTRDCalibFitComponent&);
79
80   AliHLTUInt32_t fOutputSize;    // output size
81   TObjArray* fOutArray;          // array containing the output
82   TObjArray* fAfterRunArray;     // array with after run processing output 
83   Bool_t fIncSM[18];             // array for telling which super module was already added
84   Int_t fNoOfSM;                 // number of known SM
85   Int_t fNoOfIncSM;              // number of SM already added
86   
87   ClassDef(AliHLTTRDCalibFitComponent, 2)
88
89 };
90 #endif
91