]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/EMCAL/AliHLTEMCALDigitMakerComponent.h
AliVVfriend* moved to AliVfriend*, unnecessary AliVV* classes removed
[u/mrichter/AliRoot.git] / HLT / EMCAL / AliHLTEMCALDigitMakerComponent.h
CommitLineData
ca071d0a 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#ifndef ALIHLTEMCALDIGITMAKERCOMPONENT_H
19#define ALIHLTEMCALDIGITMAKERCOMPONENT_H
20
21/** @file AliHLTEMCALDigitMakerComponent.h
22 @author Oystein Djuvsland
23 @date
24 @brief A digit maker component for EMCAL HLT
25*/
26
27// see below for class documentation
28// or
29// refer to README to build package
30// or
31// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
32
33#include "AliHLTCaloProcessor.h"
dc3d3428 34
35//#include "AliHLTCaloConstantsHandler.h"
ca071d0a 36
7b3a0a0e 37class AliEMCALCalibData;
38class AliCaloCalibPedestal;
ca071d0a 39
40class AliHLTCaloDigitMaker;
41class AliHLTCaloDigitContainerDataStruct;
42
43/**
44 * @class AliHLTEMCALDigitMakerComponent
45 *
46 * Creates the digit used for the clusterizer. Digits are equivalent to the ones in
47 * offline reconstruction
48 *
49 * <h2>General properties:</h2>
50 *
51 * Component ID: \b PhosDigitMaker <br>
52 * Library: \b libAliHLTEMCAL.so <br>
53 * Input Data Types: @ref AliHLTEMCALDefinitions::fkgChannelDataType<br>
54 * Output Data Types: @ref AliHLTEMCALDefinitions::fgkDigitDataType<br>
55 *
56 * <h2>Mandatory arguments:</h2>
57 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
58 * \li No mandatory arguments for component <br>
59 *
60 * <h2>Optional arguments:</h2>
61 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
62 * \li -lowgainfactor <i> value </i> <br>
63 * sets a global low gain factor
64 * \li -highgainfactor <i> value </i> <br>
65 * sets a global high gain factor
66 * \li -reverseorder <br>
67 * set if one expects the low gain channels to come before the high gain ones
68 *
69 * <h2>Configuration:</h2>
70 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
71 * \li No configuration arguments
72 *
73 * <h2>Default CDB entries:</h2>
74 * \li No CDB entry yet, will come.
75 *
76 * <h2>Performance:</h2>
77 * Pretty good
78 *
79 * <h2>Memory consumption:</h2>
80 * Pretty low
81 *
82 * <h2>Output size:</h2>
83 * Depends on the event...
84 *
85 * More detailed description. (Soon)
86 *
87 * @ingroup alihlt_emcal
88 */
89
dc3d3428 90//class AliHLTEMCALDigitMakerComponent : public AliHLTCaloProcessor, public AliHLTCaloConstantsHandler
91class AliHLTEMCALDigitMakerComponent : public AliHLTCaloProcessor
ca071d0a 92{
93public:
94
95 /** Constructor */
96 AliHLTEMCALDigitMakerComponent();
97
98 /** Destructor */
99 virtual ~AliHLTEMCALDigitMakerComponent();
100
ca071d0a 101 /** interface function, see @ref AliHLTComponent for description */
102 const char* GetComponentID();
103
104 /** interface function, see @ref AliHLTComponent for description */
105 void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
106
107 /** interface function, see @ref AliHLTComponent for description */
108 AliHLTComponentDataType GetOutputDataType();
109
110 /** interface function, see @ref AliHLTComponent for description */
111 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
112
5d5d4fde 113 /// inherited from AliHLTComponent, scan one argument and
114 /// its parameters
115 // int ScanConfigurationArgument(int argc, const char** argv);
116
117
ca071d0a 118 /** interface function, see @ref AliHLTComponent for description */
119 int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
120 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
121 std::vector<AliHLTComponentBlockData>& outputBlocks);
122
123 /** interface function, see @ref AliHLTComponent for description */
124 AliHLTComponent* Spawn();
125
126protected:
127
128 /** interface function, see @ref AliHLTComponent for description */
129 virtual int DoInit(int argc, const char** argv);
130
131 using AliHLTCaloProcessor::DoEvent;
132
133 /** interface function, see @ref AliHLTComponent for description */
134 virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTEMCALModuleProcessor
135
136// virtual int DoInit(int, const char**) {;}
c22f5996 137 virtual int DoDeinit(){return 0;}
f05c2d17 138
139 /** Get bad channel map from CDB */
140 virtual int GetBCMFromCDB();
ca071d0a 141
f05c2d17 142 /** Get the ADC <-> Energy (GeV) gain factors */
143 virtual int GetGainsFromCDB();
144
7b3a0a0e 145
ca071d0a 146private:
147
a6f9f2c0 148 /** Copy constructor, prohibited */
149 AliHLTEMCALDigitMakerComponent(const AliHLTEMCALDigitMakerComponent &);
150
151 /** Assignment operator, prohibited */
152 AliHLTEMCALDigitMakerComponent & operator = (const AliHLTEMCALDigitMakerComponent);
153
ca071d0a 154 /** Pointer to the digit maker itself */
155 AliHLTCaloDigitMaker *fDigitMakerPtr; //! transient
156
157 /** The output of the component, digits in a container */
158 AliHLTCaloDigitContainerDataStruct *fDigitContainerPtr; //! transient
159
7b3a0a0e 160 /** Pedestal data (contains BCM) */
161 AliCaloCalibPedestal *fPedestalData;
162
163 /** Calib data (contains gain factors) */
164 AliEMCALCalibData *fCalibData;
165
166 /** Is the bad map initialised? */
167 Bool_t fBCMInitialised; //! transient
168
169 /** Are the gains initialised? */
170 Bool_t fGainsInitialised; //! transient
171
8daca632 172 ClassDef(AliHLTEMCALDigitMakerComponent, 1);
173
ca071d0a 174};
175#endif
176