Added test for OCDB objects in DoInit and updated documentation (Gaute)
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSClusterHistoComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTITSCLUSTERHISTOCOMPONENT_H
4 #define ALIHLTITSCLUSTERHISTOCOMPONENT_H
5 //* This file is property of and copyright by the ALICE HLT Project        * 
6 //* ALICE Experiment at CERN, All rights reserved.                         *
7 //* See cxx source for full Copyright notice                               *
8
9 /** @file   AliHLTITSClusterHistoComponent.h
10     @author Gaute Ovrebekk
11     @brief  Component for ploting clusters
12 */
13
14 #include "AliHLTProcessor.h"
15 #include "TH1F.h"
16 #include "TH2F.h"
17 #include "AliHLTITSSpacePointData.h"
18 #include "TClonesArray.h"
19 #include "AliITSRecPoint.h"
20
21 /**
22  * @class AliHLTITSQHistoComponent
23  * Component for ploting charge in clusters
24  * 
25  * Component ID: \b ITSClusterHisto <br>
26  * Library: \b libAliHLTITS.so
27  *
28  * Mandatory arguments: <br>
29  * 
30  * 
31  * Optional arguments: <br>
32  * \li -plot-all <br>  
33  *      will plot all histograms in the component.
34  * \li -plot-xy <br>  
35  *      will plot a historgam of the x and y projection of the clusters.
36  * \li -plot-charge     <i> multiplicity  </i> <br> 
37  *      will plot the charge of the clusters.
38  * \li -plot-phieta <br>
39  *      will plot the phi vs eta distrubution of the clusters.
40  * @ingroup alihlt_tpc_components
41  */
42 class AliHLTITSClusterHistoComponent : public AliHLTProcessor
43 {
44 public:
45   /** default constructor */
46   AliHLTITSClusterHistoComponent();
47   /** destructor */
48   virtual ~AliHLTITSClusterHistoComponent();
49
50   // Public functions to implement AliHLTComponent's interface.
51   // These functions are required for the registration process
52
53   /** interface function, see AliHLTComponent for description */
54   const char* GetComponentID();
55   /** interface function, see AliHLTComponent for description */
56   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
57   /** interface function, see AliHLTComponent for description */
58   AliHLTComponentDataType GetOutputDataType();
59   /** interface function, see AliHLTComponent for description */
60   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
61   /** interface function, see AliHLTComponent for description */
62   AliHLTComponent* Spawn();
63
64 protected:
65
66   // Protected functions to implement AliHLTComponent's interface.
67   // These functions provide initialization as well as the actual processing
68   // capabilities of the component. 
69
70   /** interface function, see AliHLTComponent for description */
71   int DoInit( int argc, const char** argv );
72   /** interface function, see AliHLTComponent for description */
73   int DoDeinit();
74   /** interface function, see AliHLTComponent for description */
75   int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
76
77   int Reconfigure(const char* cdbEntry, const char* chainId);
78
79   using AliHLTProcessor::DoEvent;
80   
81 private:
82   /** copy constructor prohibited */
83   AliHLTITSClusterHistoComponent(const AliHLTITSClusterHistoComponent&);
84   /** assignment operator prohibited */
85   AliHLTITSClusterHistoComponent& operator=(const AliHLTITSClusterHistoComponent&);
86   /**
87    * Configure the component.
88    * Parse a string for the configuration arguments and set the component
89    * properties.
90    */ 
91   int Configure(const char* arguments);
92   
93   TH2F * fXY;                              //! transient
94   TH2F **fPhieta;                          //! transient
95   TH1F * fCharge;                          //! transient
96     
97   Bool_t fPlotCharge;                      //! transient
98   Bool_t fPlotXYPhiEta;                    //! transient
99
100   /// maximum required size of the output buffer
101   /// dynamically adjusted
102   int fOutputSize;                         //! transient
103    
104   ClassDef(AliHLTITSClusterHistoComponent, 3);
105
106 };
107 #endif