class AliTRDtrackerFitter;
class AliTRDtrackV1;
class AliTRDReconstructor;
-
+class AliTRDrecoParam;
class AliTRDtrackerV1 : public AliTracker
{
public:
Int_t ReadClusters(TClonesArray* &array, TTree *in) const;
Int_t RefitInward(AliESDEvent *event);
static void SetNTimeBins(Int_t nTimeBins){fgNTimeBins = nTimeBins; }
- void SetReconstructor(const AliTRDReconstructor *rec){ fkReconstructor = rec; }
+ void SetReconstructor(const AliTRDReconstructor *rec) {fkReconstructor = rec;}
void UnloadClusters();
class AliTRDLeastSquare{
AliTRDLeastSquare();
~AliTRDLeastSquare(){};
- void AddPoint(const Double_t * const x, Double_t y, Double_t sigmaY);
- void RemovePoint(const Double_t * const x, Double_t y, Double_t sigmaY);
- void Eval();
- void Reset();
+ void AddPoint(const Double_t * const x, Double_t y, Double_t sigmaY);
+ void RemovePoint(const Double_t * const x, Double_t y, Double_t sigmaY);
+ Bool_t Eval();
+ void Reset();
- Double_t GetFunctionParameter(Int_t ParNumber) const {return fParams[ParNumber];}
- Double_t GetFunctionValue(const Double_t * const xpos) const;
- void GetCovarianceMatrix(Double_t *storage) const;
+ Double_t GetFunctionParameter(Int_t ParNumber) const {return fParams[ParNumber];}
+ Double_t GetFunctionValue(const Double_t * const xpos) const;
+ void GetCovarianceMatrix(Double_t *storage) const;
private:
- AliTRDLeastSquare(const AliTRDLeastSquare &);
+ AliTRDLeastSquare(const AliTRDLeastSquare &);
AliTRDLeastSquare& operator=(const AliTRDLeastSquare &);
- Double_t fParams[2]; // Fitparameter
- Double_t fCovarianceMatrix[3]; // Covariance Matrix
- Double_t fSums[6]; // Sums
+ Double_t fParams[2]; // Fitparameter
+ Double_t fCovarianceMatrix[3]; // Covariance Matrix
+ Double_t fSums[6]; // Sums
};
class AliTRDtrackFitterRieman{
Bool_t GetTrackPoint(Int_t index, AliTrackPoint &p) const;
Float_t GetR4Layer(Int_t ly) const { return fR[ly];}
Int_t MakeSeeds(AliTRDtrackingChamber **stack, AliTRDseedV1 * const sseed, const Int_t * const ipar);
- AliTRDtrackV1* MakeTrack(AliTRDseedV1 * const seeds, Double_t *params);
+ AliTRDtrackV1* MakeTrack(AliTRDseedV1 * const tracklet);
AliTRDtrackV1* SetTrack(const AliTRDtrackV1 * const track);
AliTRDseedV1* SetTracklet(const AliTRDseedV1 * const tracklet);
+ void UnsetTrackletsTrack(const AliTRDtrackV1 * const track);
private:
AliTRDtrackerV1(const AliTRDtrackerV1 &tracker);
AliTRDtrackerV1 &operator=(const AliTRDtrackerV1 &tracker);
- Double_t CookLikelihood(AliTRDseedV1 *cseed, Int_t planes[4]);
- Double_t CalculateTrackLikelihood(const AliTRDseedV1 *const tracklets, Double_t *chi2);
- Int_t ImproveSeedQuality(AliTRDtrackingChamber **stack, AliTRDseedV1 *tracklet);
+ Double_t CookLikelihood(AliTRDseedV1 *cseed, Int_t planes[4]);
+ Double_t CalculateTrackLikelihood(Double_t *chi2);
+ Bool_t ImproveSeedQuality(AliTRDtrackingChamber **stack, AliTRDseedV1 *tracklet, Double_t &chi2);
static Float_t CalculateReferenceX(const AliTRDseedV1 *const tracklets);
void ResetSeedTB();
Float_t GetChi2Y(const AliTRDseedV1 *const tracklets) const;
Float_t GetChi2Z(const AliTRDseedV1 *const tracklets) const;
+ Float_t GetChi2Phi(const AliTRDseedV1 *const tracklets) const;
private:
- const AliTRDReconstructor *fkReconstructor; // reconstructor manager
+ const AliTRDReconstructor *fkReconstructor; // reconstructor manager
+ const AliTRDrecoParam *fkRecoParam; // reco param for the current event
AliTRDgeometry *fGeom; // Pointer to TRD geometry
AliTRDtrackingSector fTrSec[kTrackingSectors]; // Array of tracking sectors;
TClonesArray *fClusters; // List of clusters
TClonesArray *fTracklets; // List of tracklets
TClonesArray *fTracks; // List of tracks
+ TClonesArray *fTracksESD; // List of ESD tracks in current SM
Float_t fR[kNPlanes]; //! rough radial position of each TRD layer
// should go to the recoParam
static TLinearFitter *fgTiltedRiemanConstrained; // Fitter for the tilted Rieman fit with vertex constraint
static AliRieman *fgRieman; // Fitter for the untilted Rieman fit
- ClassDef(AliTRDtrackerV1, 3) // TRD tracker - tracklet based tracking
+ ClassDef(AliTRDtrackerV1, 5) // TRD tracker - tracklet based tracking
};
#endif