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 track histo
16 #include "AliHLTProcessor.h"
17 #include "AliHLTTPCSpacePointData.h"
18 #include "AliHLTTPCTrackSegmentData.h"
20 class AliHLTTPCConfMapper;
22 class AliHLTTPCTrackArray;
25 * @class AliHLTTPCTrackHistoComponent
26 * Component for ploting proparties of Tracks.
27 * The component gives out two NTuples. One for cluster- and one for track proprties
29 * <h2>General properties:</h2>
31 * Component ID: \b TPCTrackHisto <br>
32 * Library: \b libAliHLTTPC.so <br>
33 * Input Data Types: AliHLTTPCDefinitions::fgkClustersDataType,
34 * AliHLTTPCDefinitions::fgkTrackSegmentsDataType or
35 * AliHLTTPCDefinitions::fgkTracksDataType <br>
36 * Output Data Types: ::kAliHLTDataTypeTNtuple <br>
38 * <h2> Mandatory arguments: </h2>
39 * \li No mandaroty arguments.
41 * <h2> Optional arguments: </h2>
43 * <h2>Configuration:</h2>
46 * <h2>Default CDB entries:</h2>
47 * The component has for now no CDB entry
49 * <h2>Performance:</h2>
52 * <h2>Memory consumption:</h2>
55 * <h2>Output size:</h2>
56 * Size varibles in Ntuple
60 * @ingroup alihlt_tpc_components
62 class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
65 /** default constructor */
66 AliHLTTPCTrackHistoComponent();
68 virtual ~AliHLTTPCTrackHistoComponent();
70 // Public functions to implement AliHLTComponent's interface.
71 // These functions are required for the registration process
73 /** interface function, see AliHLTComponent for description */
74 const char* GetComponentID();
75 /** interface function, see AliHLTComponent for description */
76 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
77 /** interface function, see AliHLTComponent for description */
78 AliHLTComponentDataType GetOutputDataType();
79 /** interface function, see AliHLTComponent for description */
80 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
81 /** interface function, see AliHLTComponent for description */
82 AliHLTComponent* Spawn();
86 // Protected functions to implement AliHLTComponent's interface.
87 // These functions provide initialization as well as the actual processing
88 // capabilities of the component.
90 /** interface function, see AliHLTComponent for description */
91 int DoInit( int argc, const char** argv );
92 /** interface function, see AliHLTComponent for description */
94 /** interface function, see AliHLTComponent for description */
95 int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
97 using AliHLTProcessor::DoEvent;
100 /** copy constructor prohibited */
101 AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&);
102 /** assignment operator prohibited */
103 AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&);
105 * Configure the component.
106 * Parse a string for the configuration arguments and set the component
109 int Configure(const char* arguments);
111 void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt);
114 void FillResidual( UInt_t pos,AliHLTUInt8_t slice,AliHLTUInt8_t patch,Float_t& resy,Float_t& resz);
116 AliHLTUInt8_t fMinSlice; //! transient
117 AliHLTUInt8_t fMaxSlice; //! transient
118 AliHLTUInt8_t fMinPartition; //! transient
119 AliHLTUInt8_t fMaxPartition; //! transient
121 TNtuple *fClusters; //! transient
122 TNtuple *fTracks; //! transient
124 vector<UInt_t> fTrackClusterID[36][6]; //! transient
126 AliHLTTPCTrackArray *fTracksArray; //! transient
127 AliHLTTPCSpacePointData *fClustersArray[36][6]; //! transient
128 UInt_t fNSpacePoints[36][6]; //! transient
130 ClassDef(AliHLTTPCTrackHistoComponent, 1);