3 #ifndef ALIHLTTPCHWCFPROCESSORUNIT_H
4 #define ALIHLTTPCHWCFPROCESSORUNIT_H
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 *
11 #include "AliHLTDataTypes.h"
12 #include "AliHLTTPCHWCFDataTypes.h"
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 )
22 class AliHLTTPCHWCFProcessorUnit
26 /** standard constructor */
27 AliHLTTPCHWCFProcessorUnit();
30 ~AliHLTTPCHWCFProcessorUnit();
32 /** set debug level */
33 void SetDebugLevel( int val ){ fDebug = val; }
35 /** do cluster deconvolution in time direction */
36 void SetDeconvolutionTime( bool val ){ fDeconvolute = val; }
38 /** lower charge limit for isolated signals
40 void SetSingleSeqLimit( AliHLTUInt32_t val ){
41 fSingleSeqLimit = val << AliHLTTPCHWCFDefinitions::kFixedPoint;
44 /** limit size of the cluster in time bins to 5
46 void SetUseTimeBinWindow( bool val ){
47 fUseTimeBinWindow = val;
53 /** input stream of data */
54 int InputStream( const AliHLTTPCHWCFBunch *bunch );
56 /** output stream of data */
57 const AliHLTTPCHWCFClusterFragment *OutputStream();
61 /** copy constructor prohibited */
62 AliHLTTPCHWCFProcessorUnit(const AliHLTTPCHWCFProcessorUnit&);
63 /** assignment operator prohibited */
64 AliHLTTPCHWCFProcessorUnit& operator=(const AliHLTTPCHWCFProcessorUnit&);
67 AliHLTTPCHWCFClusterFragment fOutput; // current output
68 const AliHLTTPCHWCFBunch *fkBunch; // current input
69 AliHLTUInt32_t fBunchIndex; // index in bunch
70 bool fDeconvolute; // do deconvolution in time direction
71 AliHLTUInt64_t fSingleSeqLimit; // lower charge limit for isolated signals
72 bool fUseTimeBinWindow; // set max. size of the cluster to 5 time bins
73 int fDebug; // debug level