]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCTrackHistoComponent.h
Update master to aliroot
[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
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 19class TNtuple;
2c95fda7 20class TH1F;
f53b49dd 21class 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 */
58class AliHLTTPCTrackHistoComponent : public AliHLTProcessor
59{
60public:
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
84protected:
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
103private:
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