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 * Component ID: \b TPCTrackHisto <br>
29 * Library: \b libAliHLTTPC.
31 * Mandatory arguments: <br>
34 * Optional arguments: <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)
45 * Plots pT for Tracks (default kFALSE)
46 * \li -plot-Residuals <br>
47 * Plots Residual of Tracks (default kFALSE)
49 * Plots Tgl for tracks (default kFALSE)
52 class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
55 /** default constructor */
56 AliHLTTPCTrackHistoComponent();
58 virtual ~AliHLTTPCTrackHistoComponent();
60 // Public functions to implement AliHLTComponent's interface.
61 // These functions are required for the registration process
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();
76 // Protected functions to implement AliHLTComponent's interface.
77 // These functions provide initialization as well as the actual processing
78 // capabilities of the component.
80 /** interface function, see @ref AliHLTComponent for description */
81 int DoInit( int argc, const char** argv );
82 /** interface function, see @ref AliHLTComponent for description */
84 /** interface function, see @ref AliHLTComponent for description */
85 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
87 using AliHLTProcessor::DoEvent;
90 /** copy constructor prohibited */
91 AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&);
92 /** assignment operator prohibited */
93 AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&);
95 * Configure the component.
96 * Parse a string for the configuration arguments and set the component
99 int Configure(const char* arguments);
101 void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
105 TH1F * fHistoNClustersOnTracks; //! transient
106 TH1F * fHistoAllClusters; //! transient
107 TH1F * fHistoUsedClusters; //! transient
108 TH1F * fHistoPT; //! transient
109 TH1F * fHistoResidual; //! transient
110 TH1F * fHistoTgl; //! transient
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
120 vector<AliHLTTPCSpacePointData> fClusters; //! transient
121 vector<AliHLTTPCTrackSegmentData> fTracks; //! transient
123 vector<UInt_t> fTrackClusterID[36][6]; //! transient
125 ClassDef(AliHLTTPCTrackHistoComponent, 0);