removing deprecated components from registration
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCTrackHistoComponent.h
CommitLineData
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 20class TNtuple;
2c95fda7 21class TH1F;
f53b49dd 22class 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 */
59class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
60{
61public:
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
85protected:
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
104private:
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