]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCDisplayClusters.C
Moved from AliTransbit to AliL3Transbit.
[u/mrichter/AliRoot.git] / TPC / AliTPCDisplayClusters.C
1 Int_t AliTPCDisplayClusters(Int_t eventn=0, Int_t noiseth=15) {
2    cerr<<"Displaying clusters...\n";
3
4    TFile *file=TFile::Open("galice.root");
5    if (!file->IsOpen()) {cerr<<"Can't open galice.root !\n"; return 1;}
6
7    TFile *cf=TFile::Open("AliTPCclusters.root");
8    if (!cf->IsOpen()){cerr<<"Can't open AliTPCclusters.root !\n"; return 3;}
9
10    AliTPCParam *dig=(AliTPCParam *)cf->Get("75x40_100x60");
11    if (!dig) {cerr<<"TPC parameters have not been found !\n"; return 2;}
12
13    TCanvas *c1=new TCanvas("cdisplay", "Cluster display",0,0,700,730);
14    TView *v=new TView(1);
15    v->SetRange(-430,-560,-430,430,560,1710);
16    c1->Clear();
17    c1->SetFillColor(1);
18    c1->SetTheta(90.);
19    c1->SetPhi(0.);
20
21    AliTPCClustersArray *ca=new AliTPCClustersArray;
22    ca->Setup(dig);
23    ca->SetClusterType("AliTPCcluster");
24    char  cname[100];
25    sprintf(cname,"TreeC_TPC_%d",eventn);
26
27    ca->ConnectTree(cname);
28    Int_t nrows=Int_t(ca->GetTree()->GetEntries());
29    for (Int_t n=0; n<nrows; n++) {
30        AliSegmentID *s=ca->LoadEntry(n);
31        Int_t sec,row;
32        dig->AdjustSectorRow(s->GetID(),sec,row);
33        AliTPCClustersRow &clrow = *ca->GetRow(sec,row);
34        Int_t ncl=clrow.GetArray()->GetEntriesFast();
35        TPolyMarker3D *pm=new TPolyMarker3D(ncl);
36        while (ncl--) {
37            AliTPCcluster *cl=(AliTPCcluster*)clrow[ncl];
38            Double_t x=dig->GetPadRowRadii(sec,row), y=cl->GetY(), z=cl->GetZ();
39            if (cl->GetQ()<noiseth) continue;
40            Float_t cs, sn, tmp;
41            dig->AdjustCosSin(sec,cs,sn);
42            tmp = x*cs-y*sn; y= x*sn+y*cs; x=tmp;
43            pm->SetPoint(ncl,x,y,z);
44        }
45        ca->ClearRow(sec,row);
46        pm->SetMarkerSize(1); pm->SetMarkerColor(2); pm->SetMarkerStyle(1);
47        pm->Draw();
48    }
49    delete ca;
50    cf->Close();
51
52    TGeometry *geom=(TGeometry*)file->Get("AliceGeom");
53    TList *list = geom->GetListOfNodes();
54    TNode * main = (geom->GetListOfNodes())->First();
55    TIter next(main->GetListOfNodes());
56    TNode  *module=0;
57    while((module = (TNode*)next())) {
58      char ch[100];
59      sprintf(ch,"%s\n",module->GetTitle());
60      //printf("%s\n",module->GetTitle());
61      if (ch[0]=='T'&&ch[1]=='P' && ch[2]=='C')  //if TPC draw
62        module->SetVisibility(3);
63      else
64        module->SetVisibility(-1);
65    }
66      
67    
68    geom->Draw("same");
69    //v->Draw();
70    c1->Modified(); c1->Update(); 
71
72    file->Close();
73    return 0;
74 }
75