When Pt is bad defined (ex. no field), the multiple scattering effect is calculated...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClusterHistoComponent.h
1 // $Id$
2 #ifndef ALIHLTTPCCLUSTERHISTOCOMPONENT_H
3 #define ALIHLTTPCCLUSTERHISTOCOMPONENT_H
4 //* This file is property of and copyright by the ALICE HLT Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //* See cxx source for full Copyright notice                               *
7
8 /** @file   AliHLTTPCQHistoComponent.h
9     @author Gaute Ovrebekk
10     @brief  Component for ploting charge in clusters
11 */
12
13 #include "AliHLTProcessor.h"
14 #include "TH1F.h"
15 #include "AliHLTTPCSpacePointData.h"
16 #include "AliHLTTPCTrackSegmentData.h"
17
18 class AliHLTTPCConfMapper;
19
20 /**
21  * @class AliHLTTPCQHistoComponent
22  * Component for ploting charge in clusters
23  * 
24  * Component ID: \b TPCQHisto <br>
25  * Library: \b libAliHLTTPC.
26  *
27  * Mandatory arguments: <br>
28  * 
29  * 
30  * Optional arguments: <br>
31  * 
32  *
33  * @ingroup alihlt_tpc_components
34  */
35 class AliHLTTPCClusterHistoComponent : public AliHLTProcessor
36 {
37 public:
38   /** default constructor */
39   AliHLTTPCClusterHistoComponent();
40   /** destructor */
41   virtual ~AliHLTTPCClusterHistoComponent();
42
43   // Public functions to implement AliHLTComponent's interface.
44   // These functions are required for the registration process
45
46   /** interface function, see AliHLTComponent for description */
47   const char* GetComponentID();
48   /** interface function, see AliHLTComponent for description */
49   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
50   /** interface function, see AliHLTComponent for description */
51   AliHLTComponentDataType GetOutputDataType();
52   /** interface function, see AliHLTComponent for description */
53   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
54   /** interface function, see AliHLTComponent for description */
55   AliHLTComponent* Spawn();
56
57 protected:
58
59   // Protected functions to implement AliHLTComponent's interface.
60   // These functions provide initialization as well as the actual processing
61   // capabilities of the component. 
62
63   /** interface function, see AliHLTComponent for description */
64   int DoInit( int argc, const char** argv );
65   /** interface function, see AliHLTComponent for description */
66   int DoDeinit();
67   /** interface function, see AliHLTComponent for description */
68   int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
69
70   int Reconfigure(const char* cdbEntry, const char* chainId);
71
72   using AliHLTProcessor::DoEvent;
73   
74 private:
75   /** copy constructor prohibited */
76   AliHLTTPCClusterHistoComponent(const AliHLTTPCClusterHistoComponent&);
77   /** assignment operator prohibited */
78   AliHLTTPCClusterHistoComponent& operator=(const AliHLTTPCClusterHistoComponent&);
79   /**
80    * Configure the component.
81    * Parse a string for the configuration arguments and set the component
82    * properties.
83    */ 
84   int Configure(const char* arguments);
85   
86   TH1F * fTotalClusterChargeOROCAll;                               //! transient
87   TH1F * fTotalClusterChargeIROCAll;                               //! transient
88   TH1F * fTotalClusterChargeROCSelection;                          //! transient
89   TH1F * fTotalClusterChargePartitionSelection;                    //! transient
90   TH1F * fQMaxPartitionAll;                                        //! transient
91   TH1F * fQMaxROCAll;                                              //! transient
92   TH1F * fNumberOfClusters;                                        //! transient
93   
94   Bool_t fPlotChargeOROCAll;                                       //! transient
95   Bool_t fPlotChargeIROCAll;                                       //! transient
96   Bool_t fPlotChargeROCSel;                                        //! transient
97   Bool_t fPlotChargePartSel;                                       //! transient
98   Bool_t fPlotQmaxPartAll;                                         //! transient
99   Bool_t fPlotQmaxROCAll;                                          //! transient
100   Bool_t fPlotNClusters;                                           //! transient
101  
102   ClassDef(AliHLTTPCClusterHistoComponent, 0);
103
104 };
105 #endif