]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSClusterAnalyserComponent.h
Effective C++
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterAnalyserComponent.h
1
2 /**************************************************************************
3  * This file is property of and copyright by the ALICE HLT Project        * 
4  * All rights reserved.                                                   *
5  *                                                                        *
6  * Primary Authors: Oystein Djuvsland                                     *
7  *                                                                        *
8  * Permission to use, copy, modify and distribute this software and its   *
9  * documentation strictly for non-commercial purposes is hereby granted   *
10  * without fee, provided that the above copyright notice appears in all   *
11  * copies and that both the copyright notice and this permission notice   *
12  * appear in the supporting documentation. The authors make no claims     *
13  * about the suitability of this software for any purpose. It is          * 
14  * provided "as is" without express or implied warranty.                  *
15  **************************************************************************/
16
17 #ifndef ALIHLTPHOSCLUSTERANALYSERCOMPONENT_H
18 #define ALIHLTPHOSCLUSTERANALYSERCOMPONENT_H
19
20
21
22 /**
23  * Cluster analyser component for PHOS HLT
24  *
25  * @file   AliHLTPHOSClusterAnalyserComponent.h
26  * @author Oystein Djuvsland
27  * @date   
28  * @brief  A cluster analyser component for PHOS HLT
29 */
30
31 // see below for class documentation
32 // or
33 // refer to README to build package
34 // or
35 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
36
37 #include "AliHLTPHOSProcessor.h"
38
39 class AliHLTPHOSClusterAnalyser;
40
41 /**
42  * @class AliHLTPHOSClusterAnalyserComponent
43  *
44  * Class for running cluster analysis for PHOS in HLT. It takes
45  * reconstruction points as input, analyses them, and outputs the
46  * rec points with updated information
47  *
48  * @ingroup alihlt_phos
49  */
50 class AliHLTPHOSClusterAnalyserComponent : public AliHLTPHOSProcessor
51 {
52  public:
53
54   /** Constructor */
55   AliHLTPHOSClusterAnalyserComponent();
56
57   /** Destructor */
58   virtual ~AliHLTPHOSClusterAnalyserComponent();
59
60   /** Copy constructor */
61   /// AliHLTPHOSClusterAnalyserComponent(const AliHLTPHOSClusterAnalyserComponent &);
62   
63   /** Assignment */
64   //AliHLTPHOSClusterAnalyserComponent & operator = (const AliHLTPHOSClusterAnalyserComponent);
65   
66   /** interface function, see @ref AliHLTComponent for description */
67   const char* GetComponentID();
68
69   /** interface function, see @ref AliHLTComponent for description */
70   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
71
72   /** interface function, see @ref AliHLTComponent for description */
73   AliHLTComponentDataType GetOutputDataType();
74
75   /** interface function, see @ref AliHLTComponent for description */
76   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
77
78   /** interface function, see @ref AliHLTComponent for description */
79   using AliHLTPHOSProcessor::DoEvent;
80   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
81                 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
82                 std::vector<AliHLTComponentBlockData>& outputBlocks);
83
84   /** interface function, see @ref AliHLTComponent for description */
85   AliHLTComponent* Spawn();
86   
87 protected:
88
89   /** interface function, see @ref AliHLTComponent for description */
90   int DoInit(int argc, const char** argv);
91
92   /** interface function, see @ref AliHLTComponent for description */
93   int Deinit();
94
95 private:
96   /** Copy constructor */
97  AliHLTPHOSClusterAnalyserComponent(const AliHLTPHOSClusterAnalyserComponent &);
98  /** Assignment */
99  AliHLTPHOSClusterAnalyserComponent & operator = (const AliHLTPHOSClusterAnalyserComponent);
100  
101  AliHLTPHOSClusterAnalyser* fClusterAnalyserPtr;
102  
103  Bool_t fDoDeconvolution;
104  Bool_t fDoCalculateMoments;
105  
106  static const AliHLTComponentDataType fgkInputDataTypes[];
107    
108 };
109
110 #endif