]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCCFComparisonComponent.h
coverity warning 15138 fixed
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCCFComparisonComponent.h
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
20 class TNtuple;
21 class 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  */
58 class AliHLTTPCCFComparisonComponent : public AliHLTProcessor
59 {
60 public:
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
84 protected:
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   
103 private:
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