]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/CALO/AliHLTCaloClusterizerComponent.h
Bug fix: AliHLTTPCRawSpacePointContainer
[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
c1e4a18c 43class AliHLTCaloRecoParamHandler;
4d42193f 44class AliHLTCaloDigitDataStruct;
ad44d760 45class AliHLTCaloDigitContainerDataStruct;
4d42193f 46class AliHLTCaloClusterizer;
7c80a370 47class AliHLTCaloClusterAnalyser;
4d42193f 48class AliHLTCaloRecPointDataStruct;
73d6f579 49class AliHLTPHOSHistoProdClusterEnergy;
4d42193f 50
51/**
52 * @class AliHLTCaloClusterizerComponent
53 *
54 * Class for running clusterization for PHOS in HLT. It takes digits as input and
55 * gives reconstruction points as output.
56 *
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
60 * rec point
61 * @ingroup alihlt_phos
62 */
63
64/**
65 * @class AliHLTCaloClusterizerComponent
66 *
67 * Class for running clusterization for PHOS in HLT.
68 *
69 * <h2>General properties:</h2>
70 *
71 * Component ID: \b PhosClusterizer <br>
72 * Library: \b libAliHLTPHOS.so <br>
73 * Input Data Types: @ref AliHLTPHOSDefinitions::fgkDigitDataType<br>
74 * Output Data Types: @ref AliHLTPHOSDefinitions::fgkRecPointDataType<br>
75 *
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>
79 *
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)
86 * \li -partitionmode
87 * if we want to do clusterisation on the partition level (not available...) (defaul value: false)
88 *
89 * <h2>Configuration:</h2>
90 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
91 * \li No configuration arguments
92 *
93 * <h2>Default CDB entries:</h2>
94 * \li No CDB entry yet, will come.
95 *
96 * <h2>Performance:</h2>
97 * Pretty good (~ 3 kHz), depends on amount of data...
98 *
99 * <h2>Memory consumption:</h2>
100 * Depends on the amount of data, but pretty godd
101 *
102 * <h2>Output size:</h2>
103 * Depends on the amount of data...
104 *
105 * More detailed description. (At some point...)
106 *
107 * @ingroup alihlt_phos
108 */
109
ad44d760 110//class AliHLTCaloClusterizerComponent : public AliHLTCaloConstantsHandler, public AliHLTCaloProcessor
111class AliHLTCaloClusterizerComponent : public AliHLTCaloProcessor, public AliHLTCaloConstantsHandler
4d42193f 112 {
113 public:
114
115 /** Constructor */
ad44d760 116 AliHLTCaloClusterizerComponent(TString det);
4d42193f 117
118 /** Destructor */
119 virtual ~AliHLTCaloClusterizerComponent();
120
4d42193f 121 /** interface function, see @ref AliHLTComponent for description */
4d42193f 122
ad44d760 123 using AliHLTCaloProcessor::DoEvent;
4d42193f 124
4d42193f 125 int DoEvent ( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
126 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
127 std::vector<AliHLTComponentBlockData>& outputBlocks );
ad44d760 128
129 /**
130 * Compare two digits, used during the sorting
131 */
132 static Int_t CompareDigits(const void *dig0, const void *dig);
4d42193f 133
134 protected:
135
ad44d760 136 /** interface function, see @ref AliHLTComponent for
137 description */
427c373f 138 virtual int DoInit ( int argc, const char** argv );
4d42193f 139
140 /** interface function, see @ref AliHLTComponent for description */
427c373f 141 virtual int DoDeinit();
142
143 /** Initialise geometry objects */
144 virtual Int_t InitialiseGeometry() = 0;
4d42193f 145
146 /** interface function, see @ref AliHLTComponent for description */
147 int Reconfigure ( const char* cdbEntry, const char* chainId );
148
149 /** interface function, see @ref AliHLTComponent for description */
150 int ScanConfigurationArgument ( int argc, const char** argv );
7c80a370 151
152 /** The data origin */
153 char* fDataOrigin; //COMMENT
4d42193f 154
7c80a370 155 /** Pointer to the cluster analyser */
156 AliHLTCaloClusterAnalyser *fAnalyserPtr; //! transient
157
c1e4a18c 158 /** Pointer to reconstruction parameters handler */
159 AliHLTCaloRecoParamHandler *fRecoParamsPtr; //! transient
78943659 160
161 /** Pointer to the clusterizer it self */
162 AliHLTCaloClusterizer* fClusterizerPtr; //! transient
163
4d42193f 164 private:
165
ad44d760 166 /** Array of pointers to our digits */
167 AliHLTCaloDigitDataStruct **fDigitsPointerArray; //! transient
7c80a370 168
169 /** Array of pointers to our digits */
170 AliHLTCaloDigitDataStruct *fOutputDigitsArray; //! transient
171
4d42193f 172 /** Number of digits in event */
173 Int_t fDigitCount; //COMMENT
7c80a370 174
f92543f5 175 /** Copy digits to output? */
176 Bool_t fCopyDigitsToOuput; //COMMENT
177
178
ad44d760 179 /** Default constructor, not implemented */
180 AliHLTCaloClusterizerComponent(); //COMMENT
181
f92dcf21 182 /** Copy constructor not implemented */
183 AliHLTCaloClusterizerComponent ( const AliHLTCaloClusterizerComponent &); // not implemented
184
185 /** Assignment */
186 AliHLTCaloClusterizerComponent & operator = ( const AliHLTCaloClusterizerComponent &); // not implemented
73d6f579 187
c556a27e 188 ClassDef(AliHLTCaloClusterizerComponent, 0);
7b3a0a0e 189
4d42193f 190 };
191
192#endif