]>
Commit | Line | Data |
---|---|---|
1b41ab20 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | ||
fa0a9bec | 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 | ||
20 | #ifndef ALIHLTPHOSCLUSTERANALYSERCOMPONENT_H | |
21 | #define ALIHLTPHOSCLUSTERANALYSERCOMPONENT_H | |
22 | ||
23 | ||
24 | ||
25 | /** | |
26 | * Cluster analyser component for PHOS HLT | |
27 | * | |
28 | * @file AliHLTPHOSClusterAnalyserComponent.h | |
29 | * @author Oystein Djuvsland | |
30 | * @date | |
31 | * @brief A cluster analyser 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 | ||
40 | #include "AliHLTPHOSProcessor.h" | |
41 | ||
42 | class AliHLTPHOSClusterAnalyser; | |
46d8500c | 43 | class AliPHOSGeoUtils; |
fa0a9bec | 44 | /** |
45 | * @class AliHLTPHOSClusterAnalyserComponent | |
46 | * | |
47 | * Class for running cluster analysis for PHOS in HLT. It takes | |
48 | * reconstruction points as input, analyses them, and outputs the | |
49 | * rec points with updated information | |
50 | * | |
51 | * @ingroup alihlt_phos | |
52 | */ | |
53 | class AliHLTPHOSClusterAnalyserComponent : public AliHLTPHOSProcessor | |
54 | { | |
55 | public: | |
56 | ||
57 | /** Constructor */ | |
58 | AliHLTPHOSClusterAnalyserComponent(); | |
59 | ||
60 | /** Destructor */ | |
61 | virtual ~AliHLTPHOSClusterAnalyserComponent(); | |
62 | ||
25b7f84c | 63 | /** Copy constructor */ |
b444d727 | 64 | /// AliHLTPHOSClusterAnalyserComponent(const AliHLTPHOSClusterAnalyserComponent &); |
25b7f84c | 65 | |
66 | /** Assignment */ | |
b444d727 | 67 | //AliHLTPHOSClusterAnalyserComponent & operator = (const AliHLTPHOSClusterAnalyserComponent); |
25b7f84c | 68 | |
fa0a9bec | 69 | /** interface function, see @ref AliHLTComponent for description */ |
70 | const char* GetComponentID(); | |
71 | ||
72 | /** interface function, see @ref AliHLTComponent for description */ | |
73 | void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list); | |
74 | ||
75 | /** interface function, see @ref AliHLTComponent for description */ | |
76 | AliHLTComponentDataType GetOutputDataType(); | |
77 | ||
78 | /** interface function, see @ref AliHLTComponent for description */ | |
79 | void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); | |
80 | ||
81 | /** interface function, see @ref AliHLTComponent for description */ | |
b444d727 | 82 | using AliHLTPHOSProcessor::DoEvent; |
fa0a9bec | 83 | int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, |
84 | AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size, | |
85 | std::vector<AliHLTComponentBlockData>& outputBlocks); | |
86 | ||
87 | /** interface function, see @ref AliHLTComponent for description */ | |
88 | AliHLTComponent* Spawn(); | |
89 | ||
90 | protected: | |
91 | ||
92 | /** interface function, see @ref AliHLTComponent for description */ | |
93 | int DoInit(int argc, const char** argv); | |
94 | ||
95 | /** interface function, see @ref AliHLTComponent for description */ | |
96 | int Deinit(); | |
97 | ||
46d8500c | 98 | /** interface function, see @ref AliHLTComponent for description */ |
99 | int Reconfigure(const char* cdbEntry, const char* chainId); | |
100 | ||
101 | /** interface function, see @ref AliHLTComponent for description */ | |
102 | int ScanConfigurationArgument(int argc, const char** argv); | |
103 | ||
104 | /** Get the PHOS geometry from OCDB */ | |
105 | int GetGeometryFromCDB(); | |
106 | ||
fa0a9bec | 107 | private: |
b444d727 | 108 | /** Copy constructor */ |
32f4f8c9 | 109 | AliHLTPHOSClusterAnalyserComponent(const AliHLTPHOSClusterAnalyserComponent &); |
110 | /** Assignment */ | |
111 | AliHLTPHOSClusterAnalyserComponent & operator = (const AliHLTPHOSClusterAnalyserComponent); | |
b444d727 | 112 | |
32f4f8c9 | 113 | /** The cluster analyser */ |
114 | AliHLTPHOSClusterAnalyser* fClusterAnalyserPtr; //COMMENT | |
b444d727 | 115 | |
32f4f8c9 | 116 | /** Do we do deconvolution? */ |
117 | Bool_t fDoDeconvolution; //COMMENT | |
118 | ||
119 | /** Do we calculate moments? */ | |
120 | Bool_t fDoCalculateMoments; //COMMENT | |
121 | ||
122 | /** The PHOS geometry */ | |
123 | AliPHOSGeoUtils *fPHOSGeometry; //!transient | |
fa0a9bec | 124 | }; |
125 | ||
126 | #endif |