]>
Commit | Line | Data |
---|---|---|
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 | |
a267c68e | 13 | @brief Component for track histo |
dadc7068 | 14 | */ |
15 | ||
16 | #include "AliHLTProcessor.h" | |
17 | #include "AliHLTTPCSpacePointData.h" | |
18 | #include "AliHLTTPCTrackSegmentData.h" | |
19 | ||
20 | class AliHLTTPCConfMapper; | |
a267c68e | 21 | class TNtuple; |
22 | class AliHLTTPCTrackArray; | |
dadc7068 | 23 | |
24 | /** | |
25 | * @class AliHLTTPCTrackHistoComponent | |
26 | * Component for ploting proparties of Tracks. | |
a267c68e | 27 | * The component gives out two NTuples. One for cluster- and one for track proprties |
dadc7068 | 28 | * |
a9f47f83 | 29 | * <h2>General properties:</h2> |
30 | * | |
dadc7068 | 31 | * Component ID: \b TPCTrackHisto <br> |
a090f4a6 | 32 | * Library: \b libAliHLTTPC.so <br> |
33 | * Input Data Types: AliHLTTPCDefinitions::fgkClustersDataType, | |
34 | * AliHLTTPCDefinitions::fgkTrackSegmentsDataType or | |
35 | * AliHLTTPCDefinitions::fgkTracksDataType <br> | |
a267c68e | 36 | * Output Data Types: @ref kAliHLTDataTypeNtuple <br> |
dadc7068 | 37 | * |
a9f47f83 | 38 | * <h2> Mandatory arguments: </h2> |
a267c68e | 39 | * \li No mandaroty arguments. |
dadc7068 | 40 | * |
a9f47f83 | 41 | * <h2> Optional arguments: </h2> |
dadc7068 | 42 | * |
a9f47f83 | 43 | * <h2>Configuration:</h2> |
44 | * | |
45 | * | |
46 | * <h2>Default CDB entries:</h2> | |
47 | * The component has for now no CDB entry | |
48 | * | |
49 | * <h2>Performance:</h2> | |
50 | * Not Tested | |
51 | * | |
52 | * <h2>Memory consumption:</h2> | |
53 | * Not Tested | |
54 | * | |
55 | * <h2>Output size:</h2> | |
a267c68e | 56 | * Size varibles in Ntuple |
a9f47f83 | 57 | * |
58 | * | |
59 | * | |
a090f4a6 | 60 | * @ingroup alihlt_tpc_components |
dadc7068 | 61 | */ |
62 | class AliHLTTPCTrackHistoComponent : public AliHLTProcessor | |
63 | { | |
64 | public: | |
65 | /** default constructor */ | |
66 | AliHLTTPCTrackHistoComponent(); | |
67 | /** destructor */ | |
68 | virtual ~AliHLTTPCTrackHistoComponent(); | |
69 | ||
70 | // Public functions to implement AliHLTComponent's interface. | |
71 | // These functions are required for the registration process | |
72 | ||
9783a5cf | 73 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 74 | const char* GetComponentID(); |
9783a5cf | 75 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 76 | void GetInputDataTypes(AliHLTComponentDataTypeList& list); |
9783a5cf | 77 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 78 | AliHLTComponentDataType GetOutputDataType(); |
9783a5cf | 79 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 80 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
9783a5cf | 81 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 82 | AliHLTComponent* Spawn(); |
83 | ||
84 | protected: | |
85 | ||
86 | // Protected functions to implement AliHLTComponent's interface. | |
87 | // These functions provide initialization as well as the actual processing | |
88 | // capabilities of the component. | |
89 | ||
9783a5cf | 90 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 91 | int DoInit( int argc, const char** argv ); |
9783a5cf | 92 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 93 | int DoDeinit(); |
9783a5cf | 94 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 95 | int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData ); |
96 | ||
97 | using AliHLTProcessor::DoEvent; | |
98 | ||
99 | private: | |
100 | /** copy constructor prohibited */ | |
101 | AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&); | |
102 | /** assignment operator prohibited */ | |
103 | AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&); | |
104 | /** | |
105 | * Configure the component. | |
106 | * Parse a string for the configuration arguments and set the component | |
107 | * properties. | |
108 | */ | |
109 | int Configure(const char* arguments); | |
110 | ||
111 | void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt); | |
112 | ||
113 | void PushHisto(); | |
a267c68e | 114 | void FillResidual( UInt_t pos,AliHLTUInt8_t slice,AliHLTUInt8_t patch,Float_t& resy,Float_t& resz); |
dadc7068 | 115 | |
a267c68e | 116 | TNtuple *fClusters; //! transient |
117 | TNtuple *fTracks; //! transient | |
a9f47f83 | 118 | |
dadc7068 | 119 | vector<UInt_t> fTrackClusterID[36][6]; //! transient |
120 | ||
a267c68e | 121 | AliHLTTPCTrackArray *fTracksArray; //! transient |
122 | AliHLTTPCSpacePointData *fClustersArray[36][6]; //! transient | |
123 | UInt_t fNcl[36][6]; //! transient | |
124 | ||
125 | ClassDef(AliHLTTPCTrackHistoComponent, 1); | |
dadc7068 | 126 | |
127 | }; | |
128 | #endif |