]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCTrackHistoComponent.h
added new helper components to libAliHLTUtil (EsdCollector and AliHLTOUTPublisher...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCTrackHistoComponent.h
1 // XEmacs -*-C++-*-
2 // $Id$
3
4 #ifndef ALIHLTTPCTRACKHISTOCOMPONENT_H
5 #define ALIHLTTPCTRACKHISTOCOMPONENT_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   AliHLTTPCTrackHistoComponent.h
11     @author Gaute Ovrebekk
12     @date   
13     @brief  Component for ploting charge in clusters
14 */
15
16 #include "AliHLTProcessor.h"
17 #include "AliHLTTPCSpacePointData.h"
18 #include "AliHLTTPCTrackSegmentData.h"
19
20 class AliHLTTPCConfMapper;
21 class TH1F;
22
23 /**
24  * @class AliHLTTPCTrackHistoComponent
25  * Component for ploting proparties of Tracks. 
26  * There has to be uesd one argument, or the component will not plot anything.
27  * 
28  * Component ID: \b TPCTrackHisto <br>
29  * Library: \b libAliHLTTPC.
30  *
31  * Mandatory arguments: <br>
32  * 
33  * 
34  * Optional arguments: <br>
35  * 
36  * \li -plot-All <br>
37  *      Plots all the Histograms (default kFALSE) 
38  * \li -plot-nClusters <br>
39  *      Plots Number of Clusters on Tracks (default kFALSE)
40  * \li -plot-ChargeClusters <br>
41  *      Plots Charge on all Clusters (default kFALSE)
42  * \li -plot-ChargeUsedClusters <br>
43  *      Plots Charge on Clusters used for Tracks (default kFALSE)
44  * \li -plot-pT <br>
45  *      Plots pT for Tracks (default kFALSE)
46  * \li -plot-Residuals <br>
47  *      Plots Residual of Tracks (default kFALSE)
48  * \li -plot-Tgl <br>
49  *      Plots Tgl for tracks (default kFALSE)
50  * @ingroup alihlt_tpc
51  */
52 class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
53 {
54 public:
55   /** default constructor */
56   AliHLTTPCTrackHistoComponent();
57   /** destructor */
58   virtual ~AliHLTTPCTrackHistoComponent();
59
60   // Public functions to implement AliHLTComponent's interface.
61   // These functions are required for the registration process
62
63   /** interface function, see @ref AliHLTComponent for description */
64   const char* GetComponentID();
65   /** interface function, see @ref AliHLTComponent for description */
66   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
67   /** interface function, see @ref AliHLTComponent for description */
68   AliHLTComponentDataType GetOutputDataType();
69   /** interface function, see @ref AliHLTComponent for description */
70   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
71   /** interface function, see @ref AliHLTComponent for description */
72   AliHLTComponent* Spawn();
73
74 protected:
75
76   // Protected functions to implement AliHLTComponent's interface.
77   // These functions provide initialization as well as the actual processing
78   // capabilities of the component. 
79
80   /** interface function, see @ref AliHLTComponent for description */
81   int DoInit( int argc, const char** argv );
82   /** interface function, see @ref AliHLTComponent for description */
83   int DoDeinit();
84   /** interface function, see @ref AliHLTComponent for description */
85   int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
86
87   using AliHLTProcessor::DoEvent;
88   
89 private:
90   /** copy constructor prohibited */
91   AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&);
92   /** assignment operator prohibited */
93   AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&);
94   /**
95    * Configure the component.
96    * Parse a string for the configuration arguments and set the component
97    * properties.
98    */ 
99   int Configure(const char* arguments);
100  
101   void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
102
103   void PushHisto();
104  
105   TH1F * fHistoNClustersOnTracks;                                  //! transient
106   TH1F * fHistoAllClusters;                                        //! transient
107   TH1F * fHistoUsedClusters;                                       //! transient
108   TH1F * fHistoPT;                                                 //! transient
109   TH1F * fHistoResidual;                                           //! transient
110   TH1F * fHistoTgl;                                                //! transient
111   
112   Bool_t fPlotAll;                                                 //! transient 
113   Bool_t fPlotNClustersOnTracks;                                   //! transient 
114   Bool_t fPlotChargeClusters;                                      //! transient 
115   Bool_t fPlotChargeUsedClusters;                                  //! transient 
116   Bool_t fPlotPT;                                                  //! transient 
117   Bool_t fPlotResidual;                                            //! transient 
118   Bool_t fPlotTgl;                                                 //! transient 
119   
120   vector<AliHLTTPCSpacePointData> fClusters;                       //! transient
121   vector<AliHLTTPCTrackSegmentData> fTracks;                       //! transient
122   
123   vector<UInt_t> fTrackClusterID[36][6];                           //! transient
124
125   ClassDef(AliHLTTPCTrackHistoComponent, 0);
126
127 };
128 #endif