]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/HWCFemulator/AliHLTTPCHWCFConsistencyControlComponent.h
using one instance of decoder for all events
[u/mrichter/AliRoot.git] / HLT / TPCLib / HWCFemulator / AliHLTTPCHWCFConsistencyControlComponent.h
CommitLineData
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 19class 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 */
46class 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