Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
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 :
10 : #ifndef ALIHLTTPTRACKMCMARKERCOMPONENT_H
11 : #define ALIHLTTPTRACKMCMARKERCOMPONENT_H
12 :
13 : /// @file AliHLTTPCTrackMCMarkerComponent.h
14 : /// @author Matthias Kretz
15 : /// @date
16 : /// @brief Marker component for TPC cluster mc labels.
17 : ///
18 :
19 : #include "AliHLTProcessor.h"
20 : class AliHLTTPCClusterMCData;
21 :
22 : /**
23 : * @class AliHLTTPCTrackMCMarkerComponent
24 : * Assigns MC labels to the TPC tracks
25 : */
26 : class AliHLTTPCTrackMCMarkerComponent : public AliHLTProcessor
27 : {
28 : public:
29 : /**
30 : * Constructs a AliHLTTPCTrackMCMarkerComponent.
31 : */
32 : AliHLTTPCTrackMCMarkerComponent();
33 :
34 : /**
35 : * Destructs the AliHLTTPCTrackMCMarkerComponent
36 : */
37 18 : 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 :
119 : AliHLTTPCClusterMCData *fClusterLabels[36*6]; //! cluster MC labels for each TPC patch
120 :
121 6 : ClassDef( AliHLTTPCTrackMCMarkerComponent, 0 )
122 : };
123 :
124 : #endif
|