]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSDigitMakerComponent.h
- data member was shadowed (fTree)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitMakerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 /**************************************************************************
5  * This file is property of and copyright by the ALICE HLT Project        *
6  * All rights reserved.                                                   *
7  *                                                                        *
8  * Primary Authors: Oystein Djuvsland                                     *
9  *                                                                        *
10  * Permission to use, copy, modify and distribute this software and its   *
11  * documentation strictly for non-commercial purposes is hereby granted   *
12  * without fee, provided that the above copyright notice appears in all   *
13  * copies and that both the copyright notice and this permission notice   *
14  * appear in the supporting documentation. The authors make no claims     *
15  * about the suitability of this software for any purpose. It is          *
16  * provided "as is" without express or implied warranty.                  *
17  **************************************************************************/
18 #ifndef ALIHLTPHOSDIGITMAKERCOMPONENT_H
19 #define ALIHLTPHOSDIGITMAKERCOMPONENT_H
20
21 /** @file   AliHLTPHOSDigitMakerComponent.h
22     @author Oystein Djuvsland
23     @date   
24     @brief  A digit maker component for PHOS HLT
25 */
26
27 // see below for class documentation
28 // or
29 // refer to README to build package
30 // or
31 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
32
33 #include "AliHLTPHOSProcessor.h"
34
35 class AliHLTPHOSDigitMaker;
36 class AliHLTPHOSDigitContainerDataStruct;
37
38 /**
39  * @class AliHLTPHOSDigitMakerComponent
40  * 
41  * Creates the digit used for the clusterizer. Digits are equivalent to the ones in 
42  * offline reconstruction
43  *
44  * <h2>General properties:</h2>
45  *
46  * Component ID: \b PhosDigitMaker <br>
47  * Library: \b libAliHLTPHOS.so     <br>
48  * Input Data Types: @ref AliHLTPHOSDefinitions::fkgChannelDataType<br>
49  * Output Data Types: @ref AliHLTPHOSDefinitions::fgkDigitDataType<br>
50  *
51  * <h2>Mandatory arguments:</h2>
52  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
53  * \li No mandatory arguments for component                           <br>
54  *
55  * <h2>Optional arguments:</h2>
56  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
57  * \li -lowgainfactor      <i> value </i> <br>
58  *      sets a global low gain factor 
59  * \li -highgainfactor <i> value </i> <br>
60  *      sets a global high gain factor
61  * \li -reverseorder <br>
62  *      set if one expects the low gain channels to come before the high gain ones
63  *
64  * <h2>Configuration:</h2>
65  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
66  * \li No configuration arguments 
67  *
68  * <h2>Default CDB entries:</h2>
69  * \li No CDB entry yet, will come.
70  *
71  * <h2>Performance:</h2>
72  * Pretty good
73  *
74  * <h2>Memory consumption:</h2>
75  * Pretty low
76  *
77  * <h2>Output size:</h2>
78  * Depends on the event...
79  *
80  * More detailed description. (Soon)
81  *
82  * @ingroup alihlt_phos
83  */ 
84
85 class AliHLTPHOSDigitMakerComponent : public AliHLTPHOSProcessor
86 {
87 public:
88
89   /** Constructor */
90   AliHLTPHOSDigitMakerComponent();
91
92   /** Destructor */ 
93   virtual ~AliHLTPHOSDigitMakerComponent();
94
95   /** Copy constructor */  
96   AliHLTPHOSDigitMakerComponent(const AliHLTPHOSDigitMakerComponent &) : 
97     AliHLTPHOSProcessor(),
98     fDigitMakerPtr(0),
99     fDigitContainerPtr(0)
100   {
101     //Copy constructor not implemented
102   }
103   
104   /** Assignment */
105   AliHLTPHOSDigitMakerComponent & operator = (const AliHLTPHOSDigitMakerComponent)
106   {
107     //Assignment
108     return *this; 
109   }
110
111   /** interface function, see @ref AliHLTComponent for description */
112   const char* GetComponentID();
113
114   /** interface function, see @ref AliHLTComponent for description */
115   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
116
117   /** interface function, see @ref AliHLTComponent for description */
118   AliHLTComponentDataType GetOutputDataType();
119
120   /** interface function, see @ref AliHLTComponent for description */
121   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
122
123   /** interface function, see @ref AliHLTComponent for description */
124   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
125               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
126               std::vector<AliHLTComponentBlockData>& outputBlocks);
127   
128   /** interface function, see @ref AliHLTComponent for description */
129   AliHLTComponent* Spawn();
130   
131 protected:
132
133   /** interface function, see @ref AliHLTComponent for description */
134   int DoInit(int argc, const char** argv);
135
136   using AliHLTPHOSProcessor::DoEvent;
137
138   /** interface function, see @ref AliHLTComponent for description */
139   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
140   
141 private:
142
143   /** Pointer to the digit maker itself */
144   AliHLTPHOSDigitMaker *fDigitMakerPtr;                    //! transient
145
146   /** The output of the component, digits in a container */
147   AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr;  //! transient
148
149 };
150 #endif
151