X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HLT%2FTPCLib%2FAliHLTTPCClusterFinderComponent.h;h=3b024b06892bd145b04ce6275d2c26f77b6c7bad;hb=8e2e1e722f7196d66486a02b9666f88468ed879a;hp=8d0d51d7b08b064254924bca13c26212f8db25fb;hpb=2a083ac4a12be2e438501cd150f0e1ce6d45e8a6;p=u%2Fmrichter%2FAliRoot.git diff --git a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h index 8d0d51d7b08..3b024b06892 100644 --- a/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h +++ b/HLT/TPCLib/AliHLTTPCClusterFinderComponent.h @@ -3,32 +3,47 @@ #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" -#include "AliHLTTPCDigitReaderRaw.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 + * - 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 + * 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 */ @@ -40,22 +55,23 @@ class AliHLTTPCClusterFinderComponent : public AliHLTProcessor * @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); - AliHLTComponentDataType 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. @@ -68,15 +84,21 @@ class AliHLTTPCClusterFinderComponent : public AliHLTProcessor 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 - bool fClusterDeconv; - float fXYClusterError; - float fZClusterError; + bool fClusterDeconv; //!transient + float fXYClusterError; //!transient + float fZClusterError; //!transient /** * switch to indicated the reader * use fPackedSwitch = true for packed inputtype "gkDDLPackedRawDataType" @@ -84,7 +106,31 @@ class AliHLTTPCClusterFinderComponent : public AliHLTProcessor */ 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