]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCTrackMCMarkerComponent.h
Qmax for merged clusters fixed
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCTrackMCMarkerComponent.h
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 class AliHLTTPCClusterMCData;
20
21 /**
22  * @class AliHLTTPCTrackMCMarkerComponent
23  * Assigns MC labels to the TPC tracks 
24  */
25 class 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     AliHLTTPCClusterMCData *fClusterLabels[36*6]; //! cluster MC labels for each TPC patch
119
120     ClassDef( AliHLTTPCTrackMCMarkerComponent, 0 )
121 };
122
123 #endif