X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HLT%2FTPCLib%2FAliHLTTPCClusterFinderComponent.h;h=36e9f0eed5bb602b23c232ffd0ae27aba2afedee;hb=e67b06804c01cf6ce1011b195114782f185aad0d;hp=fd41c02185e6785ce68b694694628efc8e8ec95f;hpb=a6c02c859086baa09c104eba8886e2970781e516;p=u%2Fmrichter%2FAliRoot.git diff --git a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h index fd41c02185e..36e9f0eed5b 100644 --- a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h +++ b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h @@ -1,34 +1,81 @@ -// XEmacs -*-C++-*- // @(#) $Id$ #ifndef ALIHLTTPCCLUSTERFINDERCOMPONENT_H #define ALIHLTTPCCLUSTERFINDERCOMPONENT_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + +/* 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 */ -/* AliHLTTPCClusterFinderComponent - */ +/** @file AliHLTTPCClusterFinderComponent.h + @author Timm Steinbeck, Matthias Richter, Jochen Thaeder + @date + @brief The TPC cluster finder component. +*/ + +// see below for class documentation +// or +// refer to README to build package +// or +// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt #include "AliHLTProcessor.h" -#include "AliHLTTPCDefinitions.h" -class AliHLTTPCClustFinderNew; +class AliHLTTPCClusterFinder; +class AliHLTTPCPadArray; +class AliHLTTPCDigitReader; +/** + * @class AliHLTTPCClusterFinderComponent + * Implementation of the cluster finder component. + * The component implements the interface methods of the @ref AliHLTProcessor. + * The actual cluster finding algorithm is implemented in @ref AliHLTTPCClusterFinder. + * The component can handle unpacked and packed data of different formats via the + * AliHLTTPCDigitReader implementations. Two components are registered, the + * TPCClusterFinderUnpacked and the TPCClusterFinderPacked. The latter one can + * instantiate different digit readers depending on the arguments. + * + * The component has the following component arguments: + * - rawreadermode the mode for the @ref AliHLTTPCDigitReaderRaw, use -2 if using unsorted + * - adc-threshold ADC count threshold for zero suppression, if <0 the base line + * calculation and subtraction is switched off + * - pp-run set parameters specific to a pp run; currently this switches + * cluster deconvolution off for pp runs (not true for unsorted reading) + * - unsorted if 1 the data will be read unsorted in to a PadArray object. This should + * only be done on patch level since it use a lot of memory + * - patch specify on which patch to resd the data unsorted + * + * @ingroup alihlt_tpc + */ class AliHLTTPCClusterFinderComponent : public AliHLTProcessor { public: - AliHLTTPCClusterFinderComponent(); + /** + * constructor + * @param packed whether to use the packed or unpacked reader + */ + AliHLTTPCClusterFinderComponent(bool packed); + /** not a valid copy constructor, defined according to effective C++ style */ + AliHLTTPCClusterFinderComponent(const AliHLTTPCClusterFinderComponent&); + /** not a valid assignment op, but defined according to effective C++ style */ + AliHLTTPCClusterFinderComponent& operator=(const AliHLTTPCClusterFinderComponent&); + /** destructor */ virtual ~AliHLTTPCClusterFinderComponent(); // Public functions to implement AliHLTComponent's interface. // These functions are required for the registration process - const char* GetComponentID(); - void GetInputDataTypes( vector& list); - AliHLTComponent_DataType GetOutputDataType(); - virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); - AliHLTComponent* Spawn(); - + /** interface function, see @ref AliHLTComponent for description */ + const char* GetComponentID(); + /** interface function, see @ref AliHLTComponent for description */ + void GetInputDataTypes( vector& list); + /** interface function, see @ref AliHLTComponent for description */ + AliHLTComponentDataType GetOutputDataType(); + /** interface function, see @ref AliHLTComponent for description */ + virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); + /** interface function, see @ref AliHLTComponent for description */ + AliHLTComponent* Spawn(); + protected: // Protected functions to implement AliHLTComponent's interface. @@ -37,19 +84,45 @@ class AliHLTTPCClusterFinderComponent : public AliHLTProcessor int DoInit( int argc, const char** argv ); int DoDeinit(); - int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, - AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, - AliHLTUInt32_t& size, vector& outputBlocks ); + int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, + AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, + AliHLTUInt32_t& size, vector& outputBlocks ); private: + /** the cluster finder object */ + AliHLTTPCClusterFinder* fClusterFinder; //!transient + /** the reader object for data decoding */ + AliHLTTPCDigitReader* fReader; //!transient - AliHLTTPCClustFinderNew* fClusterFinder; + bool fClusterDeconv; //!transient + float fXYClusterError; //!transient + float fZClusterError; //!transient + /** + * switch to indicated the reader + * use fPackedSwitch = true for packed inputtype "gkDDLPackedRawDataType" + * use fPackedSwitch = false for unpacked inputtype "gkUnpackedRawDataType" + */ + Int_t fPackedSwitch; // see above + + /* + * Reads the data the new unsorted way if true + * + */ + Int_t fUnsorted; //!transient - bool fClusterDeconv; - float fXYClusterError; - float fZClusterError; - - ClassDef(AliHLTTPCClusterFinderComponent, 0) + /* + * Patch number to be read, currently given as component argument, + * will be changed later. + */ + Int_t fPatch; //!transient + + /* + * Pointer to a PadArray object containing a double array of all the pads in + * the current patch. + */ + AliHLTTPCPadArray * fPadArray; //!transient + + ClassDef(AliHLTTPCClusterFinderComponent, 1) }; #endif