]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSDigitMakerComponent.h
New production macros (Yves)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitMakerComponent.h
CommitLineData
1b41ab20 1//-*- Mode: C++ -*-
2// $Id$
3
ab38011b 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 **************************************************************************/
209a4703 18#ifndef ALIHLTPHOSDIGITMAKERCOMPONENT_H
19#define ALIHLTPHOSDIGITMAKERCOMPONENT_H
20
2374af72 21/** @file AliHLTPHOSDigitMakerComponent.h
22 @author Oystein Djuvsland
23 @date
24 @brief A digit maker component for PHOS 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
209a4703 32
2374af72 33#include "AliHLTPHOSProcessor.h"
209a4703 34
35class AliHLTPHOSDigitMaker;
209a4703 36class AliHLTPHOSDigitContainerDataStruct;
37
2374af72 38/**
39 * @class AliHLTPHOSDigitMakerComponent
18af2efc 40 *
41 * Creates the digit used for the clusterizer. Digits are equivalent to the ones in
42 * offline reconstruction
43 *
44 * <h2>General properties:</h2>
45 *
46 * Component ID: \b PhosDigitMaker <br>
47 * Library: \b libAliHLTPHOS.so <br>
48 * Input Data Types: @ref AliHLTPHOSDefinitions::fkgChannelDataType<br>
49 * Output Data Types: @ref AliHLTPHOSDefinitions::fgkDigitDataType<br>
50 *
51 * <h2>Mandatory arguments:</h2>
52 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
53 * \li No mandatory arguments for component <br>
54 *
55 * <h2>Optional arguments:</h2>
56 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
57 * \li -lowgainfactor <i> value </i> <br>
58 * sets a global low gain factor
59 * \li -highgainfactor <i> value </i> <br>
60 * sets a global high gain factor
61 * \li -reverseorder <br>
62 * set if one expects the low gain channels to come before the high gain ones
63 *
64 * <h2>Configuration:</h2>
65 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
66 * \li No configuration arguments
67 *
68 * <h2>Default CDB entries:</h2>
69 * \li No CDB entry yet, will come.
70 *
71 * <h2>Performance:</h2>
72 * Pretty good
73 *
74 * <h2>Memory consumption:</h2>
75 * Pretty low
2374af72 76 *
18af2efc 77 * <h2>Output size:</h2>
78 * Depends on the event...
2374af72 79 *
18af2efc 80 * More detailed description. (Soon)
2374af72 81 *
82 * @ingroup alihlt_phos
18af2efc 83 */
209a4703 84
85class AliHLTPHOSDigitMakerComponent : public AliHLTPHOSProcessor
86{
87public:
2374af72 88
89 /** Constructor */
209a4703 90 AliHLTPHOSDigitMakerComponent();
2374af72 91
25b7f84c 92 /** Destructor */
ab38011b 93 virtual ~AliHLTPHOSDigitMakerComponent();
209a4703 94
25b7f84c 95 /** Copy constructor */
96 AliHLTPHOSDigitMakerComponent(const AliHLTPHOSDigitMakerComponent &) :
97 AliHLTPHOSProcessor(),
98 fDigitMakerPtr(0),
99 fDigitContainerPtr(0)
100 {
101 //Copy constructor not implemented
102 }
103
104 /** Assignment */
105 AliHLTPHOSDigitMakerComponent & operator = (const AliHLTPHOSDigitMakerComponent)
106 {
107 //Assignment
108 return *this;
109 }
110
2374af72 111 /** interface function, see @ref AliHLTComponent for description */
209a4703 112 const char* GetComponentID();
113
2374af72 114 /** interface function, see @ref AliHLTComponent for description */
209a4703 115 void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
116
2374af72 117 /** interface function, see @ref AliHLTComponent for description */
209a4703 118 AliHLTComponentDataType GetOutputDataType();
119
2374af72 120 /** interface function, see @ref AliHLTComponent for description */
209a4703 121 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
122
2374af72 123 /** interface function, see @ref AliHLTComponent for description */
ab38011b 124 int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
125 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
126 std::vector<AliHLTComponentBlockData>& outputBlocks);
209a4703 127
2374af72 128 /** interface function, see @ref AliHLTComponent for description */
209a4703 129 AliHLTComponent* Spawn();
130
131protected:
2374af72 132
133 /** interface function, see @ref AliHLTComponent for description */
209a4703 134 int DoInit(int argc, const char** argv);
2374af72 135
136 using AliHLTPHOSProcessor::DoEvent;
137
138 /** interface function, see @ref AliHLTComponent for description */
209a4703 139 virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
140
141private:
209a4703 142
2374af72 143 /** Pointer to the digit maker it self */
144 AliHLTPHOSDigitMaker *fDigitMakerPtr; //! transient
145
146 /** The output of the component, digits in a container */
147 AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr; //! transient
148
149 /** Event count */
af6a2273 150 // UInt_t fEvtCnt;
2374af72 151
209a4703 152 static const AliHLTComponentDataType fgkInputDataTypes[]; //HLT input data type
153
154};
155#endif
156