From 5c494a45e8cf0c2a1a5374dbe494440c5b668b09 Mon Sep 17 00:00:00 2001 From: cblume Date: Tue, 17 Sep 2002 11:15:25 +0000 Subject: [PATCH] Update to track display by Chuncheng --- TRD/AliTRDdisplayTracks.C | 93 +++++++++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 34 deletions(-) diff --git a/TRD/AliTRDdisplayTracks.C b/TRD/AliTRDdisplayTracks.C index d38f1de943d..a10f1ecb804 100644 --- a/TRD/AliTRDdisplayTracks.C +++ b/TRD/AliTRDdisplayTracks.C @@ -1,10 +1,10 @@ -void AliTRDdisplayTracks(Int_t track) +void AliTRDdisplayTracks(Int_t track=157) { c1 = new TCanvas( "RecPoints", "RecPoints Display", 10, 10, 710, 740); c1->SetFillColor(1); TView *v=new TView(1); - + v->SetRange(-350.,-350.,-400.,350.,350.,400.); // full // v->SetRange(0.,0.,0.,350.,350.,400.); // top right // v->SetRange(-350.,0.,0.,0.,350.,400.); // top left @@ -27,7 +27,9 @@ void AliTRDdisplayTracks(Int_t track) TFile *tf=TFile::Open("AliTRDtracks.root"); if (!tf->IsOpen()) {cerr<<"Can't open AliTRDtracks.root !\n"; return 3;} TObjArray tarray(2000); - TTree *tracktree=(TTree*)tf->Get("TreeT"); + // tf->ls(); + TTree *tracktree=(TTree*)tf->Get("TreeT0_TRD"); + // tracktree->ls(); TBranch *tbranch=tracktree->GetBranch("tracks"); Int_t nentr=tracktree->GetEntries(); cerr<<"Found "<ReadClusters(RecPointsArray,alifile,-1); + const TFile *geofile =TFile::Open(alifile); + // AliTRDtracker *Tracker = new AliTRDtracker("dummy","dummy"); + AliTRDtracker *Tracker = new AliTRDtracker(geofile); + Tracker->ReadClusters(RecPointsArray,alifile); Int_t nRecPoints = RecPointsArray->GetEntriesFast(); cerr<<"Found "<GetListOfFiles()->FindObject(alifile); + alifile = "galice.root"; + + TFile *gafl = (TFile*) gROOT->GetListOfFiles()->FindObject(alifile); if (!gafl) { cout << "Open the ALIROOT-file " << alifile << endl; gafl = new TFile(alifile); @@ -62,6 +67,7 @@ void AliTRDdisplayTracks(Int_t track) else { cout << alifile << " is already open" << endl; } + // Get AliRun object from file or create it if not on file gAlice = (AliRun*) gafl->Get("gAlice"); @@ -69,11 +75,12 @@ void AliTRDdisplayTracks(Int_t track) cout << "AliRun object found on file" << endl; else gAlice = new AliRun("gAlice","Alice test program"); + - - AliTRDv1 *TRD = (AliTRDv1*) gAlice->GetDetector("TRD"); - AliTRDgeometry *fGeom = TRD->GetGeometry(); - + AliTRDparameter *par = ( AliTRDparameter *par) gafl->Get("TRDparameter"); + AliTRDv1 *TRD = (AliTRDv1*) gAlice->GetDetector("TRD"); + AliTRDgeometry *fGeom = TRD->GetGeometry(); + Int_t i,j,index,det,sector, ti[3]; Double_t x,y,z, cs,sn,tmp; Float_t global[3], local[3]; @@ -83,52 +90,70 @@ void AliTRDdisplayTracks(Int_t track) for (Int_t i = 0; i < nRecPoints; i++) { printf("\r point %d out of %d",i,nRecPoints); - AliTRDrecPoint *rp = (AliTRDrecPoint *) RecPointsArray->UncheckedAt(i); - - local[0]=rp->GetLocalRow(); - local[1]=rp->GetLocalCol(); - local[2]=rp->GetLocalTime(); - det=rp->GetDetector(); + AliTRDcluster *rp = (AliTRDcluster *) RecPointsArray->UncheckedAt(i); + + Int_t idet=rp->GetDetector(); + Int_t iplan = fGeom->GetPlane(idet); + Int_t itt=rp->GetLocalTimeBin(); + Float_t timeSlice = itt+0.5; + Float_t time0 = par->GetTime0(iplan); + + // calculate (x,y,z) position in rotated chamber + local[0] = time0 - (timeSlice - par->GetTimeBefore()) + * par->GetTimeBinSize(); + local[1]=rp->GetY(); + local[2]=rp->GetZ(); for (j = 0; j < 3; j++) { ti[j] = rp->GetTrackIndex(j); } if((track < 0) || ((ti[0]==track)||(ti[1]==track)||(ti[2]==track))) { - if(fGeom->Local2Global(det,local,global)) { - x=global[0]; y=global[1]; z=global[2]; - pm->SetPoint(i,x,y,z); - } + if(fGeom->RotateBack(idet,local,global)) { + x=global[0]; y=global[1]; z=global[2]; + pm->SetPoint(i,x,y,z); + } + } } pm->SetMarkerSize(1); pm->SetMarkerColor(10); pm->SetMarkerStyle(1); pm->Draw(); + AliTRDparameter *par = ( AliTRDparameter *par) gafl->Get("TRDparameter"); Int_t ntracks = tarray.GetEntriesFast(); for (i = 0; i < ntracks; i++) { AliTRDtrack *pt = (AliTRDtrack *) tarray.UncheckedAt(i), &t=*pt; - Int_t nclusters = t.GetNclusters(); + Int_t nclusters = t.GetNumberOfClusters(); cerr<<"in track "<UncheckedAt(index); - local[0]=rp->GetLocalRow(); - local[1]=rp->GetLocalCol(); - local[2]=rp->GetLocalTime(); - det=rp->GetDetector(); - - if(fGeom->Local2Global(det,local,global)) { - x=global[0]; y=global[1]; z=global[2]; - pm->SetPoint(j,x,y,z); - } + AliTRDcluster *rp = (AliTRDcluster *) RecPointsArray->UncheckedAt(index); + + Int_t idet=rp->GetDetector(); + Int_t iplan = fGeom->GetPlane(idet); + Int_t itt=rp->GetLocalTimeBin(); + Float_t timeSlice = itt+0.5; + Float_t time0 = par->GetTime0(iplan); + + + // calculate (x,y,z) position in rotated chamber + local[0] = time0 - (timeSlice - par->GetTimeBefore()) + * par->GetTimeBinSize(); + local[1]=rp->GetY(); + local[2]=rp->GetZ(); + + if(fGeom->RotateBack(idet,local,global)) { + x=global[0]; y=global[1]; z=global[2]; + pm->SetPoint(j,x,y,z); + } } pm->SetMarkerSize(1); pm->SetMarkerColor(i%6+3); pm->SetMarkerStyle(1); - pm->Draw(); + // pm->Draw(); } TGeometry *geom=(TGeometry*)gafl->Get("AliceGeom"); -- 2.43.0