]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSModuleCalibrationProcessorComponent.h
New production macros (Yves)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSModuleCalibrationProcessorComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
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 #ifndef ALIHLTPHOSMODULECALIBRATIONPROCESSORCOMPONENT_H
20 #define ALIHLTPHOSMODULECALIBRATIONPROCESSORCOMPONENT_H
21
22 /**
23  * Module calibration processor component for PHOS HLT
24  *
25  * @file   AliHLTPHOSModuleCalibrationProcessorComponent.h
26  * @author Oystein Djuvsland
27  * @date   
28  * @brief  Module calibration processor component for PHOS HLT
29 */
30
31 // see below for class documentation
32 // or
33 // refer to README to build package
34 // or
35 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
36
37 #include "AliHLTCalibrationProcessor.h"
38 #include "AliHLTPHOSConstants.h"
39
40 using namespace PhosHLTConst;
41
42 class AliPHOSRcuDA1;
43 class AliHLTPHOSSharedMemoryInterface;
44 class TObjArray;
45
46 class AliHLTPHOSModuleCalibrationProcessorComponent: public AliHLTCalibrationProcessor
47 {
48 public:
49
50   /** constructor */
51   AliHLTPHOSModuleCalibrationProcessorComponent();
52
53  
54   /** destructor */
55   virtual ~AliHLTPHOSModuleCalibrationProcessorComponent();
56       
57
58   // Public functions to implement AliHLTComponent's interface.
59   // These functions are required for the registration process
60
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();
66
67 protected:
68   /** Initialize the calibration component. */
69   Int_t InitCalibration();
70
71   /** Scan commandline arguments of the calibration component. */
72   Int_t ScanArgument( Int_t argc, const char** argv );
73
74   /** DeInitialize the calibration component. */
75   Int_t DeinitCalibration();
76
77   /** Process the data in the calibration component. */
78   using  AliHLTCalibrationProcessor::ProcessCalibration;
79   Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
80
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 );
84
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
88
89 private:
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
96
97   /** Interface to read altro channel data from shared memory */
98   AliHLTPHOSSharedMemoryInterface *fShmPtr;   //! transient
99
100 };
101
102 #endif
103