]>
Commit | Line | Data |
---|---|---|
c012881c | 1 | #ifndef ALIHLTTPCHWCFCONSISTENCYCONTROLCOMPONENT_H |
2 | #define ALIHLTTPCHWCFCONSISTENCYCONTROLCOMPONENT_H | |
3 | ||
4 | //* This file is property of and copyright by the ALICE HLT Project * | |
5 | //* ALICE Experiment at CERN, All rights reserved. * | |
6 | //* See cxx source for full Copyright notice * | |
7 | ||
8 | // @file AliHLTTPCHWCFConsistencyControlComponent.h | |
9 | // @author Sergey Gorbunov <sergey.gorbunov@fias.uni-frankfurt.de> | |
10 | // @author Torsten Alt <talt@cern.ch> | |
11 | // @brief Comparison of TPC clusters produced by FPGA clusterfinder and by FPGA Emulator | |
12 | // @brief ( see AliHLTTPCHWCFEmulator class ) | |
13 | // @note | |
14 | ||
15 | ||
16 | ||
17 | #include "AliHLTProcessor.h" | |
18 | #include "AliHLTComponentBenchmark.h" | |
d8a583c4 | 19 | class TH1F; |
c012881c | 20 | |
21 | /** | |
22 | * @class AliHLTTPCHWCFConsistencyControlComponent | |
23 | * The FPGA clusterfinder emulator for TPC | |
24 | * Comparison of TPC clusters produced by FPGA clusterfinder and by FPGA Emulator | |
25 | * ( see AliHLTTPCHWCFEmulator class ) | |
26 | * | |
27 | * <h2>General properties:</h2> | |
28 | * | |
29 | * Component ID: \b TPCHWCFConsistenyControl <br> | |
30 | * Library: \b libAliHLTTPC | |
31 | * Input Data Types: @ref AliHLTTPCDefinitions::fgkHWClustersDataType <br> | |
32 | * Output Data Types: @ref <br> | |
33 | * | |
34 | * | |
35 | * Mandatory arguments: <br> | |
36 | * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> | |
37 | * | |
38 | * Optional arguments: <br> | |
39 | * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> | |
40 | * | |
41 | * <h2>Default CDB entries:</h2> | |
42 | * None | |
43 | * | |
44 | * @ingroup alihlt_tpc_components | |
45 | */ | |
46 | class AliHLTTPCHWCFConsistencyControlComponent : public AliHLTProcessor | |
47 | { | |
48 | public: | |
49 | /** | |
50 | * constructor | |
51 | */ | |
52 | AliHLTTPCHWCFConsistencyControlComponent(); | |
53 | /** destructor */ | |
54 | virtual ~AliHLTTPCHWCFConsistencyControlComponent(); | |
55 | ||
56 | // Public functions to implement AliHLTComponent's interface. | |
57 | // These functions are required for the registration process | |
58 | ||
59 | /** interface function, see AliHLTComponent for description */ | |
60 | const char* GetComponentID(); | |
61 | ||
62 | /** interface function, see AliHLTComponent for description */ | |
63 | void GetInputDataTypes( vector<AliHLTComponentDataType>& list); | |
64 | ||
65 | /** interface function, see AliHLTComponent for description */ | |
66 | AliHLTComponentDataType GetOutputDataType(); | |
67 | ||
c012881c | 68 | /** interface function, see AliHLTComponent for description */ |
69 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); | |
70 | ||
71 | /** interface function, see AliHLTComponent for description */ | |
72 | AliHLTComponent* Spawn(); | |
73 | ||
74 | /** interface function, see @ref AliHLTComponent for description */ | |
75 | void GetOCDBObjectDescription( TMap* const targetMap); | |
76 | ||
77 | protected: | |
78 | ||
79 | // Protected functions to implement AliHLTComponent's interface. | |
80 | // These functions provide initialization as well as the actual processing | |
81 | // capabilities of the component. | |
82 | ||
83 | /** @copydoc AliHLTComponent::DoInit | |
84 | */ | |
85 | int DoInit( int argc, const char **argv ); | |
86 | ||
87 | /** @copydoc AliHLTComponent::DoDeinit | |
88 | */ | |
89 | int DoDeinit(); | |
90 | ||
91 | /** @copydoc @ref AliHLTComponent::Reconfigure | |
92 | */ | |
93 | int Reconfigure( const char* cdbEntry, const char* chainId ); | |
94 | ||
95 | /** @copydoc @ref AliHLTComponent::ScanConfigurationArgument | |
96 | */ | |
97 | int ScanConfigurationArgument(int argc, const char** argv); | |
98 | ||
99 | /** @copydoc @ref AliHLTProcessor::DoEvent | |
100 | */ | |
101 | int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, | |
102 | AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, | |
103 | AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks ); | |
104 | ||
105 | ||
106 | using AliHLTProcessor::DoEvent; | |
107 | ||
108 | private: | |
109 | ||
110 | /** copy constructor prohibited */ | |
111 | AliHLTTPCHWCFConsistencyControlComponent(const AliHLTTPCHWCFConsistencyControlComponent&); | |
112 | ||
113 | /** assignment operator prohibited */ | |
114 | AliHLTTPCHWCFConsistencyControlComponent& operator=(const AliHLTTPCHWCFConsistencyControlComponent&); | |
115 | ||
116 | /** Set default configuration */ | |
117 | void SetDefaultConfiguration(); | |
118 | ||
119 | /** scan configuration string */ | |
120 | int ReadConfigurationString( const char* arguments ); | |
121 | ||
122 | /** read configuration from OCDB */ | |
123 | int ReadCDBEntry( const char* cdbEntry, const char* chainId ); | |
124 | ||
125 | /** read configuration from multiple sources */ | |
126 | int Configure( const char* cdbEntry, const char* chainId, const char *commandLine ); | |
127 | ||
128 | AliHLTUInt64_t fNDismatch;// N inconsistent data blocks | |
129 | AliHLTUInt64_t fNBlocks;// N of data blocks processed | |
130 | AliHLTComponentBenchmark fBenchmark; // benchmark | |
d8a583c4 | 131 | TH1F *fHistHeaderAll; // checked parameters of block headers |
132 | TH1F *fHistHeaderGood; // consistent parameters of block headers | |
133 | TH1F *fHistClusterAll; // checked parameters of clusters | |
134 | TH1F *fHistClusterGood; // consistent parameters of clusters | |
135 | TH1F *fProfHeader; // ratio of good headers | |
136 | TH1F *fProfCluster; // ratio of good clusters | |
c012881c | 137 | }; |
138 | #endif |