]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSDigitMakerComponent.h
completely re-worked TPC CA tracking code (Sergey/Ivan)
[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   /** interface function, see @ref AliHLTComponent for description */
61   const char* GetComponentID();
62
63   /** interface function, see @ref AliHLTComponent for description */
64   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
65
66   /** interface function, see @ref AliHLTComponent for description */
67   AliHLTComponentDataType GetOutputDataType();
68
69   /** interface function, see @ref AliHLTComponent for description */
70   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
71
72   /** interface function, see @ref AliHLTComponent for description */
73   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
74               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
75               std::vector<AliHLTComponentBlockData>& outputBlocks);
76   
77   /** interface function, see @ref AliHLTComponent for description */
78   AliHLTComponent* Spawn();
79   
80 protected:
81
82   /** interface function, see @ref AliHLTComponent for description */
83   int DoInit(int argc, const char** argv);
84
85   using AliHLTPHOSProcessor::DoEvent;
86
87   /** interface function, see @ref AliHLTComponent for description */
88   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
89   
90 private:
91
92   /** Pointer to the digit maker it self */
93   AliHLTPHOSDigitMaker *fDigitMakerPtr;                    //! transient
94
95   /** The output of the component, digits in a container */
96   AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr;  //! transient
97
98   /** Event count */
99   //  UInt_t fEvtCnt; 
100   
101   static const AliHLTComponentDataType fgkInputDataTypes[];     //HLT input data type
102
103 };
104 #endif
105