]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSRcuDAComponent.h
New production macros (Yves)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRcuDAComponent.h
CommitLineData
1b41ab20 1//-*- Mode: C++ -*-
2// $Id$
3
64357c47 4/**************************************************************************
5 * This file is property of and copyright by the ALICE HLT Project *
6 * All rights reserved. *
7 * *
8 * Primary Authors: Oystein Djuvsland *
9 * *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
18
19
20#ifndef ALIHLTPHOSRCUDACOMPONENT_H
21#define ALIHLTPHOSRCUDACOMPONENT_H
22
23/**
24 * Module calibration processor component for PHOS HLT
25 *
26 * @file AliHLTPHOSRcuDAComponent.h
27 * @author Oystein Djuvsland
28 * @date
29 * @brief Module calibration processor component for PHOS HLT
30*/
31
32// see below for class documentation
33// or
34// refer to README to build package
35// or
36// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
37
38#include "AliHLTCalibrationProcessor.h"
39#include "AliHLTPHOSConstants.h"
40#include "AliHLTPHOSRcuProperties.h"
41
42using namespace PhosHLTConst;
43
44class AliPHOSRcuDA1;
45class AliHLTPHOSSharedMemoryInterface;
46class TObjArray;
47
48//class AliHLTPHOSRcuDAComponent: public AliHLTCalibrationProcessor, public AliHLTPHOSRcuProcessor
49class AliHLTPHOSRcuDAComponent: public AliHLTPHOSRcuProperties, public AliHLTCalibrationProcessor
50{
51public:
64357c47 52 /** constructor */
53 AliHLTPHOSRcuDAComponent();
64357c47 54 /** destructor */
55 virtual ~AliHLTPHOSRcuDAComponent();
64357c47 56 /* virtual int Deinit(); */
57/* virtual int DoInit(int, const char**); */
58
59 // Public functions to implement AliHLTComponent's interface.
60 // These functions are required for the registration process
61
62 const char* GetComponentID();
63 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
64 AliHLTComponentDataType GetOutputDataType();
65 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
66 AliHLTComponent* Spawn();
67
68protected:
64357c47 69 // Protected functions to implement AliHLTComponent's interface.
70 // These functions provide initialization as well as the actual processing
71 // capabilities of the component.
72
73 /** Initialize the calibration component. */
74 Int_t InitCalibration();
75
76 /** Scan commandline arguments of the calibration component. */
77 Int_t ScanArgument( Int_t argc, const char** argv );
78
79 /** DeInitialize the calibration component. */
80 Int_t DeinitCalibration();
81
82 /** Process the data in the calibration component. */
83 using AliHLTCalibrationProcessor::ProcessCalibration;
84 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
85
86 /** Ship the data to the FXS at end of run or eventmodulo. */
87 using AliHLTCalibrationProcessor::ShipDataToFXS;
88 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
89
90 /** Reset the energy and timing arrays */
27029341 91 void ResetArrays(Float_t e[NXCOLUMNSMOD][NZROWSMOD][NGAINS], Float_t t[NXCOLUMNSMOD][NZROWSMOD][NGAINS]);
64357c47 92
93 // int fCnt; ///TODO, remove this
94
95private:
6e587e00 96 /** not a valid copy constructor, defined according to effective C++ style */
97 AliHLTPHOSRcuDAComponent(const AliHLTPHOSRcuDAComponent&);
98 /** not a valid assignment op, but defined according to effective C++ style */
99 AliHLTPHOSRcuDAComponent& operator=(const AliHLTPHOSRcuDAComponent&);
64357c47 100 int fPhosEventCount; ///TODO, remove this
101
64357c47 102 /** Pointer to the DA */
103 AliPHOSRcuDA1* fPHOSDAPtr; //! transient
104
105 /** Interface to read altro channel data from shared memory */
106 AliHLTPHOSSharedMemoryInterface *fShmPtr; //! transient
107
108};
109
110#endif
111