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 *
10 /** @file AliHLTTPCTrackHistoComponent.h
11 @author Gaute Ovrebekk
13 @brief Component for ploting charge in clusters
16 #include "AliHLTProcessor.h"
17 #include "AliHLTTPCSpacePointData.h"
18 #include "AliHLTTPCTrackSegmentData.h"
20 class AliHLTTPCConfMapper;
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.
28 * <h2>General properties:</h2>
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>
37 * <h2> Mandatory arguments: </h2>
38 * \li One of the Optional arguments.
40 * <h2> Optional arguments: </h2>
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)
51 * Plots pT for Tracks (default kFALSE)
52 * \li -plot-Residuals <br>
53 * Plots Residual of Tracks (default kFALSE)
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)
69 * <h2>Configuration:</h2>
72 * <h2>Default CDB entries:</h2>
73 * The component has for now no CDB entry
75 * <h2>Performance:</h2>
78 * <h2>Memory consumption:</h2>
81 * <h2>Output size:</h2>
82 * The size of an histogram (588 bit) * the number of histograms you plot
86 * @ingroup alihlt_tpc_components
88 class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
91 /** default constructor */
92 AliHLTTPCTrackHistoComponent();
94 virtual ~AliHLTTPCTrackHistoComponent();
96 // Public functions to implement AliHLTComponent's interface.
97 // These functions are required for the registration process
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();
112 // Protected functions to implement AliHLTComponent's interface.
113 // These functions provide initialization as well as the actual processing
114 // capabilities of the component.
116 /** interface function, see AliHLTComponent for description */
117 int DoInit( int argc, const char** argv );
118 /** interface function, see AliHLTComponent for description */
120 /** interface function, see AliHLTComponent for description */
121 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
123 using AliHLTProcessor::DoEvent;
126 /** copy constructor prohibited */
127 AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&);
128 /** assignment operator prohibited */
129 AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&);
131 * Configure the component.
132 * Parse a string for the configuration arguments and set the component
135 int Configure(const char* arguments);
137 void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
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
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
167 vector<AliHLTTPCSpacePointData> fClusters; //! transient
168 vector<AliHLTTPCTrackSegmentData> fTracks; //! transient
170 vector<UInt_t> fTrackClusterID[36][6]; //! transient
172 ClassDef(AliHLTTPCTrackHistoComponent, 0);