]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCTrackMCMarkerComponent.h
removing old CF configurations, ids redirected to HWCF; global tracking option enable...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCTrackMCMarkerComponent.h
CommitLineData
e8f5ab18 1//-*- Mode: C++ -*-
2// $Id$
a6fb14f5 3// ************************************************************************
4// This file is property of and copyright by the ALICE HLT Project *
5// ALICE Experiment at CERN, All rights reserved. *
6// See cxx source for full Copyright notice *
7// *
8//*************************************************************************
9
a6fb14f5 10#ifndef ALIHLTTPTRACKMCMARKERCOMPONENT_H
11#define ALIHLTTPTRACKMCMARKERCOMPONENT_H
12
e8f5ab18 13/// @file AliHLTTPCTrackMCMarkerComponent.h
14/// @author Matthias Kretz
15/// @date
16/// @brief Marker component for TPC cluster mc labels.
17///
a6fb14f5 18
19#include "AliHLTProcessor.h"
d29671e2 20class AliHLTTPCClusterMCData;
a6fb14f5 21
22/**
23 * @class AliHLTTPCTrackMCMarkerComponent
24 * Assigns MC labels to the TPC tracks
25 */
26class AliHLTTPCTrackMCMarkerComponent : public AliHLTProcessor
27{
28 public:
29 /**
30 * Constructs a AliHLTTPCTrackMCMarkerComponent.
31 */
32 AliHLTTPCTrackMCMarkerComponent();
33
34 /**
35 * Destructs the AliHLTTPCTrackMCMarkerComponent
36 */
37 virtual ~AliHLTTPCTrackMCMarkerComponent() {};
38
39 // Public functions to implement AliHLTComponent's interface.
40 // These functions are required for the registration process
41
42 /**
43 * @copydoc AliHLTComponent::GetComponentID
44 */
45 const char *GetComponentID();
46
47 /**
48 * @copydoc AliHLTComponent::GetInputDataTypes
49 */
50 void GetInputDataTypes( AliHLTComponentDataTypeList &list );
51
52 /**
53 * @copydoc AliHLTComponent::GetOutputDataType
54 */
55 AliHLTComponentDataType GetOutputDataType();
56
57 /**
58 * @copydoc AliHLTComponent::GetOutputDataSize
59 */
60 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
61
62 /**
63 * @copydoc AliHLTComponent::Spawn
64 */
65 AliHLTComponent *Spawn();
66
67 protected:
68
69 // Protected functions to implement AliHLTComponent's interface.
70 // These functions provide initialization as well as the actual processing
71 // capabilities of the component.
72
73 /**
74 * @copydoc AliHLTComponent::DoInit
75 */
76 int DoInit( int argc, const char **argv );
77
78 /**
79 * @copydoc AliHLTComponent::DoDeinit
80 */
81 int DoDeinit();
82
83 /** reconfigure **/
84 int Reconfigure( const char* cdbEntry, const char* chainId );
85
86 /**
87 * @copydoc @ref AliHLTProcessor::DoEvent
88 */
89 int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
90 AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
91 AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
92
93 using AliHLTProcessor::DoEvent;
94
95 private:
96
97 static AliHLTTPCTrackMCMarkerComponent fgAliHLTTPCTrackMCMarkerComponent;
98
99 // disable copy
100 AliHLTTPCTrackMCMarkerComponent( const AliHLTTPCTrackMCMarkerComponent & );
101 AliHLTTPCTrackMCMarkerComponent &operator=( const AliHLTTPCTrackMCMarkerComponent & );
102
103 /** set configuration parameters **/
104 void SetDefaultConfiguration();
105 int ReadConfigurationString( const char* arguments );
106 int ReadCDBEntry( const char* cdbEntry, const char* chainId );
107 int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
108
109 /**
110 * Get MC label for a track
111 * @param hits array of track hit Id's
112 * @param nHits n of hits
113 * @return neg. -1 if failed
114 */
115 int GetTrackMCLabel( unsigned int *hits, int nHits );
116
117 /** array of pointers to cluster MC labels **/
118
d29671e2 119 AliHLTTPCClusterMCData *fClusterLabels[36*6]; //! cluster MC labels for each TPC patch
a6fb14f5 120
121 ClassDef( AliHLTTPCTrackMCMarkerComponent, 0 )
122};
123
124#endif