update by 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   AliHLTITSQHistoComponent.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 "TH3F.h"
18 #include "AliHLTITSSpacePointData.h"
19 #include "TClonesArray.h"
20 #include "AliITSRecPoint.h"
21
22 class AliHLTTPCConfMapper;
23
24 /**
25  * @class AliHLTITSQHistoComponent
26  * Component for ploting charge in clusters
27  * 
28  * Component ID: \b ITSQHisto <br>
29  * Library: \b libAliHLTITS.
30  *
31  * Mandatory arguments: <br>
32  * 
33  * 
34  * Optional arguments: <br>
35  * 
36  *
37  * @ingroup alihlt_tpc_components
38  */
39 class AliHLTITSClusterHistoComponent : public AliHLTProcessor
40 {
41 public:
42   /** default constructor */
43   AliHLTITSClusterHistoComponent();
44   /** destructor */
45   virtual ~AliHLTITSClusterHistoComponent();
46
47   // Public functions to implement AliHLTComponent's interface.
48   // These functions are required for the registration process
49
50   /** interface function, see AliHLTComponent for description */
51   const char* GetComponentID();
52   /** interface function, see AliHLTComponent for description */
53   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
54   /** interface function, see AliHLTComponent for description */
55   AliHLTComponentDataType GetOutputDataType();
56   /** interface function, see AliHLTComponent for description */
57   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
58   /** interface function, see AliHLTComponent for description */
59   AliHLTComponent* Spawn();
60
61 protected:
62
63   // Protected functions to implement AliHLTComponent's interface.
64   // These functions provide initialization as well as the actual processing
65   // capabilities of the component. 
66
67   /** interface function, see AliHLTComponent for description */
68   int DoInit( int argc, const char** argv );
69   /** interface function, see AliHLTComponent for description */
70   int DoDeinit();
71   /** interface function, see AliHLTComponent for description */
72   int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
73
74   int Reconfigure(const char* cdbEntry, const char* chainId);
75
76   using AliHLTProcessor::DoEvent;
77   
78 private:
79   /** copy constructor prohibited */
80   AliHLTITSClusterHistoComponent(const AliHLTITSClusterHistoComponent&);
81   /** assignment operator prohibited */
82   AliHLTITSClusterHistoComponent& operator=(const AliHLTITSClusterHistoComponent&);
83   /**
84    * Configure the component.
85    * Parse a string for the configuration arguments and set the component
86    * properties.
87    */ 
88   int Configure(const char* arguments);
89   
90   TH2F * fXY;                              //! transient
91   TH3F * fXYZ;                             //! transient
92   TH1F * fCharge;                          //! transient
93     
94   Bool_t fPlotCharge;                      //! transient
95   Bool_t fPlotXY;                          //! transient
96   Bool_t fPlotXYZ;                         //! transient
97    
98   ClassDef(AliHLTITSClusterHistoComponent, 0);
99
100 };
101 #endif