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