3 #ifndef ALIHLTTPCHWCFEMULATOR_H
4 #define ALIHLTTPCHWCFEMULATOR_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 *
10 #include "AliHLTTPCHWCFExtractorUnit.h"
11 #include "AliHLTTPCHWCFProcessorUnit.h"
12 #include "AliHLTTPCHWCFMergerUnit.h"
13 #include "AliHLTTPCHWCFDivisionUnit.h"
15 class AliHLTTPCClusterMCData;
16 class AliHLTTPCClusterMCLabel;
18 // @class AliHLTTPCHWCFEmulator
19 // @author Sergey Gorbunov <sergey.gorbunov@fias.uni-frankfurt.de>
20 // @author Torsten Alt <talt@cern.ch>
21 // @brief FPGA ClusterFinder Emulator for TPC
24 class AliHLTTPCHWCFEmulator
28 /** standard constructor */
29 AliHLTTPCHWCFEmulator();
32 virtual ~AliHLTTPCHWCFEmulator();
34 /** set debug level */
35 void SetDebugLevel( int val ){ fDebug = val; }
39 void Init( const AliHLTUInt32_t *mapping, AliHLTUInt32_t configWord );
41 /** Loops over all rows finding the clusters
43 int FindClusters( const AliHLTUInt32_t *rawEvent,
44 AliHLTUInt32_t rawEventSize32,
45 AliHLTUInt32_t *output,
46 AliHLTUInt32_t &outputSize32,
47 const AliHLTTPCClusterMCLabel *mcLabels,
48 AliHLTUInt32_t nMCLabels,
49 AliHLTTPCClusterMCData *outputMC
54 /** read the word written in big endian format (lowest byte first)
56 static AliHLTUInt32_t ReadBigEndian( AliHLTUInt32_t word );
58 /** write a word in big endian format (least byte first)
60 static AliHLTUInt32_t WriteBigEndian( AliHLTUInt32_t word );
62 /** create configuration word
64 static AliHLTUInt32_t CreateConfiguration
65 ( bool doDeconvTime, bool doDeconvPad, bool doFlowControl,
66 bool doSinglePadSuppression, bool bypassMerger,
67 AliHLTUInt32_t clusterLowerLimit,AliHLTUInt32_t singleSeqLimit );
69 /** create default configuration word
71 static AliHLTUInt32_t CreateDefaultConfiguration(){
72 return CreateConfiguration(0,0,0,1,0,0,0);
77 /** copy constructor prohibited */
78 AliHLTTPCHWCFEmulator(const AliHLTTPCHWCFEmulator&);
79 /** assignment operator prohibited */
80 AliHLTTPCHWCFEmulator& operator=(const AliHLTTPCHWCFEmulator&);
82 int fDebug; // debug level
83 const AliHLTUInt32_t *fkMapping; //! mapping array
84 AliHLTTPCHWCFExtractorUnit fChannelExtractor; //! transient
85 AliHLTTPCHWCFProcessorUnit fChannelProcessor; //! transient
86 AliHLTTPCHWCFMergerUnit fChannelMerger; //! transient
87 AliHLTTPCHWCFDivisionUnit fDivisionUnit; //! transient