]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSClusterizerComponent.h
Fixing comments
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizerComponent.h
CommitLineData
1b41ab20 1//-*- Mode: C++ -*-
2// $Id$
3
91b95d47 4
2374af72 5/**************************************************************************
6 * This file is property of and copyright by the ALICE HLT Project *
7 * All rights reserved. *
8 * *
9 * Primary Authors: Oystein Djuvsland *
10 * *
11 * Permission to use, copy, modify and distribute this software and its *
12 * documentation strictly for non-commercial purposes is hereby granted *
13 * without fee, provided that the above copyright notice appears in all *
14 * copies and that both the copyright notice and this permission notice *
15 * appear in the supporting documentation. The authors make no claims *
16 * about the suitability of this software for any purpose. It is *
17 * provided "as is" without express or implied warranty. *
18 **************************************************************************/
91b95d47 19
20#ifndef ALIHLTPHOSCLUSTERIZERCOMPONENT_H
21#define ALIHLTPHOSCLUSTERIZERCOMPONENT_H
aac22523 22
aac22523 23
91b95d47 24
2374af72 25/**
26 * Clusterizer component for PHOS HLT
27 *
28 * @file AliHLTPHOSClusterizerComponent.h
29 * @author Oystein Djuvsland
30 * @date
31 * @brief A clusterizer component for PHOS HLT
32*/
9c9d15d6 33
2374af72 34// see below for class documentation
35// or
36// refer to README to build package
37// or
38// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
d2b84453 39
2374af72 40#include "AliHLTPHOSProcessor.h"
d2b84453 41
2374af72 42class AliHLTPHOSClusterizer;
9cc0deb1 43class AliHLTPHOSRcuCellEnergyDataStruct;
9cc0deb1 44class AliHLTPHOSRecPointDataStruct;
45class AliHLTPHOSRecPointContainerStruct;
46class AliHLTPHOSRecPointListDataStruct;
47class AliHLTPHOSDigitContainerDataStruct;
aac22523 48
2374af72 49/**
50 * @class AliHLTPHOSClusterizerComponent
51 *
52 * Class for running clusterization for PHOS in HLT. It takes digits as input and
53 * gives reconstruction points as output.
54 *
55 * The component has the following component arguments:
56 * -clusterthreshold The energy threshold for starting a new rec point
57 * -energythreshold The energy threshold for including a digit in a
58 * rec point
59 * @ingroup alihlt_phos
60 */
87434909 61
62/**
63 * @class AliHLTPHOSClusterizerComponent
64 *
65 * Class for running clusterization for PHOS in HLT.
66 *
67 * <h2>General properties:</h2>
68 *
69 * Component ID: \b PhosClusterizer <br>
70 * Library: \b libAliHLTPHOS.so <br>
71 * Input Data Types: @ref AliHLTPHOSDefinitions::fgkDigitDataType<br>
72 * Output Data Types: @ref AliHLTPHOSDefinitions::fgkRecPointDataType<br>
73 *
74 * <h2>Mandatory arguments:</h2>
75 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
76 * \li No mandatory arguments for component <br>
77 *
78 * <h2>Optional arguments:</h2>
79 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
80 * \li -digitthreshold <i> value </i> <br>
81 * threshold for a digit to be added to a rec point in GeV (default value: 0.03)
82 * \li -recpointthreshold <i> value </i> <br>
83 * threshold for starting a new rec point (default value: 0.2)
84 * \li -partitionmode
85 * if we want to do clusterisation on the partition level (not available...) (defaul value: false)
86 *
87 * <h2>Configuration:</h2>
88 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
89 * \li No configuration arguments
90 *
91 * <h2>Default CDB entries:</h2>
92 * \li No CDB entry yet, will come.
93 *
94 * <h2>Performance:</h2>
95 * Pretty good (~ 3 kHz), depends on amount of data...
96 *
97 * <h2>Memory consumption:</h2>
98 * Depends on the amount of data, but pretty godd
99 *
100 * <h2>Output size:</h2>
101 * Depends on the amount of data...
102 *
103 * More detailed description. (At some point...)
104 *
105 * @ingroup alihlt_phos
106 */
107
9c9d15d6 108class AliHLTPHOSClusterizerComponent: public AliHLTPHOSProcessor
aac22523 109{
110 public:
111
2374af72 112 /** Constructor */
aac22523 113 AliHLTPHOSClusterizerComponent();
9c9d15d6 114
2374af72 115 /** Destructor */
116 virtual ~AliHLTPHOSClusterizerComponent();
9c9d15d6 117
25b7f84c 118 /** Copy constructor */
119 AliHLTPHOSClusterizerComponent(const AliHLTPHOSClusterizerComponent &) :
120 AliHLTPHOSProcessor(),
121 fAllDigitsPtr(0),
122 fClusterizerPtr(0),
f1bfc65f 123 // fRecPointStructArrayPtr(0),
25b7f84c 124 fDigitCount(0),
25b7f84c 125 fNoCrazyness(0)
126 {
127 //Copy constructor not implemented
128 }
129
130 /** Assignment */
131 AliHLTPHOSClusterizerComponent & operator = (const AliHLTPHOSClusterizerComponent)
132 {
133 //Assignment
134 return *this;
135 }
136
2374af72 137 /** interface function, see @ref AliHLTComponent for description */
aac22523 138 const char* GetComponentID();
2374af72 139
140 /** interface function, see @ref AliHLTComponent for description */
9cc0deb1 141 void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
aac22523 142
2374af72 143 /** interface function, see @ref AliHLTComponent for description */
aac22523 144 AliHLTComponentDataType GetOutputDataType();
145
2374af72 146 /** interface function, see @ref AliHLTComponent for description */
aac22523 147 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
148
2374af72 149 /** interface function, see @ref AliHLTComponent for description */
25b7f84c 150
b444d727 151 using AliHLTPHOSProcessor::DoEvent;
ab38011b 152 int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
153 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
154 std::vector<AliHLTComponentBlockData>& outputBlocks);
25b7f84c 155 // Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
2374af72 156 /** interface function, see @ref AliHLTComponent for description */
aac22523 157 AliHLTComponent* Spawn();
9cc0deb1 158
2374af72 159protected:
160
161 /** interface function, see @ref AliHLTComponent for description */
162 int DoInit(int argc, const char** argv);
163
164 /** interface function, see @ref AliHLTComponent for description */
165 int Deinit();
166
46d8500c 167 /** interface function, see @ref AliHLTComponent for description */
168 int Reconfigure(const char* cdbEntry, const char* chainId);
169
170 /** interface function, see @ref AliHLTComponent for description */
171 int ScanConfigurationArgument(int argc, const char** argv);
172
2374af72 173 private:
174
175 /** All digits in the event */
176 AliHLTPHOSDigitContainerDataStruct *fAllDigitsPtr; //! transient
aac22523 177
2374af72 178 /** Pointer to the clusterizer it self */
179 AliHLTPHOSClusterizer* fClusterizerPtr; //! transient
aac22523 180
f1bfc65f 181// /** Pointer to rec points used in clusterization */
182// AliHLTPHOSRecPointDataStruct* fRecPointStructArrayPtr; //! transient
2374af72 183
184 /** Number of digits in event */
b2faa1a0 185 Int_t fDigitCount; //COMMENT
25b7f84c 186
2374af72 187 /** If one should consider crazyness or not */
25b7f84c 188 Bool_t fNoCrazyness; //COMMENT
2374af72 189
aac22523 190};
191
192#endif