ROOT logo
#ifndef ALITRDTRACKERDEBUG_H
#define ALITRDTRACKERDEBUG_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliTRDtrackerDebug.h 22646 2007-11-29 18:13:40Z cblume $ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Reader for the TRD tracker debug streamer                             // 
//                                                                        // 
//  Authors:                                                              //
//                                                                        //
//    Alex Bercuci <A.Bercuci@gsi.de>                                     //
//    Markus Fasel <M.Fasel@gsi.de>                                       //
//                                                                        // 
////////////////////////////////////////////////////////////////////////////

#include "AliTRDtrackerV1.h"

class TTree;
class TCanvas;
class TTreeSRedirector;
class AliTRDtrackV1;
class AliTRDseedV1;

class AliTRDtrackerDebug : public AliTRDtrackerV1
{
public:
	AliTRDtrackerDebug();
	~AliTRDtrackerDebug();

	Bool_t      Init();
	Bool_t      Open(const char *method);
	Int_t       Process();

	void        ResidualsClustersTrack(const AliTRDseedV1 *tracklet);
	void        ResidualsClustersTracklet(const AliTRDseedV1 *tracklet) const;
	void        ResidualsClustersParametrisation(const AliTRDseedV1 *tracklet) const;
	void        ResidualsTrackletsTrack() const;
	
	void        AnalyseTiltedRiemanFit();
	void        AnalyseMinMax();
	void        AnalyseFindable(Char_t *treename);

	TCanvas*    PlotSeedingConfiguration(const Char_t *direction, Int_t event, Int_t Candidate);
	TCanvas*    PlotFullTrackFit(Int_t event, Int_t candidate, Int_t iteration = -1, const Char_t *direction = "y");
	
	static Int_t GetEventNumber(){ return fgEventNumber; }
	static Int_t GetTrackNumber(){ return fgTrackNumber; }
	static Int_t GetCandidateNumber(){ return fgCandidateNumber; }
	
	static void SetEventNumber(Int_t eventNumber){ fgEventNumber = eventNumber; }
	static void SetTrackNumber(Int_t trackNumber){ fgTrackNumber = trackNumber; }
	static void SetCandidateNumber(Int_t candidateNumber){ fgCandidateNumber = candidateNumber; }
			
private:
	AliTRDtrackerDebug(const AliTRDtrackerDebug &);
	AliTRDtrackerDebug& operator=(const AliTRDtrackerDebug &);

	Float_t     GetTrackRadius(Float_t a, Float_t b, Float_t c) const;
	Float_t     GetTrackCurvature(Float_t a, Float_t b, Float_t c) const;
	Float_t     GetDCA(Float_t a, Float_t b, Float_t c) const;

	TTreeSRedirector *fOutputStreamer;                 //!Output streamer
	TTree            *fTree;       // debug tree
	AliTRDseedV1     *fTracklet;   // current tracklet
	AliTRDtrackV1    *fTrack;      // current TRD track
	Int_t            fNClusters;   // N clusters for current track
	Float_t          fAlpha;       // sector
	
	static Int_t fgEventNumber;				//  Event Number in the tracking code
	static Int_t fgTrackNumber;       //  Track Number per Event
	static Int_t fgCandidateNumber;   //  Candidate Number per event (Set in MakeSeeds)

	ClassDef(AliTRDtrackerDebug, 1) // debug suite of the TRD tracker
};

#endif

 AliTRDtrackerDebug.h:1
 AliTRDtrackerDebug.h:2
 AliTRDtrackerDebug.h:3
 AliTRDtrackerDebug.h:4
 AliTRDtrackerDebug.h:5
 AliTRDtrackerDebug.h:6
 AliTRDtrackerDebug.h:7
 AliTRDtrackerDebug.h:8
 AliTRDtrackerDebug.h:9
 AliTRDtrackerDebug.h:10
 AliTRDtrackerDebug.h:11
 AliTRDtrackerDebug.h:12
 AliTRDtrackerDebug.h:13
 AliTRDtrackerDebug.h:14
 AliTRDtrackerDebug.h:15
 AliTRDtrackerDebug.h:16
 AliTRDtrackerDebug.h:17
 AliTRDtrackerDebug.h:18
 AliTRDtrackerDebug.h:19
 AliTRDtrackerDebug.h:20
 AliTRDtrackerDebug.h:21
 AliTRDtrackerDebug.h:22
 AliTRDtrackerDebug.h:23
 AliTRDtrackerDebug.h:24
 AliTRDtrackerDebug.h:25
 AliTRDtrackerDebug.h:26
 AliTRDtrackerDebug.h:27
 AliTRDtrackerDebug.h:28
 AliTRDtrackerDebug.h:29
 AliTRDtrackerDebug.h:30
 AliTRDtrackerDebug.h:31
 AliTRDtrackerDebug.h:32
 AliTRDtrackerDebug.h:33
 AliTRDtrackerDebug.h:34
 AliTRDtrackerDebug.h:35
 AliTRDtrackerDebug.h:36
 AliTRDtrackerDebug.h:37
 AliTRDtrackerDebug.h:38
 AliTRDtrackerDebug.h:39
 AliTRDtrackerDebug.h:40
 AliTRDtrackerDebug.h:41
 AliTRDtrackerDebug.h:42
 AliTRDtrackerDebug.h:43
 AliTRDtrackerDebug.h:44
 AliTRDtrackerDebug.h:45
 AliTRDtrackerDebug.h:46
 AliTRDtrackerDebug.h:47
 AliTRDtrackerDebug.h:48
 AliTRDtrackerDebug.h:49
 AliTRDtrackerDebug.h:50
 AliTRDtrackerDebug.h:51
 AliTRDtrackerDebug.h:52
 AliTRDtrackerDebug.h:53
 AliTRDtrackerDebug.h:54
 AliTRDtrackerDebug.h:55
 AliTRDtrackerDebug.h:56
 AliTRDtrackerDebug.h:57
 AliTRDtrackerDebug.h:58
 AliTRDtrackerDebug.h:59
 AliTRDtrackerDebug.h:60
 AliTRDtrackerDebug.h:61
 AliTRDtrackerDebug.h:62
 AliTRDtrackerDebug.h:63
 AliTRDtrackerDebug.h:64
 AliTRDtrackerDebug.h:65
 AliTRDtrackerDebug.h:66
 AliTRDtrackerDebug.h:67
 AliTRDtrackerDebug.h:68
 AliTRDtrackerDebug.h:69
 AliTRDtrackerDebug.h:70
 AliTRDtrackerDebug.h:71
 AliTRDtrackerDebug.h:72
 AliTRDtrackerDebug.h:73
 AliTRDtrackerDebug.h:74
 AliTRDtrackerDebug.h:75
 AliTRDtrackerDebug.h:76
 AliTRDtrackerDebug.h:77
 AliTRDtrackerDebug.h:78
 AliTRDtrackerDebug.h:79
 AliTRDtrackerDebug.h:80
 AliTRDtrackerDebug.h:81