]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSDigitMakerComponent.h
Removing unused constants
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitMakerComponent.h
CommitLineData
1b41ab20 1//-*- Mode: C++ -*-
2// $Id$
3
ab38011b 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 **************************************************************************/
209a4703 18#ifndef ALIHLTPHOSDIGITMAKERCOMPONENT_H
19#define ALIHLTPHOSDIGITMAKERCOMPONENT_H
20
2374af72 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
209a4703 32
2374af72 33#include "AliHLTPHOSProcessor.h"
c1e4a18c 34#include "AliHLTCaloConstantsHandler.h"
209a4703 35
ad44d760 36
f137c3c5 37class AliHLTCaloDigitMaker;
38class AliHLTCaloDigitContainerDataStruct;
c1e4a18c 39class AliPHOSEmcBadChannelsMap;
40class AliPHOSEmcCalibData;
2374af72 41/**
42 * @class AliHLTPHOSDigitMakerComponent
18af2efc 43 *
44 * Creates the digit used for the clusterizer. Digits are equivalent to the ones in
45 * offline reconstruction
46 *
47 * <h2>General properties:</h2>
48 *
49 * Component ID: \b PhosDigitMaker <br>
50 * Library: \b libAliHLTPHOS.so <br>
51 * Input Data Types: @ref AliHLTPHOSDefinitions::fkgChannelDataType<br>
52 * Output Data Types: @ref AliHLTPHOSDefinitions::fgkDigitDataType<br>
53 *
54 * <h2>Mandatory arguments:</h2>
55 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
56 * \li No mandatory arguments for component <br>
57 *
58 * <h2>Optional arguments:</h2>
59 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
60 * \li -lowgainfactor <i> value </i> <br>
61 * sets a global low gain factor
62 * \li -highgainfactor <i> value </i> <br>
63 * sets a global high gain factor
64 * \li -reverseorder <br>
65 * set if one expects the low gain channels to come before the high gain ones
66 *
67 * <h2>Configuration:</h2>
68 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
69 * \li No configuration arguments
70 *
71 * <h2>Default CDB entries:</h2>
72 * \li No CDB entry yet, will come.
73 *
74 * <h2>Performance:</h2>
75 * Pretty good
76 *
77 * <h2>Memory consumption:</h2>
78 * Pretty low
2374af72 79 *
18af2efc 80 * <h2>Output size:</h2>
81 * Depends on the event...
2374af72 82 *
18af2efc 83 * More detailed description. (Soon)
2374af72 84 *
85 * @ingroup alihlt_phos
18af2efc 86 */
209a4703 87
c1e4a18c 88class AliHLTPHOSDigitMakerComponent : public AliHLTPHOSProcessor, public AliHLTCaloConstantsHandler
209a4703 89{
90public:
2374af72 91
92 /** Constructor */
209a4703 93 AliHLTPHOSDigitMakerComponent();
2374af72 94
25b7f84c 95 /** Destructor */
ab38011b 96 virtual ~AliHLTPHOSDigitMakerComponent();
25b7f84c 97
2374af72 98 /** interface function, see @ref AliHLTComponent for description */
209a4703 99 const char* GetComponentID();
100
2374af72 101 /** interface function, see @ref AliHLTComponent for description */
209a4703 102 void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
103
2374af72 104 /** interface function, see @ref AliHLTComponent for description */
209a4703 105 AliHLTComponentDataType GetOutputDataType();
106
2374af72 107 /** interface function, see @ref AliHLTComponent for description */
209a4703 108 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
109
2374af72 110 /** interface function, see @ref AliHLTComponent for description */
ab38011b 111 int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
112 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
113 std::vector<AliHLTComponentBlockData>& outputBlocks);
209a4703 114
2374af72 115 /** interface function, see @ref AliHLTComponent for description */
209a4703 116 AliHLTComponent* Spawn();
117
118protected:
2374af72 119
120 /** interface function, see @ref AliHLTComponent for description */
209a4703 121 int DoInit(int argc, const char** argv);
2374af72 122
123 using AliHLTPHOSProcessor::DoEvent;
124
125 /** interface function, see @ref AliHLTComponent for description */
209a4703 126 virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
c1e4a18c 127
128 /** Get bad channel map from CDB */
129 virtual int GetBCMFromCDB();
130
131 /** Get the ADC <-> Energy (GeV) gain factors */
132 virtual int GetGainsFromCDB();
133
209a4703 134
135private:
c1e4a18c 136
137 /** Copy constructor, prohibited */
138 AliHLTPHOSDigitMakerComponent(const AliHLTPHOSDigitMakerComponent &);
139
140 /** Assignment operator, prohibited */
141 AliHLTPHOSDigitMakerComponent & operator = (const AliHLTPHOSDigitMakerComponent);
142
17e40254 143 /** Pointer to the digit maker itself */
f137c3c5 144 AliHLTCaloDigitMaker *fDigitMakerPtr; //! transient
2374af72 145
146 /** The output of the component, digits in a container */
f137c3c5 147 AliHLTCaloDigitContainerDataStruct *fDigitContainerPtr; //! transient
c1e4a18c 148
149 /** Bad channel map */
150 AliPHOSEmcBadChannelsMap *fBadChannelMap; //! transient
151
152// /** Temporary holder for bad channel map */
153 //Bool_t ***fBadChannelMap; //! transient
154
155 /** Calibration data */
156 AliPHOSEmcCalibData *fCalibData; //! transient
157
158
159 /** Is the bad map initialised? */
160 Bool_t fBCMInitialised; //! transient
161
162 /** Are the gains initialised? */
163 Bool_t fGainsInitialised; //! transient
164
2374af72 165
209a4703 166};
167#endif
168