]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/HWCFemulator/AliHLTTPCHWCFDivisionUnit.h
HWCFEmulator update
[u/mrichter/AliRoot.git] / HLT / TPCLib / HWCFemulator / AliHLTTPCHWCFDivisionUnit.h
CommitLineData
33861fe0 1//-*- Mode: C++ -*-
2// $Id$
c012881c 3//* This file is property of and copyright by the ALICE HLT Project *
4//* ALICE Experiment at CERN, All rights reserved. *
5//* See cxx source for full Copyright notice *
6
7#ifndef ALIHLTTPCHWCFDIVISIONUNIT_H
8#define ALIHLTTPCHWCFDIVISIONUNIT_H
9
10#include "AliHLTTPCHWCFDataTypes.h"
11
12
13// @class AliHLTTPCHWCFDivisionUnit
14// @author Sergey Gorbunov <sergey.gorbunov@fias.uni-frankfurt.de>
15// @author Torsten Alt <talt@cern.ch>
16// @brief Division unit of FPGA ClusterFinder Emulator for TPC
17// @brief ( see AliHLTTPCHWCFEmulator class )
18// @note
19//
20class AliHLTTPCHWCFDivisionUnit
21{
22 public:
23
24 static bool CompareMCWeights(const AliHLTTPCClusterMCWeight &a, const AliHLTTPCClusterMCWeight &b){
b7ea7fe9 25 return a.fWeight > b.fWeight;
c012881c 26 }
27 static bool CompareMCLabels(const AliHLTTPCClusterMCWeight &a, const AliHLTTPCClusterMCWeight &b){
28 return a.fMCID < b.fMCID;
29 }
30
31 /** standard constructor */
32 AliHLTTPCHWCFDivisionUnit();
33
34 /** destructor */
35 ~AliHLTTPCHWCFDivisionUnit();
36
b7ea7fe9 37 /** set debug level */
38 void SetDebugLevel( int val ){ fDebug = val; }
39
c012881c 40 /** Suppress clusters wich were not mmerged (except of clusters at branch borders)
41 */
42 void SetSinglePadSuppression( bool val ){ fSinglePadSuppression=val; }
43
44 /** Lower charge limit for clusters
45 */
46 void SetClusterLowerLimit( AliHLTUInt32_t val ){
47 fClusterLowerLimit = val << AliHLTTPCHWCFDefinitions::kFixedPoint;
48 }
49
50 /** initialise */
51 int Init();
52
53 /** input stream of data */
54 int InputStream( const AliHLTTPCHWCFClusterFragment *fragment );
55
56 /** output stream of data */
57 const AliHLTTPCHWCFCluster *OutputStream();
58
59 private:
60
61 /** copy constructor prohibited */
62 AliHLTTPCHWCFDivisionUnit(const AliHLTTPCHWCFDivisionUnit&);
63 /** assignment operator prohibited */
64 AliHLTTPCHWCFDivisionUnit& operator=(const AliHLTTPCHWCFDivisionUnit&);
65
66 bool fSinglePadSuppression; // suppress not merged clusters
67 AliHLTUInt64_t fClusterLowerLimit; // lower charge limit for clusters
68 const AliHLTTPCHWCFClusterFragment *fkInput; // current input
69 AliHLTTPCHWCFCluster fOutput; // current output
b7ea7fe9 70 int fDebug; // debug level
c012881c 71};
72
73#endif