]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSClusterizerComponent.h
- small changes to the PHOS clusterizer component
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
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
20 #ifndef ALIHLTPHOSCLUSTERIZERCOMPONENT_H
21 #define ALIHLTPHOSCLUSTERIZERCOMPONENT_H
22
23
24
25 /**
26  * Clusterizer component for PHOS HLT
27  *
28  * @file   AliHLTPHOSClusterizerComponent.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
40 #include "AliHLTPHOSProcessor.h"
41 #include <AliHLTCaloClusterizerComponent.h>
42
43 class AliHLTPHOSClusterizer;
44 class AliHLTPHOSRcuCellEnergyDataStruct;
45 class AliHLTPHOSRecPointDataStruct;
46 class AliHLTPHOSRecPointContainerStruct;
47 class AliHLTPHOSRecPointListDataStruct;
48 class AliHLTPHOSDigitContainerDataStruct;
49
50 /**
51  * @class AliHLTPHOSClusterizerComponent
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 AliHLTPHOSClusterizerComponent
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
109 class AliHLTPHOSClusterizerComponent: public AliHLTCaloClusterizerComponent
110 {
111  public:
112
113   /** Constructor */
114   AliHLTPHOSClusterizerComponent();
115
116   /** Destructor */
117   virtual ~AliHLTPHOSClusterizerComponent();
118
119   /** Copy constructor */  
120   AliHLTPHOSClusterizerComponent(const AliHLTPHOSClusterizerComponent &) : 
121     AliHLTCaloClusterizerComponent()
122   {
123     //Copy constructor not implemented
124   }
125   
126   /** Assignment */
127   AliHLTPHOSClusterizerComponent & operator = (const AliHLTPHOSClusterizerComponent)
128   {
129     //Assignment
130     return *this; 
131   }
132
133   /** interface function, see @ref AliHLTComponent for description */
134   const char* GetComponentID();
135
136   /** interface function, see @ref AliHLTComponent for description */
137   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
138
139   /** interface function, see @ref AliHLTComponent for description */
140   AliHLTComponent* Spawn();
141   
142   
143 };
144
145 #endif