clusterizer,reconstructor + many fixes (Magnus,Stefan)
[u/mrichter/AliRoot.git] / ITS / UPGRADE / readClusters.C
1 void readClusters(){
2
3   gSystem->Load("libITSUpgradeBase");
4   gSystem->Load("libITSUpgradeRec");
5   gROOT->SetStyle("Plain");
6
7   gAlice=NULL;
8   AliRunLoader* runLoader = AliRunLoader::Open("galice.root");
9   runLoader->LoadgAlice();
10
11   gAlice = runLoader->GetAliRun();
12
13   runLoader->LoadHeader();
14   runLoader->LoadKinematics();
15   runLoader->LoadRecPoints();
16
17   AliLoader *dl = runLoader->GetDetectorLoader("ITS");
18
19   AliGeomManager::LoadGeometry("geometry.root");
20   AliITSUGeomTGeo* gm = new AliITSUGeomTGeo(kTRUE);
21   Int_t nLayers = gm->GetNLayers();
22
23   TH2F *xyGlob = new TH2F("xyGlob"," X - Y Global coordinates ",500,-50,50,500,-50,50);
24   xyGlob->SetXTitle("cm"); 
25   xyGlob->SetMarkerStyle(7); 
26   TH1F *zGlob  = new TH1F("zGlob", " Z Global coordinates ",200, -50,50 );
27   zGlob->SetXTitle("cm"); 
28
29
30   TTree * cluTree = 0x0;
31   TObjArray layerClus;
32
33   printf("N Events : %i \n",(Int_t)runLoader->GetNumberOfEvents());
34
35   for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
36     printf("\n Event %i \n",iEvent);
37     runLoader->GetEvent(iEvent);
38     //   AliStack *stack = runLoader->Stack();
39     cluTree=dl->TreeR();
40     int nlr=0;
41     while(1) {
42       TBranch* br = cluTree->GetBranch(Form("ITSRecPoints%d",nlr));
43       if (!br) break;
44       TClonesArray* clr = 0;
45       br->SetAddress(&clr);
46       layerClus.AddLast(clr);
47       nlr++;
48     }
49
50     printf(" tree entries: %d\n",cluTree->GetEntries());
51     cluTree->GetEntry(0);      
52     //
53     for (int ilr=0;ilr<nlr;ilr++) {
54       TClonesArray* clr = (TClonesArray*)layerClus.At(ilr);
55       int nClu = clr->GetEntries();
56       printf("Layer %d : %d clusters\n",ilr,nClu);
57       //
58       for (int icl=0;icl<nClu;icl++) {
59         AliCluster *cl = (AliCluster*)clr->At(icl);
60         Double_t loc[3]={cl->GetX(),cl->GetY(),cl->GetZ()}; 
61         Double_t glob[3]; 
62         gm->LocalToGlobal(cl->GetVolumeId(),loc,glob);
63         printf("%d: mod %d: loc(%.4lf,%.4lf,%.4lf); glob(%.4lf,%.4lf,%.4lf); \n",icl,cl->GetVolumeId(),
64                loc[0],loc[1],loc[2],glob[0],glob[1],glob[2]);
65
66         xyGlob->Fill(glob[0],glob[1]);
67         zGlob->Fill(glob[2]);
68  
69       }
70     }
71     layerClus.Clear();
72   }//event loop
73
74   Int_t size = 400;
75
76   TCanvas *xyCanv =  new TCanvas("xvCanvClus","RecPoint X-Y Positions",10,10,size,size);
77   xyCanv->cd();
78   xyGlob->Draw("P");
79
80   TCanvas *zCanv =  new TCanvas("zCanvClus","RecPoint Z Positions",size+20,10,size,size);
81   zCanv->cd();
82   zGlob->Draw();
83
84 }