]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/util/AliHLTGlobalBarrelTrack.h
moving implementation of template function to header file
[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   /** copy constructor */
37   AliHLTGlobalBarrelTrack(const AliExternalTrackParam& p);
38
39   /** assignment operator */
40   template <class c>
41   AliHLTGlobalBarrelTrack& operator=(const c& t) {
42     this->~AliHLTGlobalBarrelTrack(); new (this) AliHLTGlobalBarrelTrack(t);
43     return *this;
44   }
45
46   /** destructor */
47   ~AliHLTGlobalBarrelTrack();
48
49   /// inherited from AliKalmanTrack
50   Int_t GetClusterIndex(Int_t i) const { 
51     return (i<(int)fPoints.size()) ?fPoints[i] :0;
52   } 
53
54   /// inherited from AliKalmanTrack, dummy implementation
55   virtual Int_t GetNumberOfTracklets() const {return 0;}
56   /// inherited from AliKalmanTrack, dummy implementation
57   virtual Int_t GetTrackletIndex(Int_t) const {return -1;} 
58   /// inherited from AliKalmanTrack, dummy implementation
59   virtual Double_t GetPIDsignal() const {return 0.;}
60
61   /// Get the x position of the last assigned point
62   Double_t GetLastPointX() const {return fLastX;}
63   /// Get the y position of the last assigned point
64   Double_t GetLastPointY() const {return fLastY;}
65   /// return Track ID
66   Int_t TrackID() const {return fTrackID;}
67   /// return Track ID, inherited for AliExternalTrackParam
68   Int_t GetID() const {return fTrackID;}
69
70   /// Get the number of associated points
71   UInt_t GetNumberOfPoints() const;
72
73   /// Get the list of associated points
74   const UInt_t* GetPoints() const;
75
76   /// Set the list of associated points
77   int SetPoints(const UInt_t* pArray, UInt_t arraySize);
78
79   static int ConvertTrackDataArray(const AliHLTTracksData* pTracks, unsigned sizeInByte, vector<AliHLTGlobalBarrelTrack> &tgtArray);
80
81   /// inherited from AliKalmanTrack, dummy implementation
82   Double_t GetPredictedChi2(const AliCluster*) const {return 0.0;}
83
84   /// inherited from AliKalmanTrack, dummy implementation
85   Bool_t PropagateTo(Double_t, Double_t, Double_t) {return kFALSE;}
86
87   /// inherited from AliKalmanTrack, dummy implementation
88   Bool_t Update(const AliCluster*, Double_t, Int_t) {return kFALSE;}
89
90   /// Inherited from TObject, prints the track parameters
91   virtual void Print(Option_t* option = "") const;
92
93   Double_t GetPathLengthTo( Double_t x, Double_t b ) const;
94
95  protected:
96
97  private:
98
99   /// array of points
100   vector<UInt_t> fPoints; //
101
102   /// x position of the last assigned point
103   Double_t fLastX; //
104   /// y position of the last assigned point
105   Double_t fLastY; //
106
107   /// track Id for identification during the reconstruction
108   Int_t   fTrackID; //
109
110   ClassDef(AliHLTGlobalBarrelTrack, 0)
111 };
112 #endif