Line data Source code
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 :
19 : class TNtuple;
20 : class 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 : */
57 : class AliHLTTPCCFComparisonComponent : public AliHLTProcessor
58 : {
59 : public:
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 :
83 : protected:
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 :
102 : private:
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 6 : ClassDef(AliHLTTPCCFComparisonComponent, 0);
135 :
136 : };
137 : #endif
|