]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/util/AliHLTGlobalBarrelTrack.h
84566820a723dba50b38727e6c6655d2fb096490
[u/mrichter/AliRoot.git] / HLT / BASE / util / AliHLTGlobalBarrelTrack.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTGLOBALBARRELTRACK_H
4 #define ALIHLTGLOBALBARRELTRACK_H
5 //* This file is property of and copyright by the ALICE HLT Project        * 
6 //* ALICE Experiment at CERN, All rights reserved.                         *
7 //* See cxx source for full Copyright notice                               *
8
9 /** @file   AliHLTGlobalBarrelTrack.h
10     @author Matthias Richter
11     @date   2009-06-24
12     @brief  An AliKalmanTrack implementation for global HLT barrel tracks.
13 */
14
15 #include "AliKalmanTrack.h"
16 #include "AliHLTDataTypes.h"
17 #include "AliHLTExternalTrackParam.h"
18 #include <vector>
19 using namespace std;
20
21 /**
22  * @class AliHLTGlobalBarrelTrack
23  * Representation of global HLT barrel tracks.
24  *
25  * @ingroup alihlt_global_components
26  */
27 class AliHLTGlobalBarrelTrack : public AliKalmanTrack
28 {
29  public:
30   /** standard constructor */
31   AliHLTGlobalBarrelTrack();
32   /** copy constructor */
33   AliHLTGlobalBarrelTrack(const AliHLTGlobalBarrelTrack& t);
34   /** copy constructor */
35   AliHLTGlobalBarrelTrack(const AliHLTExternalTrackParam& p);
36
37   /** assignment operator */
38   template <class c>
39   AliHLTGlobalBarrelTrack& operator=(const c& t);
40   /** destructor */
41   ~AliHLTGlobalBarrelTrack();
42
43   /// inherited from AliKalmanTrack
44   Int_t GetClusterIndex(Int_t i) const { 
45     return (i<(int)fPoints.size()) ?fPoints[i] :0;
46   } 
47
48   /// inherited from AliKalmanTrack, dummy implementation
49   virtual Int_t GetNumberOfTracklets() const {return 0;}
50   /// inherited from AliKalmanTrack, dummy implementation
51   virtual Int_t GetTrackletIndex(Int_t) const {return -1;} 
52   /// inherited from AliKalmanTrack, dummy implementation
53   virtual Double_t GetPIDsignal() const {return 0.;}
54
55   /// Get the x position of the last assigned point
56   Double_t GetLastPointX() const {return fLastX;}
57   /// Get the y position of the last assigned point
58   Double_t GetLastPointY() const {return fLastY;}
59   /// return Track ID
60   Int_t TrackID() const {return fTrackID;}
61   /// return Track ID, inherited for AliExternalTrackParam
62   Int_t GetID() const {return fTrackID;}
63
64   /// Get the number of associated points
65   UInt_t GetNumberOfPoints() const;
66
67   /// Get the list of associated points
68   const UInt_t* GetPoints() const;
69
70   /// Set the list of associated points
71   int SetPoints(const UInt_t* pArray, UInt_t arraySize);
72
73   static int ConvertTrackDataArray(const AliHLTTracksData* pTracks, unsigned sizeInByte, vector<AliHLTGlobalBarrelTrack> &tgtArray);
74
75   /// inherited from AliKalmanTrack, dummy implementation
76   Double_t GetPredictedChi2(const AliCluster*) const {return 0.0;}
77
78   /// inherited from AliKalmanTrack, dummy implementation
79   Bool_t PropagateTo(Double_t, Double_t, Double_t) {return kFALSE;}
80
81   /// inherited from AliKalmanTrack, dummy implementation
82   Bool_t Update(const AliCluster*, Double_t, Int_t) {return kFALSE;}
83
84   /// Inherited from TObject, prints the track parameters
85   virtual void Print(Option_t* option = "") const;
86
87   Double_t GetPathLengthTo( Double_t x, Double_t b ) const;
88
89  protected:
90
91  private:
92
93   /// array of points
94   vector<UInt_t> fPoints; //
95
96   /// x position of the last assigned point
97   Double_t fLastX; //
98   /// y position of the last assigned point
99   Double_t fLastY; //
100
101   /// track Id for identification during the reconstruction
102   Int_t   fTrackID; //
103
104   ClassDef(AliHLTGlobalBarrelTrack, 0)
105 };
106 #endif