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