1 #ifndef ALIHLTTPCHWCFCONSISTENCYCONTROLCOMPONENT_H
2 #define ALIHLTTPCHWCFCONSISTENCYCONTROLCOMPONENT_H
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 *
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 )
17 #include "AliHLTProcessor.h"
18 #include "AliHLTComponentBenchmark.h"
21 * @class AliHLTTPCHWCFConsistencyControlComponent
22 * The FPGA clusterfinder emulator for TPC
23 * Comparison of TPC clusters produced by FPGA clusterfinder and by FPGA Emulator
24 * ( see AliHLTTPCHWCFEmulator class )
26 * <h2>General properties:</h2>
28 * Component ID: \b TPCHWCFConsistenyControl <br>
29 * Library: \b libAliHLTTPC
30 * Input Data Types: @ref AliHLTTPCDefinitions::fgkHWClustersDataType <br>
31 * Output Data Types: @ref <br>
34 * Mandatory arguments: <br>
35 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
37 * Optional arguments: <br>
38 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
40 * <h2>Default CDB entries:</h2>
43 * @ingroup alihlt_tpc_components
45 class AliHLTTPCHWCFConsistencyControlComponent : public AliHLTProcessor
51 AliHLTTPCHWCFConsistencyControlComponent();
53 virtual ~AliHLTTPCHWCFConsistencyControlComponent();
55 // Public functions to implement AliHLTComponent's interface.
56 // These functions are required for the registration process
58 /** interface function, see AliHLTComponent for description */
59 const char* GetComponentID();
61 /** interface function, see AliHLTComponent for description */
62 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
64 /** interface function, see AliHLTComponent for description */
65 AliHLTComponentDataType GetOutputDataType();
67 /** interface function, see AliHLTComponent for description */
68 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
70 /** interface function, see AliHLTComponent for description */
71 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
73 /** interface function, see AliHLTComponent for description */
74 AliHLTComponent* Spawn();
76 /** interface function, see @ref AliHLTComponent for description */
77 void GetOCDBObjectDescription( TMap* const targetMap);
81 // Protected functions to implement AliHLTComponent's interface.
82 // These functions provide initialization as well as the actual processing
83 // capabilities of the component.
85 /** @copydoc AliHLTComponent::DoInit
87 int DoInit( int argc, const char **argv );
89 /** @copydoc AliHLTComponent::DoDeinit
93 /** @copydoc @ref AliHLTComponent::Reconfigure
95 int Reconfigure( const char* cdbEntry, const char* chainId );
97 /** @copydoc @ref AliHLTComponent::ScanConfigurationArgument
99 int ScanConfigurationArgument(int argc, const char** argv);
101 /** @copydoc @ref AliHLTProcessor::DoEvent
103 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
104 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
105 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
108 using AliHLTProcessor::DoEvent;
112 /** copy constructor prohibited */
113 AliHLTTPCHWCFConsistencyControlComponent(const AliHLTTPCHWCFConsistencyControlComponent&);
115 /** assignment operator prohibited */
116 AliHLTTPCHWCFConsistencyControlComponent& operator=(const AliHLTTPCHWCFConsistencyControlComponent&);
118 /** Set default configuration */
119 void SetDefaultConfiguration();
121 /** scan configuration string */
122 int ReadConfigurationString( const char* arguments );
124 /** read configuration from OCDB */
125 int ReadCDBEntry( const char* cdbEntry, const char* chainId );
127 /** read configuration from multiple sources */
128 int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
130 AliHLTUInt64_t fNDismatch;// N inconsistent data blocks
131 AliHLTUInt64_t fNBlocks;// N of data blocks processed
132 AliHLTComponentBenchmark fBenchmark; // benchmark