added AliFlatExternalTrackParam to HLT global library
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCCFComparisonComponent.h
CommitLineData
cfe8311c 1// XEmacs -*-C++-*-
2// $Id$
3
4#ifndef ALIHLTTPCCFCOMPARISONCOMPONENT_H
5#define ALIHLTTPCCFCOMPARISONCOMPONENT_H
6//* This file is property of and copyright by the ALICE HLT Project *
7//* ALICE Experiment at CERN, All rights reserved. *
8//* See cxx source for full Copyright notice *
9
e120cbd3 10/// @file AliHLTTPCCFComparisonComponent.h
11/// @author Kalliopi Kanaki
12/// @date
13/// @brief Comparison component for FCF and SCF
14///
cfe8311c 15
16#include "AliHLTProcessor.h"
17#include "AliHLTTPCSpacePointData.h"
cfe8311c 18
19class TNtuple;
20class TH1F;
21
22/**
23 * @class AliHLTTPCCFComparisonComponent
24 * Component for plotting proparties of Tracks.
25 * The component gives out 2 NTuples. One for cluster and one for track properties
26 *
27 * <h2>General properties:</h2>
28 *
29 * Component ID: \b TPCCFComparison <br>
30 * Library: \b libAliHLTTPC.so <br>
31 * Input Data Types: AliHLTTPCDefinitions::fgkClustersDataType,
32 * AliHLTTPCDefinitions::fgkTracksDataType <br>
33 * Output Data Types: ::kAliHLTDataTypeTNtuple <br>
34 *
35 * <h2> Mandatory arguments: </h2>
36 * \li No mandaroty arguments.
37 *
38 * <h2> Optional arguments: </h2>
39 *
40 * <h2>Configuration:</h2>
41 *
42 *
43 * <h2>Default CDB entries:</h2>
44 * The component has for now no CDB entry
45 *
46 * <h2>Performance:</h2>
47 * Not Tested
48 *
49 * <h2>Memory consumption:</h2>
50 * Not Tested
51 *
52 * <h2>Output size:</h2>
53 * Size variables in Ntuple
54 *
55 * @ingroup alihlt_tpc_components
56 */
57class AliHLTTPCCFComparisonComponent : public AliHLTProcessor
58{
59public:
60 /** default constructor */
61 AliHLTTPCCFComparisonComponent();
62 /** destructor */
63 virtual ~AliHLTTPCCFComparisonComponent();
64
65 // Public functions to implement AliHLTComponent's interface.
66 // These functions are required for the registration process
67
68 /** interface function, see AliHLTComponent for description */
69 const char* GetComponentID();
70 /** interface function, see AliHLTComponent for description */
71 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
72 /** interface function, see AliHLTComponent for description */
73 AliHLTComponentDataType GetOutputDataType();
74 /** interface function, see AliHLTComponent for description */
75 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
76 /** interface function, see AliHLTComponent for description */
77 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
78 /** interface function, see AliHLTComponent for description */
79 AliHLTComponent* Spawn();
80 /** interface function, see @ref AliHLTComponent for description */
81 void GetOCDBObjectDescription( TMap* const targetMap);
82
83protected:
84
85 // Protected functions to implement AliHLTComponent's interface.
86 // These functions provide initialization as well as the actual processing
87 // capabilities of the component.
88
89 /** interface function, see AliHLTComponent for description */
90 int DoInit( int argc, const char** argv );
91 /** interface function, see AliHLTComponent for description */
92 int DoDeinit();
93 /** interface function, see AliHLTComponent for description */
94 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
95 /** inherited from AliHLTComponent: handle re-configuration event */
96 int Reconfigure(const char* cdbEntry, const char* chainId);
97 /** inherited from AliHLTComponent, scan one argument and its parameters */
98 int ScanConfigurationArgument(int argc, const char** argv);
99
100 using AliHLTProcessor::DoEvent;
101
102private:
103 /** copy constructor prohibited */
104 AliHLTTPCCFComparisonComponent(const AliHLTTPCCFComparisonComponent&);
105 /** assignment operator prohibited */
106 AliHLTTPCCFComparisonComponent& operator=(const AliHLTTPCCFComparisonComponent&);
107 /**
108 * Configure the component.
109 * Parse a string for the configuration arguments and set the component
110 * properties.
111 */
112
113 void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
114
115 void PushHisto();
116
117 Int_t fEvtMod; //! number of events reached to reset the counter
118 Int_t fBufferSize; //! size of circular buffer (number of entries) for the ntuples
119
120 TH1F *fMultiplicity; //! transient (track multiplicity by Z.Y.)
121
122 TNtuple *fClusters; //! transient
123 TNtuple *fTracks; //! transient
124
125 AliHLTTPCSpacePointData *fFCFClustersArray[36][6]; //! transient
126 UInt_t fFCFNSpacePoints[36][6]; //! transient
127
128 AliHLTTPCSpacePointData *fSCFClustersArray[36][6]; //! transient
129 UInt_t fSCFNSpacePoints[36][6]; //! transient
130
131 /** the default configuration entry for this component */
132 static const char* fgkOCDBEntry; //!transient
133
134 ClassDef(AliHLTTPCCFComparisonComponent, 0);
135
136};
137#endif