// XEmacs -*-C++-*- // $Id$ #ifndef ALIHLTTPCTRACKHISTOCOMPONENT_H #define ALIHLTTPCTRACKHISTOCOMPONENT_H //* This file is property of and copyright by the ALICE HLT Project * //* ALICE Experiment at CERN, All rights reserved. * //* See cxx source for full Copyright notice * /** @file AliHLTTPCTrackHistoComponent.h @author Gaute Ovrebekk @date @brief Component for track histo */ #include "AliHLTProcessor.h" #include "AliHLTTPCSpacePointData.h" #include "AliHLTTPCTrackSegmentData.h" class AliHLTTPCConfMapper; class TNtuple; class AliHLTTPCTrackArray; /** * @class AliHLTTPCTrackHistoComponent * Component for ploting proparties of Tracks. * The component gives out two NTuples. One for cluster- and one for track proprties * *

General properties:

* * Component ID: \b TPCTrackHisto
* Library: \b libAliHLTTPC.so
* Input Data Types: AliHLTTPCDefinitions::fgkClustersDataType, * AliHLTTPCDefinitions::fgkTrackSegmentsDataType or * AliHLTTPCDefinitions::fgkTracksDataType
* Output Data Types: ::kAliHLTDataTypeTNtuple
* *

Mandatory arguments:

* \li No mandaroty arguments. * *

Optional arguments:

* *

Configuration:

* * *

Default CDB entries:

* The component has for now no CDB entry * *

Performance:

* Not Tested * *

Memory consumption:

* Not Tested * *

Output size:

* Size varibles in Ntuple * * * * @ingroup alihlt_tpc_components */ class AliHLTTPCTrackHistoComponent : public AliHLTProcessor { public: /** default constructor */ AliHLTTPCTrackHistoComponent(); /** destructor */ virtual ~AliHLTTPCTrackHistoComponent(); // Public functions to implement AliHLTComponent's interface. // These functions are required for the registration process /** interface function, see AliHLTComponent for description */ const char* GetComponentID(); /** interface function, see AliHLTComponent for description */ void GetInputDataTypes(AliHLTComponentDataTypeList& list); /** interface function, see AliHLTComponent for description */ AliHLTComponentDataType GetOutputDataType(); /** interface function, see AliHLTComponent for description */ virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); /** interface function, see AliHLTComponent for description */ AliHLTComponent* Spawn(); protected: // Protected functions to implement AliHLTComponent's interface. // These functions provide initialization as well as the actual processing // capabilities of the component. /** interface function, see AliHLTComponent for description */ int DoInit( int argc, const char** argv ); /** interface function, see AliHLTComponent for description */ int DoDeinit(); /** interface function, see AliHLTComponent for description */ int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData ); using AliHLTProcessor::DoEvent; private: /** copy constructor prohibited */ AliHLTTPCTrackHistoComponent(const AliHLTTPCTrackHistoComponent&); /** assignment operator prohibited */ AliHLTTPCTrackHistoComponent& operator=(const AliHLTTPCTrackHistoComponent&); /** * Configure the component. * Parse a string for the configuration arguments and set the component * properties. */ int Configure(const char* arguments); void ReadTracks(const AliHLTComponentBlockData* iter,Int_t &tt); void PushHisto(); void FillResidual( UInt_t pos,AliHLTUInt8_t slice,AliHLTUInt8_t patch,Float_t& resy,Float_t& resz); TNtuple *fClusters; //! transient TNtuple *fTracks; //! transient vector fTrackClusterID[36][6]; //! transient AliHLTTPCTrackArray *fTracksArray; //! transient AliHLTTPCSpacePointData *fClustersArray[36][6]; //! transient UInt_t fNcl[36][6]; //! transient ClassDef(AliHLTTPCTrackHistoComponent, 1); }; #endif