]>
Commit | Line | Data |
---|---|---|
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 | // | |
20 | class 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 |