#ifndef ALIITSUTRACKERCooked_H
#define ALIITSUTRACKERCooked_H
#include "AliITSUTrackerGlo.h"
class TTree;
class TClonesArray;
class TObjArray;
class AliESDEvent;
class AliCluster;
class AliITSUClusterPix;
class AliITSUTrackCooked;
class AliITSUReconstructor;
class AliITSUTrackerCooked : public AliITSUTrackerGlo {
public:
enum {
kNLayers=7, kMaxClusterPerLayer=150000, kMaxSelected=kMaxClusterPerLayer/10
};
AliITSUTrackerCooked(AliITSUReconstructor *rec);
virtual ~AliITSUTrackerCooked();
Int_t Clusters2Tracks(AliESDEvent *event);
Int_t PropagateBack(AliESDEvent *event);
Int_t RefitInward(AliESDEvent *event);
Int_t LoadClusters(TTree *ct);
void UnloadClusters();
Bool_t
RefitAt(Double_t x, AliITSUTrackCooked *seed, const AliITSUTrackCooked *t);
AliCluster *GetCluster(Int_t index) const;
void SetSAonly(Bool_t sa=kTRUE) {fSAonly=sa;}
Bool_t GetSAonly() const {return fSAonly;}
class AliITSUlayer;
protected:
AliITSUTrackerCooked(const AliITSUTrackerCooked&);
Int_t MakeSeeds();
Bool_t AddCookedSeed(const Float_t r1[3], Int_t l1, Int_t i1,
const Float_t r2[3], Int_t l2, Int_t i2,
const AliCluster *c3,Int_t l3, Int_t i3);
void FollowProlongation();
Int_t TakeNextProlongation();
void ResetTrackToFollow(const AliITSUTrackCooked &t);
void ResetBestTrack();
private:
AliITSUTrackerCooked &operator=(const AliITSUTrackerCooked &tr);
static AliITSUlayer fgLayers[kNLayers];
TObjArray *fSeeds;
Int_t fI;
AliITSUTrackCooked *fBestTrack;
AliITSUTrackCooked *fTrackToFollow;
Bool_t fSAonly;
ClassDef(AliITSUTrackerCooked,2)
};
class AliITSUTrackerCooked::AliITSUlayer {
public:
AliITSUlayer();
~AliITSUlayer();
void InsertClusters(TClonesArray *clusters, Bool_t seedingLayer, Bool_t sa);
void SetR(Double_t r) {fR=r;}
void DeleteClusters();
void ResetSelectedClusters() {fI=0;}
void SelectClusters(Float_t phi, Float_t dy, Float_t z, Float_t dz);
const AliCluster *GetNextCluster(Int_t &i);
void ResetTrack(const AliITSUTrackCooked &t);
Int_t FindClusterIndex(Double_t z) const;
Float_t GetR() const {return fR;}
AliCluster *GetCluster(Int_t i) const { return fClusters[i]; }
Float_t GetXRef(Int_t i) const { return fXRef[i]; }
Float_t GetAlphaRef(Int_t i) const { return fAlphaRef[i]; }
Float_t GetClusterPhi(Int_t i) const { return fPhi[i]; }
Int_t GetNumberOfClusters() const {return fN;}
const AliITSUTrackCooked *GetTrack() const {return fTrack;}
protected:
AliITSUlayer(const AliITSUlayer&);
AliITSUlayer &operator=(const AliITSUlayer &tr);
Int_t InsertCluster(AliCluster *c);
Float_t fR;
AliCluster *fClusters[kMaxClusterPerLayer];
Float_t fXRef[kMaxClusterPerLayer];
Float_t fAlphaRef[kMaxClusterPerLayer];
Float_t fPhi[kMaxClusterPerLayer];
Int_t fN;
Int_t fIndex[kMaxSelected];
Int_t fNsel;
Int_t fI;
AliITSUTrackCooked *fTrack;
};
#endif
AliITSUTrackerCooked.h:10 AliITSUTrackerCooked.h:11 AliITSUTrackerCooked.h:12 AliITSUTrackerCooked.h:13 AliITSUTrackerCooked.h:14 AliITSUTrackerCooked.h:15 AliITSUTrackerCooked.h:16 AliITSUTrackerCooked.h:17 AliITSUTrackerCooked.h:18 AliITSUTrackerCooked.h:19 AliITSUTrackerCooked.h:20 AliITSUTrackerCooked.h:21 AliITSUTrackerCooked.h:22 AliITSUTrackerCooked.h:23 AliITSUTrackerCooked.h:24 AliITSUTrackerCooked.h:25 AliITSUTrackerCooked.h:26 AliITSUTrackerCooked.h:27 AliITSUTrackerCooked.h:28 AliITSUTrackerCooked.h:29 AliITSUTrackerCooked.h:30 AliITSUTrackerCooked.h:31 AliITSUTrackerCooked.h:32 AliITSUTrackerCooked.h:33 AliITSUTrackerCooked.h:34 AliITSUTrackerCooked.h:35 AliITSUTrackerCooked.h:36 AliITSUTrackerCooked.h:37 AliITSUTrackerCooked.h:38 AliITSUTrackerCooked.h:39 AliITSUTrackerCooked.h:40 AliITSUTrackerCooked.h:41 AliITSUTrackerCooked.h:42 AliITSUTrackerCooked.h:43 AliITSUTrackerCooked.h:44 AliITSUTrackerCooked.h:45 AliITSUTrackerCooked.h:46 AliITSUTrackerCooked.h:47 AliITSUTrackerCooked.h:48 AliITSUTrackerCooked.h:49 AliITSUTrackerCooked.h:50 AliITSUTrackerCooked.h:51 AliITSUTrackerCooked.h:52 AliITSUTrackerCooked.h:53 AliITSUTrackerCooked.h:54 AliITSUTrackerCooked.h:55 AliITSUTrackerCooked.h:56 AliITSUTrackerCooked.h:57 AliITSUTrackerCooked.h:58 AliITSUTrackerCooked.h:59 AliITSUTrackerCooked.h:60 AliITSUTrackerCooked.h:61 AliITSUTrackerCooked.h:62 AliITSUTrackerCooked.h:63 AliITSUTrackerCooked.h:64 AliITSUTrackerCooked.h:65 AliITSUTrackerCooked.h:66 AliITSUTrackerCooked.h:67 AliITSUTrackerCooked.h:68 AliITSUTrackerCooked.h:69 AliITSUTrackerCooked.h:70 AliITSUTrackerCooked.h:71 AliITSUTrackerCooked.h:72 AliITSUTrackerCooked.h:73 AliITSUTrackerCooked.h:74 AliITSUTrackerCooked.h:75 AliITSUTrackerCooked.h:76 AliITSUTrackerCooked.h:77 AliITSUTrackerCooked.h:78 AliITSUTrackerCooked.h:79 AliITSUTrackerCooked.h:80 AliITSUTrackerCooked.h:81 AliITSUTrackerCooked.h:82 AliITSUTrackerCooked.h:83 AliITSUTrackerCooked.h:84 AliITSUTrackerCooked.h:85 AliITSUTrackerCooked.h:86 AliITSUTrackerCooked.h:87 AliITSUTrackerCooked.h:88 AliITSUTrackerCooked.h:89 AliITSUTrackerCooked.h:90 AliITSUTrackerCooked.h:91 AliITSUTrackerCooked.h:92 AliITSUTrackerCooked.h:93 AliITSUTrackerCooked.h:94 AliITSUTrackerCooked.h:95 AliITSUTrackerCooked.h:96 AliITSUTrackerCooked.h:97 AliITSUTrackerCooked.h:98 AliITSUTrackerCooked.h:99 AliITSUTrackerCooked.h:100 AliITSUTrackerCooked.h:101 AliITSUTrackerCooked.h:102 AliITSUTrackerCooked.h:103 AliITSUTrackerCooked.h:104 AliITSUTrackerCooked.h:105 AliITSUTrackerCooked.h:106 AliITSUTrackerCooked.h:107 AliITSUTrackerCooked.h:108 AliITSUTrackerCooked.h:109 AliITSUTrackerCooked.h:110 AliITSUTrackerCooked.h:111 AliITSUTrackerCooked.h:112 AliITSUTrackerCooked.h:113 AliITSUTrackerCooked.h:114 AliITSUTrackerCooked.h:115 AliITSUTrackerCooked.h:116 AliITSUTrackerCooked.h:117 AliITSUTrackerCooked.h:118 AliITSUTrackerCooked.h:119 AliITSUTrackerCooked.h:120 AliITSUTrackerCooked.h:121 AliITSUTrackerCooked.h:122