4 /**************************************************************************
5 * This file is property of and copyright by the ALICE HLT Project *
6 * All rights reserved. *
8 * Primary Authors: Oystein Djuvsland *
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 **************************************************************************/
20 #ifndef ALIHLTPHOSRCUDACOMPONENT_H
21 #define ALIHLTPHOSRCUDACOMPONENT_H
24 * Module calibration processor component for PHOS HLT
26 * @file AliHLTPHOSRcuDAComponent.h
27 * @author Oystein Djuvsland
29 * @brief Module calibration processor component for PHOS HLT
32 // see below for class documentation
34 // refer to README to build package
36 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
38 #include "AliHLTCalibrationProcessor.h"
39 #include "AliHLTPHOSConstant.h"
40 //#include "AliHLTPHOSRcuProperties.h"
42 using namespace PhosHLTConst;
45 class AliHLTPHOSSharedMemoryInterfacev2;
48 //class AliHLTPHOSRcuDAComponent: public AliHLTCalibrationProcessor, public AliHLTPHOSRcuProcessor
49 //class AliHLTPHOSRcuDAComponent: public AliHLTPHOSRcuProperties, public AliHLTCalibrationProcessor
52 class AliHLTPHOSRcuDAComponent: public AliHLTCalibrationProcessor
56 AliHLTPHOSRcuDAComponent();
58 virtual ~AliHLTPHOSRcuDAComponent();
59 /* virtual int Deinit(); */
60 /* virtual int DoInit(int, const char**); */
62 // Public functions to implement AliHLTComponent's interface.
63 // These functions are required for the registration process
65 const char* GetComponentID();
66 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
67 AliHLTComponentDataType GetOutputDataType();
68 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
69 AliHLTComponent* Spawn();
72 // Protected functions to implement AliHLTComponent's interface.
73 // These functions provide initialization as well as the actual processing
74 // capabilities of the component.
76 /** Initialize the calibration component. */
77 Int_t InitCalibration();
79 /** Scan commandline arguments of the calibration component. */
80 Int_t ScanArgument( Int_t argc, const char** argv );
82 /** DeInitialize the calibration component. */
83 Int_t DeinitCalibration();
85 /** Process the data in the calibration component. */
86 using AliHLTCalibrationProcessor::ProcessCalibration;
87 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
89 /** Ship the data to the FXS at end of run or eventmodulo. */
90 using AliHLTCalibrationProcessor::ShipDataToFXS;
91 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
93 /** Reset the energy and timing arrays */
94 void ResetArrays(Float_t e[NXCOLUMNSMOD][NZROWSMOD][NGAINS], Float_t t[NXCOLUMNSMOD][NZROWSMOD][NGAINS]);
96 // int fCnt; ///TODO, remove this
99 /** not a valid copy constructor, defined according to effective C++ style */
100 AliHLTPHOSRcuDAComponent(const AliHLTPHOSRcuDAComponent&);
101 /** not a valid assignment op, but defined according to effective C++ style */
102 AliHLTPHOSRcuDAComponent& operator=(const AliHLTPHOSRcuDAComponent&);
103 int fPhosEventCount; ///TODO, remove this
105 /** Pointer to the DA */
106 AliPHOSRcuDA1* fPHOSDAPtr; //! transient
108 /** Interface to read altro channel data from shared memory */
109 AliHLTPHOSSharedMemoryInterfacev2 *fShmPtr; //! transient