]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.h
A tracker update: significant clean up, reorganise of the data structures, p-p track...
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackerComponent.h
CommitLineData
cf471b1e 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#ifndef ALIHLTTPCCATRACKERCOMPONENT_H
9#define ALIHLTTPCCATRACKERCOMPONENT_H
10
11#include "AliHLTProcessor.h"
12
13class AliHLTTPCCATracker;
eb30eb49 14class AliHLTTPCSpacePointData;
cf471b1e 15
16/**
17 * @class AliHLTTPCCATrackerComponent
18 * The Cellular Automaton tracker component.
19 */
20class AliHLTTPCCATrackerComponent : public AliHLTProcessor
4c256004 21{
22public:
23 /** standard constructor */
24 AliHLTTPCCATrackerComponent();
25
26 /** dummy copy constructor, defined according to effective C++ style */
27 AliHLTTPCCATrackerComponent(const AliHLTTPCCATrackerComponent&);
28
29 /** dummy assignment op, but defined according to effective C++ style */
30 AliHLTTPCCATrackerComponent& operator=(const AliHLTTPCCATrackerComponent&);
31
32 /** standard destructor */
33 virtual ~AliHLTTPCCATrackerComponent();
cf471b1e 34
4c256004 35 // Public functions to implement AliHLTComponent's interface.
36 // These functions are required for the registration process
37
00d07bcd 38 /** @see component interface @ref AliHLTComponent::GetComponentID */
4c256004 39 const char* GetComponentID() ;
40
00d07bcd 41 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
4c256004 42 void GetInputDataTypes( vector<AliHLTComponentDataType>& list) ;
43
00d07bcd 44 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
4c256004 45 AliHLTComponentDataType GetOutputDataType() ;
46
00d07bcd 47 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
4c256004 48 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
49
00d07bcd 50 /** @see component interface @ref AliHLTComponent::Spawn */
4c256004 51 AliHLTComponent* Spawn() ;
52
53protected:
54
55 // Protected functions to implement AliHLTComponent's interface.
56 // These functions provide initialization as well as the actual processing
57 // capabilities of the component.
58
00d07bcd 59 /** @see component interface @ref AliHLTComponent::DoInit */
4687b8fc 60 Int_t DoInit( Int_t argc, const char** argv );
4c256004 61
00d07bcd 62 /** @see component interface @ref AliHLTComponent::DoDeinit */
4687b8fc 63 Int_t DoDeinit();
4c256004 64
65 /** @see component interface @ref AliHLTProcessor::DoEvent */
4687b8fc 66 Int_t DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
4c256004 67 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
68 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
69
70private:
71
72 /** the tracker object */
73 AliHLTTPCCATracker* fTracker; //! transient
74
75 /** magnetic field */
eb30eb49 76 Double_t fSolenoidBz; // see above
d54804bf 77 Int_t fMinNTrackClusters; //* required min number of clusters on the track
eb30eb49 78 Double_t fCellConnectionAngleXY; //* max phi angle between connected cells (deg)
79 Double_t fCellConnectionAngleXZ; //* max psi angle between connected cells (deg)
80 Double_t fClusterZCut; //* cut on cluster Z position (for noise rejection at the age of TPC)
81 Double_t fFullTime; //* total time for DoEvent() [s]
82 Double_t fRecoTime; //* total reconstruction time [s]
83 Long_t fNEvents; //* number of reconstructed events
d54804bf 84
eb30eb49 85 static Bool_t CompareClusters(AliHLTTPCSpacePointData *a, AliHLTTPCSpacePointData *b);
d54804bf 86
4c256004 87 ClassDef(AliHLTTPCCATrackerComponent, 0);
88
89};
cf471b1e 90#endif