]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSClusterizerComponent.h
Coding conventions and removal of obsolete files
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSClusterizerComponent.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 ALIHLTPHOSCLUSTERIZERCOMPONENT_H
18 #define ALIHLTPHOSCLUSTERIZERCOMPONENT_H
19
20
21
22 /**
23  * Clusterizer component for PHOS HLT
24  *
25  * @file   AliHLTPHOSClusterizerComponent.h
26  * @author Oystein Djuvsland
27  * @date   
28  * @brief  A clusterizer 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 AliHLTPHOSClusterizer;
40
41 class AliHLTPHOSRcuCellEnergyDataStruct;
42 //class AliHLTPHOSClusterDataStruct;
43 class AliHLTPHOSRecPointDataStruct;
44 class AliHLTPHOSRecPointContainerStruct;
45 class AliHLTPHOSRecPointListDataStruct;
46 class AliHLTPHOSDigitContainerDataStruct;
47
48 /**
49  * @class AliHLTPHOSClusterizerComponent
50  *
51  * Class for running clusterization for PHOS in HLT. It takes digits as input and
52  * gives reconstruction points as output. 
53  * 
54  * The component has the following component arguments:
55  * -clusterthreshold       The energy threshold for starting a new rec point
56  * -energythreshold        The energy threshold for including a digit in a
57  *                         rec point
58  * @ingroup alihlt_phos
59  */
60 class AliHLTPHOSClusterizerComponent: public AliHLTPHOSProcessor
61 {
62  public:
63
64   /** Constructor */
65   AliHLTPHOSClusterizerComponent();
66
67   /** Destructor */
68   virtual ~AliHLTPHOSClusterizerComponent();
69
70   /** interface function, see @ref AliHLTComponent for description */
71   const char* GetComponentID();
72
73   /** interface function, see @ref AliHLTComponent for description */
74   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
75
76   /** interface function, see @ref AliHLTComponent for description */
77   AliHLTComponentDataType GetOutputDataType();
78
79   /** interface function, see @ref AliHLTComponent for description */
80   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
81
82   /** interface function, see @ref AliHLTComponent for description */
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
98  private:
99
100   /** All digits in the event */
101   AliHLTPHOSDigitContainerDataStruct *fAllDigitsPtr;            //! transient
102
103   /** Pointer to the clusterizer it self */
104   AliHLTPHOSClusterizer* fClusterizerPtr;                       //! transient
105
106   using AliHLTPHOSProcessor::DoEvent;
107
108   /** Pointer to the output of the component */
109   AliHLTPHOSRecPointContainerStruct* fOutPtr;                   //! transient
110
111   /** Pointer to rec points used in clusterization */
112   AliHLTPHOSRecPointDataStruct* fRecPointStructArrayPtr;        //! transient
113
114   /** Number of digits in event */
115   Int_t fDigitCount;              
116
117   /** If one should consider crazyness or not */                              
118   Bool_t fNoCrazyness;                                          
119
120   /** interface function, see @ref AliHLTComponent for description */
121   static const AliHLTComponentDataType fgkInputDataTypes[];
122 };
123
124 #endif