#ifndef ALIHLTTPCGLOBALMERGERCOMPONENT_H
#define ALIHLTTPCGLOBALMERGERCOMPONENT_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
+//* 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 AliHLTTPCGlobalMergerComponent.h
@author Timm Steinbeck, Matthias Richter
*/
#include "AliHLTProcessor.h"
-#include "AliHLTTPCDefinitions.h"
class AliHLTTPCGlobalMerger;
class AliHLTTPCVertex;
+/**
+ * @class AliHLTTPCGlobalMergerComponent
+ * The TPC global merger component
+ * The component is the interface to the AliHLTGlobalMerger processing
+ * class.
+ *
+ * @ingroup alihlt_tpc_components
+ */
class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
{
public:
- AliHLTTPCGlobalMergerComponent();
- virtual ~AliHLTTPCGlobalMergerComponent();
+ /** standard constructor */
+ AliHLTTPCGlobalMergerComponent();
+ /** standard destructor */
+ virtual ~AliHLTTPCGlobalMergerComponent();
// Public functions to implement AliHLTComponent's interface.
// These functions are required for the registration process
+ /** @see component interface AliHLTComponent::GetComponentID */
const char* GetComponentID();
- void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
+
+ /** @see component interface AliHLTComponent::GetInputDataTypes */
+ void GetInputDataTypes(AliHLTComponentDataTypeList& list);
+
+ /** @see component interface AliHLTComponent::GetOutputDataType */
AliHLTComponentDataType GetOutputDataType();
+
+ /** @see component interface AliHLTComponent::GetOutputDataSize */
virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
+
+ /** @see component interface AliHLTComponent::Spawn */
AliHLTComponent* Spawn();
protected:
+ /**
+ * Set the parameters
+ */
void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003,
Double_t maxpsi=0.1,Double_t maxtgl=0.05);
// These functions provide initialization as well as the actual processing
// capabilities of the component.
+
+ /** @see component interface AliHLTComponent::DoInit */
int DoInit( int argc, const char** argv );
+
+ /** @see component interface AliHLTComponent::DoDeinit */
int DoDeinit();
+
+ /** @see component interface @ref AliHLTProcessor::DoEvent */
int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
- AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
+ AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
+
+ using AliHLTProcessor::DoEvent;
private:
+ /** copy constructor prohibited */
+ AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&);
+ /** assignment operator prohibited */
+ AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&);
+ /** the global merger object */
AliHLTTPCGlobalMerger* fGlobalMerger; //!
+ /** the vertexer object */
AliHLTTPCVertex* fVertex; //!
- struct SliceData
- {
- int fSlice;
- const AliHLTComponentBlockData* fVertexBlock;
- unsigned fVertexBlockIndex;
- const AliHLTComponentBlockData* fTrackletBlock;
- unsigned fTrackletBlockIndex;
- };
+ struct SliceData {
+ /** slice no */
+ int fSlice; // see above
+ /** block descriptor for the vertex data block */
+ const AliHLTComponentBlockData* fVertexBlock; //! transient
+ /** index of the vertex data block */
+ unsigned fVertexBlockIndex; // see above
+ /** block descriptor for the tracklet data block */
+ const AliHLTComponentBlockData* fTrackletBlock; //! transient
+ /** index of the tracklet data block */
+ unsigned fTrackletBlockIndex; // see above
+ };
ClassDef(AliHLTTPCGlobalMergerComponent, 0)