]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCAGlobalMergerComponent.h
1. bug fix: skip the final transport of tracks to the inner TPC X, when the tracks...
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAGlobalMergerComponent.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 ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
10 #define ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
11
12 /** @file   AliHLTTPCCAGlobalMergerComponent.h
13     @author Matthias Kretz
14     @date
15     @brief  HLT TPC CA global merger component.
16 */
17
18 #include "AliHLTProcessor.h"
19
20 class AliHLTTPCCAMerger;
21 class AliHLTTPCVertex;
22
23 /**
24  * @class AliHLTTPCCAGlobalMergerComponent
25  * The TPC global merger component
26  *
27  * Interface to the global merger of the CA tracker for HLT.
28  */
29 class AliHLTTPCCAGlobalMergerComponent : public AliHLTProcessor
30 {
31   public:
32     /**
33      * Constructs a AliHLTTPCCAGlobalMergerComponent.
34      */
35     AliHLTTPCCAGlobalMergerComponent();
36
37     /**
38      * Destructs the AliHLTTPCCAGlobalMergerComponent
39      */
40     virtual ~AliHLTTPCCAGlobalMergerComponent() {};
41
42     // Public functions to implement AliHLTComponent's interface.
43     // These functions are required for the registration process
44
45     /**
46      * @copydoc AliHLTComponent::GetComponentID
47      */
48     const char *GetComponentID();
49
50     /**
51      * @copydoc AliHLTComponent::GetInputDataTypes
52      */
53     void GetInputDataTypes( AliHLTComponentDataTypeList &list );
54
55     /**
56      * @copydoc AliHLTComponent::GetOutputDataType
57      */
58     AliHLTComponentDataType GetOutputDataType();
59
60     /**
61      * @copydoc AliHLTComponent::GetOutputDataSize
62      */
63     virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
64
65     /**
66      * @copydoc AliHLTComponent::Spawn
67      */
68     AliHLTComponent *Spawn();
69
70   protected:
71
72     // Protected functions to implement AliHLTComponent's interface.
73     // These functions provide initialization as well as the actual processing
74     // capabilities of the component.
75
76     /**
77      * @copydoc AliHLTComponent::DoInit
78      */
79     int DoInit( int argc, const char **argv );
80
81     /**
82      * @copydoc AliHLTComponent::DoDeinit
83      */
84     int DoDeinit();
85
86     /** reconfigure **/
87     int Reconfigure( const char* cdbEntry, const char* chainId );
88
89     /**
90      * @copydoc @ref AliHLTProcessor::DoEvent
91      */
92     int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
93                  AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
94                  AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
95
96     using AliHLTProcessor::DoEvent;
97
98   private:
99
100     static AliHLTTPCCAGlobalMergerComponent fgAliHLTTPCCAGlobalMergerComponent;
101
102     // disable copy
103     AliHLTTPCCAGlobalMergerComponent( const AliHLTTPCCAGlobalMergerComponent & );
104     AliHLTTPCCAGlobalMergerComponent &operator=( const AliHLTTPCCAGlobalMergerComponent & );
105
106     /** set configuration parameters **/
107     void SetDefaultConfiguration();
108     int ReadConfigurationString(  const char* arguments );
109     int ReadCDBEntry( const char* cdbEntry, const char* chainId );
110     int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
111
112     /** the global merger object */
113     AliHLTTPCCAMerger *fGlobalMerger; //!
114
115     double fSolenoidBz;  // magnetic field
116     double fClusterErrorCorrectionY; // correction for the cluster error during pre-fit
117     double fClusterErrorCorrectionZ; // correction for the cluster error during pre-fit
118
119     ClassDef( AliHLTTPCCAGlobalMergerComponent, 0 )
120 };
121
122 #endif