2 // Original: AliHLTModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov
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 *
8 #ifndef AliHLTTPCModel_Track
9 #define AliHLTTPCModel_Track
11 #include "AliHLTTPCTrack.h"
12 #include "AliHLTTPCModels.h"
15 * @class AliHLTTPCModelTrack
19 class AliHLTTPCModelTrack : public AliHLTTPCTrack {
22 AliHLTTPCModelTrack();
23 virtual ~AliHLTTPCModelTrack();
25 void Init(Int_t slice,Int_t patch);
26 void CalculateClusterWidths(Int_t row,Bool_t parametrize=kFALSE);
27 void SetCluster(Int_t row,Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2,Int_t npads);
30 void Print(Bool_t everything=kTRUE);
31 using AliHLTTPCTrack::Print;
32 void Set(AliHLTTPCTrack *tpt);
34 void SetPadHit(Int_t row,Float_t f);
35 void SetTimeHit(Int_t row,Float_t f);
36 void SetCrossingAngleLUT(Int_t row,Float_t angle);
37 void SetOverlap(Int_t row,Int_t id);
38 void SetClusterLabel(Int_t row,Int_t *trackID);
39 void SetNClusters(Int_t i) {fNClusters = i;}
41 Int_t GetNPresentClusters();
42 Bool_t IsPresent(Int_t row);
43 Bool_t IsSet(Int_t row);
45 AliHLTTPCClusterModel *GetClusters() {return fClusters;}
46 AliHLTTPCTrackModel *GetModel() {return fTrackModel;}
47 AliHLTTPCClusterModel *GetClusterModel(Int_t row);
48 Int_t *GetOverlaps(Int_t row);
49 Int_t GetNOverlaps(Int_t row);
50 Int_t GetNPads(Int_t row);
51 Int_t GetSlice(Int_t row);
52 Float_t GetPadHit(Int_t row);
53 Float_t GetTimeHit(Int_t row);
54 Float_t GetCrossingAngleLUT(Int_t row);
55 Float_t GetParSigmaY2(Int_t row);
56 Float_t GetParSigmaZ2(Int_t row);
57 Bool_t GetPad(Int_t row,Float_t &pad);
58 Bool_t GetTime(Int_t row,Float_t &time);
59 Bool_t GetClusterCharge(Int_t row,Int_t &charge);
60 Bool_t GetSigmaY2(Int_t row,Float_t &sigma2);
61 Bool_t GetSigmaZ2(Int_t row,Float_t &sigma2);
62 Bool_t GetPadResidual(Int_t row,Float_t &res);
63 Bool_t GetTimeResidual(Int_t row,Float_t &res);
64 Bool_t GetSigmaYResidual(Int_t row,Float_t &res);
65 Bool_t GetSigmaZResidual(Int_t row,Float_t &res);
66 Int_t GetNClusters() const {return fNClusters;}
67 void GetClusterLabel(Int_t row,Int_t *trackID);
70 /** copy constructor prohibited */
71 AliHLTTPCModelTrack(const AliHLTTPCModelTrack&);
72 /** assignment operator prohibited */
73 AliHLTTPCModelTrack& operator=(const AliHLTTPCModelTrack&);
75 Short_t fClusterCharge; //Average cluster charge
76 AliHLTTPCClusterModel *fClusters; //! Clusters
77 AliHLTTPCTrackModel *fTrackModel; //! Track model
78 Short_t fNClusters; // Number of clusters
79 Int_t fMaxOverlaps; // Max overlaps (?)
80 Int_t *fNoverlaps; //! Number of overlaps
81 Int_t **fOverlap; //! Table of overlaps(?)
82 Float_t *fParSigmaY2; //! Parameter SigmaY2 (?)
83 Float_t *fParSigmaZ2; //! Parameter SigmaZ2 (?)
84 Float_t *fCrossingAngle; //! Crossing angle
85 Int_t fPatch; // Current patch
86 Bool_t fArraysCreated; // Flag if arrays were created
88 //Crossing points with padrows
89 Float_t *fPad; //! Current pad
90 Float_t *fTime; //! Current time
94 ClassDef(AliHLTTPCModelTrack,1)