Qmax for merged clusters fixed
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCModelTrack.h
CommitLineData
a6c02c85 1// @(#) $Id$
4aa41877 2// Original: AliHLTModelTrack.h,v 1.13 2004/06/15 10:26:57 hristov
a6c02c85 3
297174de 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
a6c02c85 8#ifndef AliHLTTPCModel_Track
9#define AliHLTTPCModel_Track
10
11#include "AliHLTTPCTrack.h"
12#include "AliHLTTPCModels.h"
13
297174de 14/**
15 * @class AliHLTTPCModelTrack
16 *
17 * @ingroup alihlt_tpc
18 */
a6c02c85 19class AliHLTTPCModelTrack : public AliHLTTPCTrack {
20
21 public:
22 AliHLTTPCModelTrack();
23 virtual ~AliHLTTPCModelTrack();
24
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);
28 void FillModel();
29 void FillTrack();
30 void Print(Bool_t everything=kTRUE);
5d2abf3b 31 using AliHLTTPCTrack::Print;
a6c02c85 32 void Set(AliHLTTPCTrack *tpt);
33
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;}
40
41 Int_t GetNPresentClusters();
42 Bool_t IsPresent(Int_t row);
43 Bool_t IsSet(Int_t row);
44
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);
68
69 private:
8f8bf0af 70 /** copy constructor prohibited */
e419b223 71 AliHLTTPCModelTrack(const AliHLTTPCModelTrack&);
8f8bf0af 72 /** assignment operator prohibited */
e419b223 73 AliHLTTPCModelTrack& operator=(const AliHLTTPCModelTrack&);
a6c02c85 74
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
87
88 //Crossing points with padrows
89 Float_t *fPad; //! Current pad
90 Float_t *fTime; //! Current time
91
92 void DeleteArrays();
93
94 ClassDef(AliHLTTPCModelTrack,1)
95
96};
97
98#endif