Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 : #ifndef ALIHLTTPCHWCFPROCESSORUNIT_H
4 : #define ALIHLTTPCHWCFPROCESSORUNIT_H
5 :
6 : //* This file is property of and copyright by the ALICE HLT Project *
7 : //* ALICE Experiment at CERN, All rights reserved. *
8 : //* See cxx source for full Copyright notice *
9 :
10 :
11 : #include "AliHLTDataTypes.h"
12 : #include "AliHLTTPCHWCFDataTypes.h"
13 :
14 :
15 : // @class AliHLTTPCHWCFProcessorUnit
16 : // @author Sergey Gorbunov <sergey.gorbunov@fias.uni-frankfurt.de>
17 : // @author Torsten Alt <talt@cern.ch>
18 : // @brief Channel Processor unit of FPGA ClusterFinder Emulator for TPC
19 : // @brief ( see AliHLTTPCHWCFEmulator class )
20 : // @note
21 : //
22 : class AliHLTTPCHWCFProcessorUnit
23 : {
24 : public:
25 :
26 : /** standard constructor */
27 : AliHLTTPCHWCFProcessorUnit();
28 :
29 : /** destructor */
30 : ~AliHLTTPCHWCFProcessorUnit();
31 :
32 : /** set debug level */
33 0 : void SetDebugLevel( int val ){ fDebug = val; }
34 :
35 : /** do cluster deconvolution in time direction */
36 0 : void SetDeconvolutionTime( bool val ){ fDeconvolute = val; }
37 :
38 : /** lower charge limit for isolated signals
39 : */
40 : void SetSingleSeqLimit( AliHLTUInt32_t val ){
41 0 : fSingleSeqLimit = val << AliHLTTPCHWCFDefinitions::kFixedPoint;
42 0 : }
43 :
44 : /** limit size of the cluster in time bins to 5
45 : */
46 : void SetUseTimeBinWindow( bool val ){
47 0 : fUseTimeBinWindow = val;
48 0 : }
49 :
50 : /** initialise */
51 : int Init();
52 :
53 : /** input stream of data */
54 : int InputStream( const AliHLTTPCHWCFBunch *bunch );
55 :
56 : /** output stream of data */
57 : const AliHLTTPCHWCFClusterFragment *OutputStream();
58 :
59 : private:
60 :
61 : /** copy constructor prohibited */
62 : AliHLTTPCHWCFProcessorUnit(const AliHLTTPCHWCFProcessorUnit&);
63 : /** assignment operator prohibited */
64 : AliHLTTPCHWCFProcessorUnit& operator=(const AliHLTTPCHWCFProcessorUnit&);
65 :
66 :
67 : AliHLTTPCHWCFClusterFragment fOutput; // current output
68 : const AliHLTTPCHWCFBunch *fkBunch; // current input
69 : AliHLTUInt32_t fBunchIndex; // index in bunch
70 : bool fWasDeconvoluted; // tag shows if the current bunch has been split in several clusters
71 : bool fDeconvolute; // do deconvolution in time direction
72 : AliHLTUInt64_t fSingleSeqLimit; // lower charge limit for isolated signals
73 : bool fUseTimeBinWindow; // set max. size of the cluster to 5 time bins
74 : int fDebug; // debug level
75 : };
76 :
77 : #endif
|