parallelcoord.C

Go to the documentation of this file.
00001 #include "TFile.h"
00002 #include "TCanvas.h"
00003 #include "TStyle.h"
00004 #include "TRandom.h"
00005 #include "TNtuple.h"
00006 #include "TParallelCoord.h"
00007 #include "TParallelCoordVar.h"
00008 #include "TParallelCoordRange.h"
00009    
00010 // script illustrating the use of the TParalleCoord class
00011 //Author: Bastien Dallapiazza
00012 
00013 Double_t r1,r2,r3,r4,r5,r6,r7,r8,r9;
00014 Double_t dr = 3.5;
00015 TRandom *r;
00016 
00017 void generate_random(Int_t i) {
00018    r1 = (2*dr*r->Rndm(i))-dr;
00019    r2 = (2*dr*r->Rndm(i))-dr;
00020    r7 = (2*dr*r->Rndm(i))-dr;
00021    r9 = (2*dr*r->Rndm(i))-dr;
00022    r4 = (2*dr*r->Rndm(i))-dr;
00023    r3 = (2*dr*r->Rndm(i))-dr;
00024    r5 = (2*dr*r->Rndm(i))-dr;
00025    r6 = (2*dr*r->Rndm(i))-dr;
00026    r8 = (2*dr*r->Rndm(i))-dr;
00027 }
00028 
00029 void parallelcoord() {
00030    
00031    TNtuple *nt = NULL;
00032    
00033    Double_t s1x, s1y, s1z;
00034    Double_t s2x, s2y, s2z;
00035    Double_t s3x, s3y, s3z;
00036    r = new TRandom();;
00037 
00038    new TCanvas("c1", "c1",0,0,800,700);
00039    gStyle->SetPalette(1);       
00040 
00041    nt = new TNtuple("nt","Demo ntuple","x:y:z:u:v:w");
00042 
00043    for (Int_t i=0; i<20000; i++) {
00044       r->Sphere(s1x, s1y, s1z, 0.1);
00045       r->Sphere(s2x, s2y, s2z, 0.2);
00046       r->Sphere(s3x, s3y, s3z, 0.05);
00047       
00048       generate_random(i);
00049       nt->Fill(r1, r2, r3, r4, r5, r6);
00050       
00051       generate_random(i);
00052       nt->Fill(s1x, s1y, s1z, s2x, s2y, s2z);
00053 
00054       generate_random(i);
00055       nt->Fill(r1, r2, r3, r4, r5, r6);
00056 
00057       generate_random(i);
00058       nt->Fill(s2x-1, s2y-1, s2z, s1x+.5, s1y+.5, s1z+.5);
00059       
00060       generate_random(i);
00061       nt->Fill(r1, r2, r3, r4, r5, r6);
00062 
00063       generate_random(i);
00064       nt->Fill(s1x+1, s1y+1, s1z+1, s3x-2, s3y-2, s3z-2);
00065 
00066       generate_random(i);
00067       nt->Fill(r1, r2, r3, r4, r5, r6);
00068    }
00069    nt->Draw("x:y:z:u:v:w","","para",5000);
00070    TParallelCoord* para = (TParallelCoord*)gPad->GetListOfPrimitives()->FindObject("ParaCoord");
00071    para->SetDotsSpacing(5);
00072    TParallelCoordVar* firstaxis = (TParallelCoordVar*)para->GetVarList()->FindObject("x");
00073    firstaxis->AddRange(new TParallelCoordRange(firstaxis,0.846018,1.158469));
00074    para->AddSelection("violet");
00075    para->GetCurrentSelection()->SetLineColor(kViolet);
00076    firstaxis->AddRange(new TParallelCoordRange(firstaxis,-0.169447,0.169042));
00077    para->AddSelection("Orange");
00078    para->GetCurrentSelection()->SetLineColor(kOrange+9);
00079    firstaxis->AddRange(new TParallelCoordRange(firstaxis,-1.263024,-0.755292));
00080 }

Generated on Tue Jul 5 15:45:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1