]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/EMCAL/AliHLTEMCALDigitMakerComponent.h
- small bug fixes to fix problem with global coordinates
[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"
34
35
36class AliHLTCaloDigitMaker;
37class AliHLTCaloDigitContainerDataStruct;
38
39/**
40 * @class AliHLTEMCALDigitMakerComponent
41 *
42 * Creates the digit used for the clusterizer. Digits are equivalent to the ones in
43 * offline reconstruction
44 *
45 * <h2>General properties:</h2>
46 *
47 * Component ID: \b PhosDigitMaker <br>
48 * Library: \b libAliHLTEMCAL.so <br>
49 * Input Data Types: @ref AliHLTEMCALDefinitions::fkgChannelDataType<br>
50 * Output Data Types: @ref AliHLTEMCALDefinitions::fgkDigitDataType<br>
51 *
52 * <h2>Mandatory arguments:</h2>
53 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
54 * \li No mandatory arguments for component <br>
55 *
56 * <h2>Optional arguments:</h2>
57 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
58 * \li -lowgainfactor <i> value </i> <br>
59 * sets a global low gain factor
60 * \li -highgainfactor <i> value </i> <br>
61 * sets a global high gain factor
62 * \li -reverseorder <br>
63 * set if one expects the low gain channels to come before the high gain ones
64 *
65 * <h2>Configuration:</h2>
66 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
67 * \li No configuration arguments
68 *
69 * <h2>Default CDB entries:</h2>
70 * \li No CDB entry yet, will come.
71 *
72 * <h2>Performance:</h2>
73 * Pretty good
74 *
75 * <h2>Memory consumption:</h2>
76 * Pretty low
77 *
78 * <h2>Output size:</h2>
79 * Depends on the event...
80 *
81 * More detailed description. (Soon)
82 *
83 * @ingroup alihlt_emcal
84 */
85
86class AliHLTEMCALDigitMakerComponent : public AliHLTCaloProcessor
87{
88public:
89
90 /** Constructor */
91 AliHLTEMCALDigitMakerComponent();
92
93 /** Destructor */
94 virtual ~AliHLTEMCALDigitMakerComponent();
95
96 /** Copy constructor */
97 AliHLTEMCALDigitMakerComponent(const AliHLTEMCALDigitMakerComponent &) :
98 AliHLTCaloProcessor(),
99 fDigitMakerPtr(0),
100 fDigitContainerPtr(0)
101 {
102 //Copy constructor not implemented
103 }
104
105 /** Assignment */
106 AliHLTEMCALDigitMakerComponent & operator = (const AliHLTEMCALDigitMakerComponent)
107 {
108 //Assignment
109 return *this;
110 }
111
112 /** interface function, see @ref AliHLTComponent for description */
113 const char* GetComponentID();
114
115 /** interface function, see @ref AliHLTComponent for description */
116 void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
117
118 /** interface function, see @ref AliHLTComponent for description */
119 AliHLTComponentDataType GetOutputDataType();
120
121 /** interface function, see @ref AliHLTComponent for description */
122 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
123
124 /** interface function, see @ref AliHLTComponent for description */
125 int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
126 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
127 std::vector<AliHLTComponentBlockData>& outputBlocks);
128
129 /** interface function, see @ref AliHLTComponent for description */
130 AliHLTComponent* Spawn();
131
132protected:
133
134 /** interface function, see @ref AliHLTComponent for description */
135 virtual int DoInit(int argc, const char** argv);
136
137 using AliHLTCaloProcessor::DoEvent;
138
139 /** interface function, see @ref AliHLTComponent for description */
140 virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTEMCALModuleProcessor
141
142// virtual int DoInit(int, const char**) {;}
143 virtual int DoDeinit(){;}
144
145private:
146
147 /** Pointer to the digit maker itself */
148 AliHLTCaloDigitMaker *fDigitMakerPtr; //! transient
149
150 /** The output of the component, digits in a container */
151 AliHLTCaloDigitContainerDataStruct *fDigitContainerPtr; //! transient
152
153};
154#endif
155