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