5 /**************************************************************************
6 * This file is property of and copyright by the ALICE HLT Project *
7 * All rights reserved. *
9 * Primary Authors: Oystein Djuvsland *
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 **************************************************************************/
20 #ifndef ALIHLTEMCALCLUSTERIZERCOMPONENT_H
21 #define ALIHLTEMCALCLUSTERIZERCOMPONENT_H
26 * Clusterizer component for EMCAL HLT
28 * @file AliHLTEMCALClusterizerComponent.h
29 * @author Oystein Djuvsland
31 * @brief A clusterizer component for EMCAL HLT
34 // see below for class documentation
36 // refer to README to build package
38 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
40 #include "AliHLTCaloClusterizerComponent.h"
44 // class AliHLTEMCALClusterizer;
45 // class AliHLTEMCALRcuCellEnergyDataStruct;
46 // class AliHLTEMCALRecPointDataStruct;
47 // class AliHLTEMCALRecPointContainerStruct;
48 // class AliHLTEMCALRecPointListDataStruct;
49 // class AliHLTEMCALDigitContainerDataStruct;
52 * @class AliHLTEMCALClusterizerComponent
54 * Class for running clusterization for EMCAL in HLT. It takes digits as input and
55 * gives reconstruction points as output.
57 * The component has the following component arguments:
58 * -clusterthreshold The energy threshold for starting a new rec point
59 * -energythreshold The energy threshold for including a digit in a
61 * @ingroup alihlt_phos
65 * @class AliHLTEMCALClusterizerComponent
67 * Class for running clusterization for EMCAL in HLT.
69 * <h2>General properties:</h2>
71 * Component ID: \b PhosClusterizer <br>
72 * Library: \b libAliHLTEMCAL.so <br>
73 * Input Data Types: @ref AliHLTEMCALDefinitions::fgkDigitDataType<br>
74 * Output Data Types: @ref AliHLTEMCALDefinitions::fgkRecPointDataType<br>
76 * <h2>Mandatory arguments:</h2>
77 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
78 * \li No mandatory arguments for component <br>
80 * <h2>Optional arguments:</h2>
81 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
82 * \li -digitthreshold <i> value </i> <br>
83 * threshold for a digit to be added to a rec point in GeV (default value: 0.03)
84 * \li -recpointthreshold <i> value </i> <br>
85 * threshold for starting a new rec point (default value: 0.2)
87 * if we want to do clusterisation on the partition level (not available...) (defaul value: false)
89 * <h2>Configuration:</h2>
90 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
91 * \li No configuration arguments
93 * <h2>Default CDB entries:</h2>
94 * \li No CDB entry yet, will come.
96 * <h2>Performance:</h2>
97 * Pretty good (~ 3 kHz), depends on amount of data...
99 * <h2>Memory consumption:</h2>
100 * Depends on the amount of data, but pretty godd
102 * <h2>Output size:</h2>
103 * Depends on the amount of data...
105 * More detailed description. (At some point...)
107 * @ingroup alihlt_phos
110 class AliHLTEMCALClusterizerComponent : public AliHLTCaloClusterizerComponent
111 //class AliHLTEMCALClusterizerComponent : public AliHLTEMCALProcessor
117 AliHLTEMCALClusterizerComponent();
120 virtual ~AliHLTEMCALClusterizerComponent();
122 /** interface function, see @ref AliHLTComponent for description */
123 const char* GetComponentID();
125 /** interface function, see @ref AliHLTComponent for description */
126 void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
128 /** interface function, see @ref AliHLTComponent for description */
129 AliHLTComponentDataType GetOutputDataType();
131 /** interface function, see @ref AliHLTComponent for description */
132 void GetOutputDataSize ( unsigned long& constBase, double& inputMultiplier );
134 /** interface function, see @ref AliHLTComponent for description */
135 AliHLTComponent* Spawn();
139 /** interface function, see @ref AliHLTComponent for description */
140 int DoInit ( int argc, const char** argv );
142 /** interface function, see @ref AliHLTComponent for description */
143 virtual int DoDeinit();
145 virtual int InitialiseGeometry();
149 /** Copy constructor, not implemented */
150 AliHLTEMCALClusterizerComponent(const AliHLTEMCALClusterizerComponent &);
152 /** Assignment operator, not implemented */
153 AliHLTEMCALClusterizerComponent & operator = (const AliHLTEMCALClusterizerComponent);