]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCTrackHistoComponent.h
correcting doxygen warnings
[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  * <h2>General properties:</h2> 
29  *
30  * Component ID: \b TPCTrackHisto <br>
31  * Library: \b libAliHLTTPC.so <br>
32  * Input Data Types: AliHLTTPCDefinitions::fgkClustersDataType,
33  *                   AliHLTTPCDefinitions::fgkTrackSegmentsDataType or
34  *                   AliHLTTPCDefinitions::fgkTracksDataType <br>
35  * Output Data Types: @ref kAliHLTDataTypeHistogram <br> 
36  *
37  * <h2> Mandatory arguments: </h2>
38  * \li One of the Optional arguments.
39  * 
40  * <h2> Optional arguments: </h2>
41  * 
42  * \li -plot-All <br>
43  *      Plots all the Histograms (default kFALSE) 
44  * \li -plot-nClusters <br>
45  *      Plots Number of Clusters on Tracks (default kFALSE)
46  * \li -plot-ChargeClusters <br>
47  *      Plots Charge on all Clusters (default kFALSE)
48  * \li -plot-ChargeUsedClusters <br>
49  *      Plots Charge on Clusters used for Tracks (default kFALSE)
50  * \li -plot-pT <br>
51  *      Plots pT for Tracks (default kFALSE)
52  * \li -plot-Residuals <br>
53  *      Plots Residual of Tracks (default kFALSE)
54  * \li -plot-Tgl <br>
55  *      Plots Tgl for tracks (default kFALSE)
56  * \li -plot-NClusters <br>
57  *      Plots the number of clusters in the event (default kFALSE)
58  * \li -plot-NUsedClusters <br>
59  *      Plots th number of Used clusters in the event (default kFALSE)
60  * \li -plot-NTracks <br>
61  *      Plots the number of Tracks in the event (default kFALSE)
62  * \li -plot-QMaxAll <br>
63  *      Plots the Q Max for all clusters in the event (default kFALSE)
64  * \li -plot-QMaxUsed <br>
65  *      Plots the Q Max for clusters used on tracks (default kFALSE)
66  * \li -reset-plots <br>
67  *      Will reset the plots for every event (default kFALSE)
68  *
69  * <h2>Configuration:</h2>
70  * 
71  *
72  * <h2>Default CDB entries:</h2>
73  * The component has for now no CDB entry
74  *
75  * <h2>Performance:</h2>
76  * Not Tested 
77  *
78  * <h2>Memory consumption:</h2>
79  * Not Tested
80  *
81  * <h2>Output size:</h2>
82  * The size of an histogram (588 bit) * the number of histograms you plot
83  *
84  * 
85  *
86  * @ingroup alihlt_tpc_components
87  */
88 class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
89 {
90 public:
91   /** default constructor */
92   AliHLTTPCTrackHistoComponent();
93   /** destructor */
94   virtual ~AliHLTTPCTrackHistoComponent();
95
96   // Public functions to implement AliHLTComponent's interface.
97   // These functions are required for the registration process
98
99   /** interface function, see AliHLTComponent for description */
100   const char* GetComponentID();
101   /** interface function, see AliHLTComponent for description */
102   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
103   /** interface function, see AliHLTComponent for description */
104   AliHLTComponentDataType GetOutputDataType();
105   /** interface function, see AliHLTComponent for description */
106   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
107   /** interface function, see AliHLTComponent for description */
108   AliHLTComponent* Spawn();
109
110 protected:
111
112   // Protected functions to implement AliHLTComponent's interface.
113   // These functions provide initialization as well as the actual processing
114   // capabilities of the component. 
115
116   /** interface function, see AliHLTComponent for description */
117   int DoInit( int argc, const char** argv );
118   /** interface function, see AliHLTComponent for description */
119   int DoDeinit();
120   /** interface function, see AliHLTComponent for description */
121   int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
122
123   using AliHLTProcessor::DoEvent;
124   
125 private:
126   /** copy constructor prohibited */
127   AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&);
128   /** assignment operator prohibited */
129   AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&);
130   /**
131    * Configure the component.
132    * Parse a string for the configuration arguments and set the component
133    * properties.
134    */ 
135   int Configure(const char* arguments);
136  
137   void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
138
139   void PushHisto();
140  
141   TH1F * fHistoNClustersOnTracks;                                  //! transient
142   TH1F * fHistoChargeAllClusters;                                  //! transient
143   TH1F * fHistoChargeUsedClusters;                                 //! transient
144   TH1F * fHistoPT;                                                 //! transient
145   TH1F * fHistoResidual;                                           //! transient
146   TH1F * fHistoTgl;                                                //! transient
147   TH1F * fHistoNClusters;                                          //! transient
148   TH1F * fHistoNUsedClusters;                                      //! transient
149   TH1F * fHistoNTracks;                                            //! transient 
150   TH1F * fHistoQMaxAllClusters;                                    //! transient
151   TH1F * fHistoQMaxUsedClusters;                                   //! transient
152   
153   Bool_t fPlotAll;                                                 //! transient 
154   Bool_t fPlotNClustersOnTracks;                                   //! transient 
155   Bool_t fPlotChargeClusters;                                      //! transient 
156   Bool_t fPlotChargeUsedClusters;                                  //! transient 
157   Bool_t fPlotPT;                                                  //! transient 
158   Bool_t fPlotResidual;                                            //! transient 
159   Bool_t fPlotTgl;                                                 //! transient 
160   Bool_t fPlotNClusters;                                           //! transient
161   Bool_t fPlotNUsedClusters;                                       //! transient
162   Bool_t fPlotNTracks;                                             //! transient
163   Bool_t fPlotQMaxClusters;                                        //! transient
164   Bool_t fPlotQMaxUsedClusters;                                    //! transient
165   Bool_t fResetPlots;                                              //! transient
166
167   vector<AliHLTTPCSpacePointData> fClusters;                       //! transient
168   vector<AliHLTTPCTrackSegmentData> fTracks;                       //! transient
169   
170   vector<UInt_t> fTrackClusterID[36][6];                           //! transient
171
172   ClassDef(AliHLTTPCTrackHistoComponent, 0);
173
174 };
175 #endif