]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/HWCFemulator/AliHLTTPCHWCFMergerUnit.h
using one instance of decoder for all events
[u/mrichter/AliRoot.git] / HLT / TPCLib / HWCFemulator / AliHLTTPCHWCFMergerUnit.h
CommitLineData
33861fe0 1//-*- Mode: C++ -*-
2// $Id$
c012881c 3#ifndef ALIHLTTPCHWCFMERGERUNIT_H
4#define ALIHLTTPCHWCFMERGERUNIT_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 "AliHLTTPCHWCFDataTypes.h"
12
13
14// @class AliHLTTPCHWCFMergerUnit
15// @author Sergey Gorbunov <sergey.gorbunov@fias.uni-frankfurt.de>
16// @author Torsten Alt <talt@cern.ch>
17// @brief Channel Merger unit of FPGA ClusterFinder Emulator for TPC
18// @brief ( see AliHLTTPCHWCFEmulator class )
19// @note
20//
21class AliHLTTPCHWCFMergerUnit
22{
23 public:
24
25 /** standard constructor */
26 AliHLTTPCHWCFMergerUnit();
27
28 /** destructor */
29 ~AliHLTTPCHWCFMergerUnit();
30
b7ea7fe9 31 /** set debug level */
c012881c 32 void SetDebugLevel( int val ){ fDebug = val; }
33
34 /** do cluster deconvolution in pad direction */
35 void SetDeconvolution( bool val ){ fDeconvolute = val; }
36
37 /** bypass the merger */
38 void SetByPassMerger( bool val ){ fByPassMerger = val; }
39
40 /** set max distance in timebins for matching fragments */
41 void SetMatchDistance( unsigned int val ){ fMatchDistance = val; }
42
43 /** update MeanTime value when merging fragments */
44 void SetMatchTimeFollow( bool val ){ fMatchTimeFollow = val; }
45
46 /** initialise */
47 int Init();
48
49 /** input stream of data */
50 int InputStream( const AliHLTTPCHWCFClusterFragment *fragment );
51
52 /** output stream of data */
53 const AliHLTTPCHWCFClusterFragment *OutputStream();
54
55 private:
56
57 /** copy constructor prohibited */
58 AliHLTTPCHWCFMergerUnit(const AliHLTTPCHWCFMergerUnit&);
59 /** assignment operator prohibited */
60 AliHLTTPCHWCFMergerUnit& operator=(const AliHLTTPCHWCFMergerUnit&);
61
62 int fDebug; // debug level
63 unsigned int fMatchDistance; // max distance in timebins for matching fragments
64 bool fMatchTimeFollow; // update MeanTime value when merging fragments
65 bool fDeconvolute; // do cluster deconvolution in pad direction
66 bool fByPassMerger;// bypass the merger
67 AliHLTTPCHWCFClusterFragment fInput; // current input
68 AliHLTTPCHWCFClusterFragment fMemory[2][AliHLTTPCHWCFDefinitions::kMaxNTimeBins*2]; // memory for 2 channels
69 AliHLTTPCHWCFClusterFragment *fSearchRange[2]; // search range array
70 AliHLTTPCHWCFClusterFragment *fInsertRange[2]; // insert range array
71 int fSearchStart[2]; // index of the first candidate in SR
72 int fSearchEnd[2]; // index of end of SR
73 int fInsertEnd[2]; // index of end of IR
74 int fInsertRow[2]; // current row number in IR
75 int fInsertPad[2]; // current pad number in IR
76};
77
78#endif