]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCTrackMCMarkerComponent.h
Cleaning up ClassDef. Should have the version == 0 for the algorithmic classes like...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCTrackMCMarkerComponent.h
CommitLineData
a6fb14f5 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 *
5// *
6//*************************************************************************
7
8
9#ifndef ALIHLTTPTRACKMCMARKERCOMPONENT_H
10#define ALIHLTTPTRACKMCMARKERCOMPONENT_H
11
12/** @file AliHLTTPCTrackMCMarkerComponent.h
13 @author Matthias Kretz
14 @date
15 @brief HLT TPC CA global merger component.
16*/
17
18#include "AliHLTProcessor.h"
19#include "AliHLTTPCClusterFinder.h"
20
21/**
22 * @class AliHLTTPCTrackMCMarkerComponent
23 * Assigns MC labels to the TPC tracks
24 */
25class AliHLTTPCTrackMCMarkerComponent : public AliHLTProcessor
26{
27 public:
28 /**
29 * Constructs a AliHLTTPCTrackMCMarkerComponent.
30 */
31 AliHLTTPCTrackMCMarkerComponent();
32
33 /**
34 * Destructs the AliHLTTPCTrackMCMarkerComponent
35 */
36 virtual ~AliHLTTPCTrackMCMarkerComponent() {};
37
38 // Public functions to implement AliHLTComponent's interface.
39 // These functions are required for the registration process
40
41 /**
42 * @copydoc AliHLTComponent::GetComponentID
43 */
44 const char *GetComponentID();
45
46 /**
47 * @copydoc AliHLTComponent::GetInputDataTypes
48 */
49 void GetInputDataTypes( AliHLTComponentDataTypeList &list );
50
51 /**
52 * @copydoc AliHLTComponent::GetOutputDataType
53 */
54 AliHLTComponentDataType GetOutputDataType();
55
56 /**
57 * @copydoc AliHLTComponent::GetOutputDataSize
58 */
59 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
60
61 /**
62 * @copydoc AliHLTComponent::Spawn
63 */
64 AliHLTComponent *Spawn();
65
66 protected:
67
68 // Protected functions to implement AliHLTComponent's interface.
69 // These functions provide initialization as well as the actual processing
70 // capabilities of the component.
71
72 /**
73 * @copydoc AliHLTComponent::DoInit
74 */
75 int DoInit( int argc, const char **argv );
76
77 /**
78 * @copydoc AliHLTComponent::DoDeinit
79 */
80 int DoDeinit();
81
82 /** reconfigure **/
83 int Reconfigure( const char* cdbEntry, const char* chainId );
84
85 /**
86 * @copydoc @ref AliHLTProcessor::DoEvent
87 */
88 int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
89 AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
90 AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
91
92 using AliHLTProcessor::DoEvent;
93
94 private:
95
96 static AliHLTTPCTrackMCMarkerComponent fgAliHLTTPCTrackMCMarkerComponent;
97
98 // disable copy
99 AliHLTTPCTrackMCMarkerComponent( const AliHLTTPCTrackMCMarkerComponent & );
100 AliHLTTPCTrackMCMarkerComponent &operator=( const AliHLTTPCTrackMCMarkerComponent & );
101
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 );
107
108 /**
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
113 */
114 int GetTrackMCLabel( unsigned int *hits, int nHits );
115
116 /** array of pointers to cluster MC labels **/
117
118 AliHLTTPCClusterFinder::ClusterMCInfo *fClusterLabels[36*6]; //! cluster MC labels for each TPC patch
119 Int_t fNClusterLabels[36*6]; //! Number of MC labels, for check of consistensy
120
121 ClassDef( AliHLTTPCTrackMCMarkerComponent, 0 )
122};
123
124#endif