// //
///////////////////////////////////////////////////////////////////////////////
-//#ifndef ALIKALMANTRACK_H
+#ifndef ALIKALMANTRACK_H
#include "AliKalmanTrack.h"
-//#endif
+#endif
-//#ifndef ALITRDSEEDV1_H
+#ifndef ALITRDSEEDV1_H
#include "AliTRDseedV1.h"
-//#endif
+#endif
-class AliTRDcluster;
class AliESDtrack;
+class AliTRDcluster;
class AliTRDReconstructor;
class AliTRDtrackV1 : public AliKalmanTrack
{
- friend class AliHLTTRDTrack;
+ friend class AliHLTTRDTrack; // allow HLT special access
public:
enum ETRDtrackSize {
kNdet = AliTRDgeometry::kNdet
AliTRDtrackV1(const AliESDtrack &ref);
AliTRDtrackV1(const AliTRDtrackV1 &ref);
virtual ~AliTRDtrackV1();
- AliTRDtrackV1 &operator=(const AliTRDtrackV1 &ref) { *(new(this) AliTRDtrackV1(ref)); return *this; }
-
+ AliTRDtrackV1 &operator=(const AliTRDtrackV1 &ref);
+ virtual void Copy(TObject &ref) const;
+
Bool_t CookPID();
Bool_t CookLabel(Float_t wrong);
AliTRDtrackV1* GetBackupTrack() const {return fBackupTrack;}
UChar_t GetNumberOfTrackletsPID() const;
Double_t GetPredictedChi2(const AliTRDseedV1 *tracklet, Double_t *cov) const;
Double_t GetPredictedChi2(const AliCluster* /*c*/) const { return 0.0; }
- Int_t GetProlongation(Double_t xk, Double_t &y, Double_t &z);
+ Int_t GetProlongation(Double_t xk, Double_t &y, Double_t &z) const;
inline UChar_t GetStatusTRD(Int_t ly=-1) const;
Int_t GetSector() const;
AliTRDseedV1* GetTracklet(Int_t plane) const {return plane >=0 && plane <kNplane ? fTracklet[plane] : NULL;}
inline void SetReconstructor(const AliTRDReconstructor *rec);
inline Float_t StatusForTOF();
void UnsetTracklet(Int_t plane);
- Bool_t Update(Double_t *p, Double_t *cov, Double_t chi2, Bool_t useTRD=kTRUE);
Bool_t Update(const AliCluster *, Double_t, Int_t) { return kFALSE; };
+ void UpdateChi2(Float_t chi2);
void UpdateESDtrack(AliESDtrack *t);
private: