]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCTrackHistoComponent.h
added skeleton for HLTpendolino library
[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>
a090f4a6 31 * Library: \b libAliHLTTPC.so <br>
32 * Input Data Types: AliHLTTPCDefinitions::fgkClustersDataType,
33 * AliHLTTPCDefinitions::fgkTrackSegmentsDataType or
34 * AliHLTTPCDefinitions::fgkTracksDataType <br>
a9f47f83 35 * Output Data Types: @ref kAliHLTDataTypeHistogram <br>
dadc7068 36 *
a9f47f83 37 * <h2> Mandatory arguments: </h2>
38 * \li One of the Optional arguments.
dadc7068 39 *
a9f47f83 40 * <h2> Optional arguments: </h2>
dadc7068 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)
a9f47f83 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 *
67 *
68 * <h2>Configuration:</h2>
69 *
70 *
71 * <h2>Default CDB entries:</h2>
72 * The component has for now no CDB entry
73 *
74 * <h2>Performance:</h2>
75 * Not Tested
76 *
77 * <h2>Memory consumption:</h2>
78 * Not Tested
79 *
80 * <h2>Output size:</h2>
81 * The size of an histogram (588 bit) * the number of histograms you plot
82 *
83 *
84 *
a090f4a6 85 * @ingroup alihlt_tpc_components
dadc7068 86 */
87class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
88{
89public:
90 /** default constructor */
91 AliHLTTPCTrackHistoComponent();
92 /** destructor */
93 virtual ~AliHLTTPCTrackHistoComponent();
94
95 // Public functions to implement AliHLTComponent's interface.
96 // These functions are required for the registration process
97
98 /** interface function, see @ref AliHLTComponent for description */
99 const char* GetComponentID();
100 /** interface function, see @ref AliHLTComponent for description */
101 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
102 /** interface function, see @ref AliHLTComponent for description */
103 AliHLTComponentDataType GetOutputDataType();
104 /** interface function, see @ref AliHLTComponent for description */
105 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
106 /** interface function, see @ref AliHLTComponent for description */
107 AliHLTComponent* Spawn();
108
109protected:
110
111 // Protected functions to implement AliHLTComponent's interface.
112 // These functions provide initialization as well as the actual processing
113 // capabilities of the component.
114
115 /** interface function, see @ref AliHLTComponent for description */
116 int DoInit( int argc, const char** argv );
117 /** interface function, see @ref AliHLTComponent for description */
118 int DoDeinit();
119 /** interface function, see @ref AliHLTComponent for description */
120 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
121
122 using AliHLTProcessor::DoEvent;
123
124private:
125 /** copy constructor prohibited */
126 AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&);
127 /** assignment operator prohibited */
128 AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&);
129 /**
130 * Configure the component.
131 * Parse a string for the configuration arguments and set the component
132 * properties.
133 */
134 int Configure(const char* arguments);
135
136 void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
137
138 void PushHisto();
139
140 TH1F * fHistoNClustersOnTracks; //! transient
a9f47f83 141 TH1F * fHistoChargeAllClusters; //! transient
142 TH1F * fHistoChargeUsedClusters; //! transient
dadc7068 143 TH1F * fHistoPT; //! transient
144 TH1F * fHistoResidual; //! transient
145 TH1F * fHistoTgl; //! transient
a9f47f83 146 TH1F * fHistoNClusters; //! transient
147 TH1F * fHistoNUsedClusters; //! transient
148 TH1F * fHistoNTracks; //! transient
149 TH1F * fHistoQMaxAllClusters; //! transient
150 TH1F * fHistoQMaxUsedClusters; //! transient
dadc7068 151
152 Bool_t fPlotAll; //! transient
153 Bool_t fPlotNClustersOnTracks; //! transient
154 Bool_t fPlotChargeClusters; //! transient
155 Bool_t fPlotChargeUsedClusters; //! transient
156 Bool_t fPlotPT; //! transient
157 Bool_t fPlotResidual; //! transient
158 Bool_t fPlotTgl; //! transient
a9f47f83 159 Bool_t fPlotNClusters; //! transient
160 Bool_t fPlotNUsedClusters; //! transient
161 Bool_t fPlotNTracks; //! transient
162 Bool_t fPlotQMaxClusters; //! transient
163 Bool_t fPlotQMaxUsedClusters; //! transient
164
dadc7068 165 vector<AliHLTTPCSpacePointData> fClusters; //! transient
166 vector<AliHLTTPCTrackSegmentData> fTracks; //! transient
167
168 vector<UInt_t> fTrackClusterID[36][6]; //! transient
169
170 ClassDef(AliHLTTPCTrackHistoComponent, 0);
171
172};
173#endif