]>
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 | ||
a267c68e | 20 | class TNtuple; |
2c95fda7 | 21 | class TH1F; |
f53b49dd | 22 | class TProfile; |
dadc7068 | 23 | |
24 | /** | |
25 | * @class AliHLTTPCTrackHistoComponent | |
14b31e2b | 26 | * Component for plotting proparties of Tracks. |
27 | * The component gives out 2 NTuples. One for cluster and one for track properties | |
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, | |
a090f4a6 | 34 | * AliHLTTPCDefinitions::fgkTracksDataType <br> |
60b7c556 | 35 | * Output Data Types: ::kAliHLTDataTypeTNtuple <br> |
dadc7068 | 36 | * |
a9f47f83 | 37 | * <h2> Mandatory arguments: </h2> |
a267c68e | 38 | * \li No mandaroty arguments. |
dadc7068 | 39 | * |
a9f47f83 | 40 | * <h2> Optional arguments: </h2> |
dadc7068 | 41 | * |
a9f47f83 | 42 | * <h2>Configuration:</h2> |
43 | * | |
44 | * | |
45 | * <h2>Default CDB entries:</h2> | |
46 | * The component has for now no CDB entry | |
47 | * | |
48 | * <h2>Performance:</h2> | |
49 | * Not Tested | |
50 | * | |
51 | * <h2>Memory consumption:</h2> | |
52 | * Not Tested | |
53 | * | |
54 | * <h2>Output size:</h2> | |
f53b49dd | 55 | * Size variables in Ntuple |
a9f47f83 | 56 | * |
a090f4a6 | 57 | * @ingroup alihlt_tpc_components |
dadc7068 | 58 | */ |
59 | class AliHLTTPCTrackHistoComponent : public AliHLTProcessor | |
60 | { | |
61 | public: | |
62 | /** default constructor */ | |
63 | AliHLTTPCTrackHistoComponent(); | |
64 | /** destructor */ | |
65 | virtual ~AliHLTTPCTrackHistoComponent(); | |
66 | ||
67 | // Public functions to implement AliHLTComponent's interface. | |
68 | // These functions are required for the registration process | |
69 | ||
9783a5cf | 70 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 71 | const char* GetComponentID(); |
9783a5cf | 72 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 73 | void GetInputDataTypes(AliHLTComponentDataTypeList& list); |
9783a5cf | 74 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 75 | AliHLTComponentDataType GetOutputDataType(); |
9783a5cf | 76 | /** interface function, see AliHLTComponent for description */ |
2c95fda7 | 77 | int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList); |
78 | /** interface function, see AliHLTComponent for description */ | |
dadc7068 | 79 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
9783a5cf | 80 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 81 | AliHLTComponent* Spawn(); |
05b3c8b1 | 82 | /** interface function, see @ref AliHLTComponent for description */ |
83 | void GetOCDBObjectDescription( TMap* const targetMap); | |
dadc7068 | 84 | |
85 | protected: | |
86 | ||
87 | // Protected functions to implement AliHLTComponent's interface. | |
88 | // These functions provide initialization as well as the actual processing | |
89 | // capabilities of the component. | |
90 | ||
9783a5cf | 91 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 92 | int DoInit( int argc, const char** argv ); |
9783a5cf | 93 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 94 | int DoDeinit(); |
9783a5cf | 95 | /** interface function, see AliHLTComponent for description */ |
dadc7068 | 96 | int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData ); |
97fdadce | 97 | /** inherited from AliHLTComponent: handle re-configuration event */ |
98 | int Reconfigure(const char* cdbEntry, const char* chainId); | |
99 | /** inherited from AliHLTComponent, scan one argument and its parameters */ | |
100 | int ScanConfigurationArgument(int argc, const char** argv); | |
dadc7068 | 101 | |
102 | using AliHLTProcessor::DoEvent; | |
103 | ||
104 | private: | |
105 | /** copy constructor prohibited */ | |
106 | AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&); | |
107 | /** assignment operator prohibited */ | |
108 | AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&); | |
109 | /** | |
110 | * Configure the component. | |
111 | * Parse a string for the configuration arguments and set the component | |
112 | * properties. | |
113 | */ | |
f53b49dd | 114 | |
dadc7068 | 115 | void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt); |
116 | ||
117 | void PushHisto(); | |
118 | ||
2c95fda7 | 119 | Int_t fNEvents; //! transient |
120 | Int_t fNtotTracks; //! transient | |
121 | ||
f53b49dd | 122 | Int_t fEvtMod; //! number of events reached to reset the counter |
97fdadce | 123 | Int_t fBufferSize; //! size of circular buffer (number of entries) for the ntuples |
f53b49dd | 124 | Bool_t fdEdx; //! plot dEdx |
2c95fda7 | 125 | // Bool_t fReset; //! Reset track counter every certain events |
126 | ||
127 | TH1F *fMeanMultiplicity; //! transient (mean multiplicity for every 20 evts vs. #evt by Z.Y.) | |
128 | TH1F *fMultiplicity; //! transient (track multiplicity by Z.Y.) | |
14b31e2b | 129 | //TH1F *fdNdEta; //! transient (dN/dEta) |
2c95fda7 | 130 | |
97fdadce | 131 | //TH2F *fNClusterVsXY; //! transient (#Clusters vs. x, y positions, by ZY) |
132 | //TH2F *fChargeVsXY; //! transient (Charge distr. vs. x, y added by ZY) | |
f53b49dd | 133 | TProfile *fDeDxVsP; //! transient (dEdX vs. p) |
2c95fda7 | 134 | |
e2a9091e | 135 | TNtuple *fClusters; //! transient |
136 | TNtuple *fTracks; //! transient | |
a9f47f83 | 137 | |
e2a9091e | 138 | AliHLTTPCSpacePointData *fClustersArray[36][6]; //! transient |
139 | UInt_t fNSpacePoints[36][6]; //! transient | |
97fdadce | 140 | |
141 | /** the default configuration entry for this component */ | |
142 | static const char* fgkOCDBEntry; //!transient | |
dadc7068 | 143 | |
22240104 | 144 | ClassDef(AliHLTTPCTrackHistoComponent, 0); |
dadc7068 | 145 | |
146 | }; | |
147 | #endif |