1 // ************************************************************************
2 // This file is property of and copyright by the ALICE HLT Project *
3 // ALICE Experiment at CERN, All rights reserved. *
4 // See cxx source for full Copyright notice *
6 //*************************************************************************
9 #ifndef ALIHLTTPTRACKMCMARKERCOMPONENT_H
10 #define ALIHLTTPTRACKMCMARKERCOMPONENT_H
12 /** @file AliHLTTPCTrackMCMarkerComponent.h
13 @author Matthias Kretz
15 @brief HLT TPC CA global merger component.
18 #include "AliHLTProcessor.h"
19 class AliHLTTPCClusterMCData;
22 * @class AliHLTTPCTrackMCMarkerComponent
23 * Assigns MC labels to the TPC tracks
25 class AliHLTTPCTrackMCMarkerComponent : public AliHLTProcessor
29 * Constructs a AliHLTTPCTrackMCMarkerComponent.
31 AliHLTTPCTrackMCMarkerComponent();
34 * Destructs the AliHLTTPCTrackMCMarkerComponent
36 virtual ~AliHLTTPCTrackMCMarkerComponent() {};
38 // Public functions to implement AliHLTComponent's interface.
39 // These functions are required for the registration process
42 * @copydoc AliHLTComponent::GetComponentID
44 const char *GetComponentID();
47 * @copydoc AliHLTComponent::GetInputDataTypes
49 void GetInputDataTypes( AliHLTComponentDataTypeList &list );
52 * @copydoc AliHLTComponent::GetOutputDataType
54 AliHLTComponentDataType GetOutputDataType();
57 * @copydoc AliHLTComponent::GetOutputDataSize
59 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
62 * @copydoc AliHLTComponent::Spawn
64 AliHLTComponent *Spawn();
68 // Protected functions to implement AliHLTComponent's interface.
69 // These functions provide initialization as well as the actual processing
70 // capabilities of the component.
73 * @copydoc AliHLTComponent::DoInit
75 int DoInit( int argc, const char **argv );
78 * @copydoc AliHLTComponent::DoDeinit
83 int Reconfigure( const char* cdbEntry, const char* chainId );
86 * @copydoc @ref AliHLTProcessor::DoEvent
88 int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
89 AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
90 AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
92 using AliHLTProcessor::DoEvent;
96 static AliHLTTPCTrackMCMarkerComponent fgAliHLTTPCTrackMCMarkerComponent;
99 AliHLTTPCTrackMCMarkerComponent( const AliHLTTPCTrackMCMarkerComponent & );
100 AliHLTTPCTrackMCMarkerComponent &operator=( const AliHLTTPCTrackMCMarkerComponent & );
102 /** set configuration parameters **/
103 void SetDefaultConfiguration();
104 int ReadConfigurationString( const char* arguments );
105 int ReadCDBEntry( const char* cdbEntry, const char* chainId );
106 int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
109 * Get MC label for a track
110 * @param hits array of track hit Id's
111 * @param nHits n of hits
112 * @return neg. -1 if failed
114 int GetTrackMCLabel( unsigned int *hits, int nHits );
116 /** array of pointers to cluster MC labels **/
118 AliHLTTPCClusterMCData *fClusterLabels[36*6]; //! cluster MC labels for each TPC patch
120 ClassDef( AliHLTTPCTrackMCMarkerComponent, 0 )