]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSDigitMakerComponent.h
1) Cosmetics, pluss 2) first iteration in phasing out
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitMakerComponent.h
1 /**************************************************************************
2  * This file is property of and copyright by the ALICE HLT Project        *
3  * All rights reserved.                                                   *
4  *                                                                        *
5  * Primary Authors: Oystein Djuvsland                                     *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15 #ifndef ALIHLTPHOSDIGITMAKERCOMPONENT_H
16 #define ALIHLTPHOSDIGITMAKERCOMPONENT_H
17
18 /** @file   AliHLTPHOSDigitMakerComponent.h
19     @author Oystein Djuvsland
20     @date   
21     @brief  A digit maker component for PHOS HLT
22 */
23
24 // see below for class documentation
25 // or
26 // refer to README to build package
27 // or
28 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
29
30 #include "AliHLTPHOSProcessor.h"
31
32 class AliHLTPHOSDigitMaker;
33 class TTree;
34 class TClonesArray;
35 class AliHLTPHOSDigitContainerDataStruct;
36
37
38 /**
39  * @class AliHLTPHOSDigitMakerComponent
40  *
41  * Class runs AliHLTPHOSDigitMaker, creating digits from "raw data"
42  *
43  * The component has the following component arguments:
44  * -threshold              threshold for creating a digit, gives software zero suppression
45  * -presamples             number of presamples (not really necessary)
46  *
47  * @ingroup alihlt_phos
48  */
49
50 class AliHLTPHOSDigitMakerComponent : public AliHLTPHOSProcessor
51 {
52 public:
53
54   /** Constructor */
55   AliHLTPHOSDigitMakerComponent();
56
57   /** Destructor */ 
58   virtual ~AliHLTPHOSDigitMakerComponent();
59
60   /** Copy constructor */  
61   AliHLTPHOSDigitMakerComponent(const AliHLTPHOSDigitMakerComponent &) : 
62     AliHLTPHOSProcessor(),
63     fDigitMakerPtr(0),
64     fDigitContainerPtr(0)
65   {
66     //Copy constructor not implemented
67   }
68   
69   /** Assignment */
70   AliHLTPHOSDigitMakerComponent & operator = (const AliHLTPHOSDigitMakerComponent)
71   {
72     //Assignment
73     return *this; 
74   }
75
76   /** interface function, see @ref AliHLTComponent for description */
77   const char* GetComponentID();
78
79   /** interface function, see @ref AliHLTComponent for description */
80   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
81
82   /** interface function, see @ref AliHLTComponent for description */
83   AliHLTComponentDataType GetOutputDataType();
84
85   /** interface function, see @ref AliHLTComponent for description */
86   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
87
88   /** interface function, see @ref AliHLTComponent for description */
89   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
90               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
91               std::vector<AliHLTComponentBlockData>& outputBlocks);
92   
93   /** interface function, see @ref AliHLTComponent for description */
94   AliHLTComponent* Spawn();
95   
96 protected:
97
98   /** interface function, see @ref AliHLTComponent for description */
99   int DoInit(int argc, const char** argv);
100
101   using AliHLTPHOSProcessor::DoEvent;
102
103   /** interface function, see @ref AliHLTComponent for description */
104   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
105   
106 private:
107
108   /** Pointer to the digit maker it self */
109   AliHLTPHOSDigitMaker *fDigitMakerPtr;                    //! transient
110
111   /** The output of the component, digits in a container */
112   AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr;  //! transient
113
114   /** Event count */
115   //  UInt_t fEvtCnt; 
116   
117   static const AliHLTComponentDataType fgkInputDataTypes[];     //HLT input data type
118
119 };
120 #endif
121