]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCCFComparisonComponent.h
CMake: removing qpythia from the depedencies
[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
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   ClassDef(AliHLTTPCCFComparisonComponent, 0);
135
136 };
137 #endif