X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HLT%2FTPCLib%2FAliHLTTPCClusterFinderComponent.h;h=3b024b06892bd145b04ce6275d2c26f77b6c7bad;hb=8e2e1e722f7196d66486a02b9666f88468ed879a;hp=6b7cd8472636849806916fb2e5d5ef4e6a269bd5;hpb=738c049f9281463b26ae9274c5c23f7a3875553a;p=u%2Fmrichter%2FAliRoot.git diff --git a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h index 6b7cd847263..3b024b06892 100644 --- a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h +++ b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h @@ -3,34 +3,75 @@ #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" -#include "AliHLTTPCDigitReaderPacked.h" -#include "AliHLTTPCDigitReaderUnpacked.h" 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: + /** + * constructor + * @param packed whether to use the packed or unpacked reader + */ AliHLTTPCClusterFinderComponent(bool packed); + /** 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. @@ -39,21 +80,57 @@ 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 ); + using AliHLTProcessor::DoEvent; + private: + /** copy constructor prohibited */ + AliHLTTPCClusterFinderComponent(const AliHLTTPCClusterFinderComponent&); + /** assignment operator prohibited */ + AliHLTTPCClusterFinderComponent& operator=(const AliHLTTPCClusterFinderComponent&); + /** the cluster finder object */ + AliHLTTPCClusterFinder* fClusterFinder; //!transient + /** the reader object for data decoding */ + AliHLTTPCDigitReader* fReader; //!transient - AliHLTTPCClusterFinder* fClusterFinder; - AliHLTTPCDigitReaderPacked* fReaderPacked; - AliHLTTPCDigitReaderUnpacked* fReaderUnpacked; - bool fClusterDeconv; - float fXYClusterError; - float fZClusterError; - Int_t fPackedSwitch; + 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 - ClassDef(AliHLTTPCClusterFinderComponent, 0) + /* + * Reads the data the new unsorted way if true + * + */ + Int_t fUnsorted; //!transient + + /* + * Patch number to be read, currently given as component argument, + * will be changed later. + */ + Int_t fPatch; //!transient + + /* + * Switch to specify if one ship out a list of active pads. + * Used for the 2007 December run. + */ + Int_t fGetActivePads; //!transient + + /* + * Pointer to a PadArray object containing a double array of all the pads in + * the current patch. + */ + AliHLTTPCPadArray * fPadArray; //!transient + + ClassDef(AliHLTTPCClusterFinderComponent, 2) }; #endif