]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/CALO/AliHLTCaloClusterizerComponent.h
- fixing bug in cluster analyser
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloClusterizerComponent.h
CommitLineData
4d42193f 1//-*- Mode: C++ -*-
2// $Id: AliHLTCaloClusterizerComponent.h 36636 2009-11-11 02:16:41Z odjuvsla $
3
4
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 **************************************************************************/
19
ad44d760 20#ifndef ALIHLTCALOCLUSTERIZERCOMPONENT_H
21#define ALIHLTCALOCLUSTERIZERCOMPONENT_H
4d42193f 22
23
24
25/**
26 * Clusterizer component for PHOS HLT
27 *
28 * @file AliHLTCaloClusterizerComponent.h
29 * @author Oystein Djuvsland
30 * @date
31 * @brief A clusterizer component for PHOS HLT
32*/
33
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
39
ad44d760 40#include "AliHLTCaloConstantsHandler.h"
41#include "AliHLTCaloProcessor.h"
42
4d42193f 43class AliHLTCaloDigitDataStruct;
ad44d760 44class AliHLTCaloDigitContainerDataStruct;
4d42193f 45class AliHLTCaloClusterizer;
7c80a370 46class AliHLTCaloClusterAnalyser;
4d42193f 47class AliHLTCaloRecPointDataStruct;
73d6f579 48class AliHLTPHOSHistoProdClusterEnergy;
4d42193f 49
50/**
51 * @class AliHLTCaloClusterizerComponent
52 *
53 * Class for running clusterization for PHOS in HLT. It takes digits as input and
54 * gives reconstruction points as output.
55 *
56 * The component has the following component arguments:
57 * -clusterthreshold The energy threshold for starting a new rec point
58 * -energythreshold The energy threshold for including a digit in a
59 * rec point
60 * @ingroup alihlt_phos
61 */
62
63/**
64 * @class AliHLTCaloClusterizerComponent
65 *
66 * Class for running clusterization for PHOS in HLT.
67 *
68 * <h2>General properties:</h2>
69 *
70 * Component ID: \b PhosClusterizer <br>
71 * Library: \b libAliHLTPHOS.so <br>
72 * Input Data Types: @ref AliHLTPHOSDefinitions::fgkDigitDataType<br>
73 * Output Data Types: @ref AliHLTPHOSDefinitions::fgkRecPointDataType<br>
74 *
75 * <h2>Mandatory arguments:</h2>
76 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
77 * \li No mandatory arguments for component <br>
78 *
79 * <h2>Optional arguments:</h2>
80 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
81 * \li -digitthreshold <i> value </i> <br>
82 * threshold for a digit to be added to a rec point in GeV (default value: 0.03)
83 * \li -recpointthreshold <i> value </i> <br>
84 * threshold for starting a new rec point (default value: 0.2)
85 * \li -partitionmode
86 * if we want to do clusterisation on the partition level (not available...) (defaul value: false)
87 *
88 * <h2>Configuration:</h2>
89 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
90 * \li No configuration arguments
91 *
92 * <h2>Default CDB entries:</h2>
93 * \li No CDB entry yet, will come.
94 *
95 * <h2>Performance:</h2>
96 * Pretty good (~ 3 kHz), depends on amount of data...
97 *
98 * <h2>Memory consumption:</h2>
99 * Depends on the amount of data, but pretty godd
100 *
101 * <h2>Output size:</h2>
102 * Depends on the amount of data...
103 *
104 * More detailed description. (At some point...)
105 *
106 * @ingroup alihlt_phos
107 */
108
ad44d760 109//class AliHLTCaloClusterizerComponent : public AliHLTCaloConstantsHandler, public AliHLTCaloProcessor
110class AliHLTCaloClusterizerComponent : public AliHLTCaloProcessor, public AliHLTCaloConstantsHandler
4d42193f 111 {
112 public:
113
114 /** Constructor */
ad44d760 115 AliHLTCaloClusterizerComponent(TString det);
4d42193f 116
117 /** Destructor */
118 virtual ~AliHLTCaloClusterizerComponent();
119
ad44d760 120// /** interface function, see @ref AliHLTComponent for description */
121// void GetInputDataTypes ( std::vector<AliHLTComponentDataType>& list );
122
123// /** interface function, see @ref AliHLTComponent for description */
124// AliHLTComponentDataType GetOutputDataType();
125
126// /** interface function, see @ref AliHLTComponent for description */
127// void GetOutputDataSize ( unsigned long& constBase, double& inputMultiplier );
4d42193f 128
129 /** interface function, see @ref AliHLTComponent for description */
4d42193f 130
ad44d760 131 using AliHLTCaloProcessor::DoEvent;
4d42193f 132
4d42193f 133 int DoEvent ( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
134 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
135 std::vector<AliHLTComponentBlockData>& outputBlocks );
ad44d760 136
137 /**
138 * Compare two digits, used during the sorting
139 */
140 static Int_t CompareDigits(const void *dig0, const void *dig);
4d42193f 141
142 protected:
143
ad44d760 144 /** interface function, see @ref AliHLTComponent for
145 description */
4d42193f 146 int DoInit ( int argc, const char** argv );
147
148 /** interface function, see @ref AliHLTComponent for description */
149 int Deinit();
150
151 /** interface function, see @ref AliHLTComponent for description */
152 int Reconfigure ( const char* cdbEntry, const char* chainId );
153
154 /** interface function, see @ref AliHLTComponent for description */
155 int ScanConfigurationArgument ( int argc, const char** argv );
7c80a370 156
157 /** The data origin */
158 char* fDataOrigin; //COMMENT
4d42193f 159
7c80a370 160 /** Pointer to the cluster analyser */
161 AliHLTCaloClusterAnalyser *fAnalyserPtr; //! transient
162
4d42193f 163 private:
164
ad44d760 165 /** Array of pointers to our digits */
166 AliHLTCaloDigitDataStruct **fDigitsPointerArray; //! transient
7c80a370 167
168 /** Array of pointers to our digits */
169 AliHLTCaloDigitDataStruct *fOutputDigitsArray; //! transient
170
4d42193f 171 /** Pointer to the clusterizer it self */
172 AliHLTCaloClusterizer* fClusterizerPtr; //! transient
173
174 /** Number of digits in event */
175 Int_t fDigitCount; //COMMENT
7c80a370 176
ad44d760 177 /** Default constructor, not implemented */
178 AliHLTCaloClusterizerComponent(); //COMMENT
179
f92dcf21 180 /** Copy constructor not implemented */
181 AliHLTCaloClusterizerComponent ( const AliHLTCaloClusterizerComponent &); // not implemented
182
183 /** Assignment */
184 AliHLTCaloClusterizerComponent & operator = ( const AliHLTCaloClusterizerComponent &); // not implemented
73d6f579 185
4d42193f 186 };
187
188#endif