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 **************************************************************************/
19 #ifndef ALIHLTPHOSMODULECALIBRATIONPROCESSORCOMPONENT_H
20 #define ALIHLTPHOSMODULECALIBRATIONPROCESSORCOMPONENT_H
23 * Module calibration processor component for PHOS HLT
25 * @file AliHLTPHOSModuleCalibrationProcessorComponent.h
26 * @author Oystein Djuvsland
28 * @brief Module calibration processor component for PHOS HLT
31 // see below for class documentation
33 // refer to README to build package
35 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
37 #include "AliHLTCalibrationProcessor.h"
38 #include "AliHLTPHOSConstants.h"
40 using namespace PhosHLTConst;
43 class AliHLTPHOSSharedMemoryInterface;
46 class AliHLTPHOSModuleCalibrationProcessorComponent: public AliHLTCalibrationProcessor
51 AliHLTPHOSModuleCalibrationProcessorComponent();
55 virtual ~AliHLTPHOSModuleCalibrationProcessorComponent();
58 // Public functions to implement AliHLTComponent's interface.
59 // These functions are required for the registration process
61 const char* GetComponentID();
62 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
63 AliHLTComponentDataType GetOutputDataType();
64 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
65 AliHLTComponent* Spawn();
68 /** Initialize the calibration component. */
69 Int_t InitCalibration();
71 /** Scan commandline arguments of the calibration component. */
72 Int_t ScanArgument( Int_t argc, const char** argv );
74 /** DeInitialize the calibration component. */
75 Int_t DeinitCalibration();
77 /** Process the data in the calibration component. */
78 using AliHLTCalibrationProcessor::ProcessCalibration;
79 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
81 /** Ship the data to the FXS at end of run or eventmodulo. */
82 using AliHLTCalibrationProcessor::ShipDataToFXS;
83 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
85 /** Reset the energy and timing arrays */
86 void ResetArrays(Float_t e[NXCOLUMNSMOD][NZROWSMOD][NGAINS], Float_t t[NXCOLUMNSMOD][NZROWSMOD][NGAINS]);
87 int fCnt; ///TODO, remove this
90 /** not a valid copy constructor, defined according to effective C++ style */
91 AliHLTPHOSModuleCalibrationProcessorComponent(const AliHLTPHOSModuleCalibrationProcessorComponent&);
92 /** not a valid assignment op, but defined according to effective C++ style */
93 AliHLTPHOSModuleCalibrationProcessorComponent& operator=(const AliHLTPHOSModuleCalibrationProcessorComponent&);
94 /** Pointer to the DA */
95 AliPHOSRcuDA1* fPHOSDAPtr; //! transient
97 /** Interface to read altro channel data from shared memory */
98 AliHLTPHOSSharedMemoryInterface *fShmPtr; //! transient