12 #ifndef AliMFTTrackFinder_H
13 #define AliMFTTrackFinder_H
16 #include "TClonesArray.h"
42 void Init(Char_t *parfile);
43 void ReadParam(Char_t *parfile =
"param.txt");
46 virtual void Clear(Option_t *);
69 Bool_t
RuleSelectCell(Double_t *h1, Double_t *h2, Int_t iL1, TF1 *
f = 0, Bool_t acalc = kFALSE);
81 void DrawTracks(Double_t *pTot, Double_t *Theta);
117 AliInfo(
"Removing Last Track");
126 for (Int_t i = 0; i < n; i++)
fPlanesZ[i] = z[i];
139 Bool_t
LinFit(Int_t nDet, Double_t *xcl,
140 Double_t *ycl, Double_t *yerr,
141 Double_t &a, Double_t &ae, Double_t &
b, Double_t &be,
void CreateCells(Bool_t calcVertex=kFALSE)
Double_t fPlanesZ[fNDetMax]
void CreateCellsOld(Bool_t calcVertex=kFALSE)
const Double_t GetPlaneDetEff(Int_t i)
void RunBackwardR(AliMFTCARoad *road, Int_t &trackGID)
virtual void Clear(Option_t *)
void DrawTracks(Double_t *pTot, Double_t *Theta)
Double_t fZVertCalc
! Calculated vertez z
AliMFTCACell * GetCellByGID(Int_t gid)
void SetZVertRange(Double_t *zvr, Double_t zvd)
const Double_t GetThick()
Int_t fCellGID
! Cell global identifier
Float_t fXCut
Cut in x difference; RuleSelect.
TFile f("CalibObjects.root")
Double_t fErrX
! Error in X
Double_t fErrY
! Error in Y
TClonesArray * fRoads
! Array of roads
void SetDebug(Int_t debug)
AliMFTCALayer * fLayers[fNDetMax]
! Array of layers
AliMFTCALayer * GetLayer(Int_t nl)
Double_t fZVertRange[2]
! Limits of vertex z accepted range
static const Int_t fNMaxPlanes
TH1F * hAngleCells
! Angle between adjacent cells
Double_t GetCellInterceptY(AliMFTCACell *cell, Double_t z)
Double_t fZVertDet
! Vertex z given by ext detector
const Double_t GetRealTime()
void ReadParam(Char_t *parfile="param.txt")
static const Int_t fNDetMax
const Int_t GetNDifTracks()
TH2F * hDXY[fNDetMax]
! Histogram with X,Y distance between end of cells
void PrintTrack(Int_t id)
AliMFTCATrack * GetTrack(Int_t nt)
const Char_t * GetGeomName()
TH1F * hTrackType
! Histogram track Type: 0 = good track ; 1 = hits from other track ; 2 = hits from noisy pixels ...
Int_t fNRoads
! number of built roads
void CreateCellsR(AliMFTCARoad *road)
void SetPlanesZ(Double_t *z, Int_t n)
const Double_t GetMBRate()
Float_t fACutV[fNDetMax]
Cut in angle difference: for cell vertex compatibility.
Float_t fYCut
Cut in y difference; RuleSelect.
void SetCAtime(Double_t cpu, Double_t real)
const Double_t GetCPUTime()
void LoadClusters(TClonesArray *clusterArrayFront[AliMFTConstants::fNMaxPlanes], TClonesArray *clusterArrayBack[AliMFTConstants::fNMaxPlanes])
Double_t GetCellInterceptX(AliMFTCACell *cell, Double_t z)
AliMFTCATrack * AddTrack(Int_t gid)
Bool_t LinFit(Int_t nDet, Double_t *xcl, Double_t *ycl, Double_t *yerr, Double_t &a, Double_t &ae, Double_t &b, Double_t &be, Int_t skip=-1)
Int_t fNlayers
Number of detection planes.
Float_t fACutN[fNDetMax]
Cut in angle difference: for neighbor cells compatibility.
const Double_t GetCMOSIntTime()
Int_t fNtracks
! Number of tracks
Bool_t RuleSelectCell(AliMFTCACell *cell)
Float_t fMaxSegAngle
Max cut of the Theta angle of segments [deg].
Double_t GetCellAngleDif(AliMFTCACell *cell1, AliMFTCACell *cell2)
TH1F * hThetaCells
! Theta of the cells
ClassDef(AliMFTTrackFinder, 2)
TList * fHistList
! List of histograms
TClonesArray * fTracks
! Array of tracks
void Init(Char_t *parfile)
TH1F * hNGoodCell
! Histogram showing numbers of good cells in the track
Double_t fPlaneDetEff[fNDetMax]
TH1F * hDAv[fNDetMax]
! Histogram with angle with respect to the vertex
Int_t fMaxCellStatus
! Maximum value of a cell status after RunForward
void RunForwardR(AliMFTCARoad *road, Int_t &trackGID)
const Bool_t CalcVertex()
Bool_t RuleSelect2LayersGap(Int_t iL1, Int_t iL2, Double_t *hit1, Double_t *hit2)
AliMFTCARoad * GetRoad(Int_t nr)
TH1F * hDA[fNDetMax]
! Histogram with angle between cells
const Double_t GetPixelNoise()
Bool_t RuleSelect(AliMFTCACell *cellL, AliMFTCACell *cellR)