ROOT logo

#if !defined(__CINT__) || defined(__MAKECINT__)
  #include <TMath.h>
  #include <TError.h>
  #include <Riostream.h>
  #include <TH1F.h>
  #include <TH2F.h>
  #include <TTree.h>
  #include <TParticle.h>
  #include <TCanvas.h>
  #include <TLine.h>
  #include <TText.h>
  #include <TBenchmark.h>
  #include <TStyle.h>
  #include <TFile.h>
  #include <TROOT.h>
  #include <TNtuple.h>
  #include <TEllipse.h>
  #include <TGeoManager.h>

  #include "AliStack.h"
  #include "AliHeader.h"
  #include "AliTrackReference.h"
  #include "AliRunLoader.h"
  #include "AliRun.h"
  #include "AliESDEvent.h"
  #include "AliESDtrack.h"

  #include "UPGRADE/AliITSUClusterPix.h"
  #include "UPGRADE/AliITSULoader.h"
  #include "UPGRADE/AliITSUGeomTGeo.h"
#endif


Int_t check_radii(const Char_t *dir=".") {
   TFile *f=TFile::Open("xyz.root","recreate");
   TNtuple *nt=new TNtuple("nt","my ntuple","x:y:z");

   if (gAlice) { 
       delete AliRunLoader::Instance();
       delete gAlice;//if everything was OK here it is already NULL
       gAlice = 0x0;
   }

   Char_t fname[100];
   sprintf(fname,"%s/galice.root",dir);

   AliRunLoader *rl = AliRunLoader::Open(fname,"COMPARISON");
   if (!rl) {
      ::Error("GoodTracksITS","Can't start session !");
      return 1;
   }

   rl->LoadgAlice();
   rl->LoadHeader();
   rl->LoadKinematics();

   AliITSULoader* itsl = (AliITSULoader*)rl->GetLoader("ITSLoader");
   if (itsl == 0x0) {
       ::Error("GoodTracksITS","Can not find the ITSLoader");
       delete rl;
       return 4;
   }
   itsl->LoadRecPoints();
  
   TGeoManager::Import("geometry.root");
   AliITSUGeomTGeo* gm = new AliITSUGeomTGeo(kTRUE,kTRUE);
   AliITSUClusterPix::SetGeom(gm);

   Int_t nev=rl->GetNumberOfEvents();
   ::Info("GoodTracksITS","Number of events : %d\n",nev);  

   //********  Loop over generated events 
   for (Int_t e=0; e<nev; e++) {
     Int_t k;

     rl->GetEvent(e);

     TTree *cTree=itsl->TreeR();
     if (!cTree) {
        ::Error("GoodTracksITS","Can't get the cluster tree !"); 
        delete rl;
        return 8;
     }

     const Int_t nLayers=7;
     TBranch *branch[nLayers];
     TClonesArray clusters[nLayers];
     for (Int_t layer=0; layer<nLayers; layer++) {
       TClonesArray *ptr = 
       new(clusters+layer) TClonesArray("AliITSUClusterPix",1000);
       Char_t bname[33];
       sprintf(bname,"ITSRecPoints%d\0",layer);
       branch[layer]=cTree->GetBranch(bname);
       if (!branch[layer]) {
          ::Error("GoodTracksITS","Can't get the clusters branch !"); 
          delete rl;
          return 9;
       }
       branch[layer]->SetAddress(&ptr);
     }

     Int_t entr=(Int_t)cTree->GetEntries();
     for (k=0; k<entr; k++) {
         cTree->GetEvent(k);
         for (Int_t lay=0; lay<nLayers; lay++) {
             Int_t ncl=clusters[lay].GetEntriesFast(); if (ncl==0) continue;
             while (ncl--) {
                AliITSUClusterPix *pnt=
                (AliITSUClusterPix*)clusters[lay].UncheckedAt(ncl);
                Float_t g[3];
                pnt->GetGlobalXYZ(g);
                //pnt->GetLocalXYZ(g);
                //cout<<g[0]<<' '<<g[1]<<' '<<g[2]<<endl;
                nt->Fill(g);
	     }
             clusters[lay].Clear();
	 }
     }


   } //*** end of the loop over generated events

   nt->Draw("y:x");
   Float_t rmin=19.44;
   TEllipse *ellipse = new TEllipse(0,0,rmin,rmin,0,360,0);
   ellipse->SetFillStyle(0);
   ellipse->SetLineColor(2);
   ellipse->Draw();
   
   Float_t rmax=19.77;
   ellipse = new TEllipse(0,0,rmax,rmax,0,360,0);
   ellipse->SetFillStyle(0);
   ellipse->SetLineColor(4);
   ellipse->Draw();

   delete rl;
   return 0;
}


 check_radii.C:1
 check_radii.C:2
 check_radii.C:3
 check_radii.C:4
 check_radii.C:5
 check_radii.C:6
 check_radii.C:7
 check_radii.C:8
 check_radii.C:9
 check_radii.C:10
 check_radii.C:11
 check_radii.C:12
 check_radii.C:13
 check_radii.C:14
 check_radii.C:15
 check_radii.C:16
 check_radii.C:17
 check_radii.C:18
 check_radii.C:19
 check_radii.C:20
 check_radii.C:21
 check_radii.C:22
 check_radii.C:23
 check_radii.C:24
 check_radii.C:25
 check_radii.C:26
 check_radii.C:27
 check_radii.C:28
 check_radii.C:29
 check_radii.C:30
 check_radii.C:31
 check_radii.C:32
 check_radii.C:33
 check_radii.C:34
 check_radii.C:35
 check_radii.C:36
 check_radii.C:37
 check_radii.C:38
 check_radii.C:39
 check_radii.C:40
 check_radii.C:41
 check_radii.C:42
 check_radii.C:43
 check_radii.C:44
 check_radii.C:45
 check_radii.C:46
 check_radii.C:47
 check_radii.C:48
 check_radii.C:49
 check_radii.C:50
 check_radii.C:51
 check_radii.C:52
 check_radii.C:53
 check_radii.C:54
 check_radii.C:55
 check_radii.C:56
 check_radii.C:57
 check_radii.C:58
 check_radii.C:59
 check_radii.C:60
 check_radii.C:61
 check_radii.C:62
 check_radii.C:63
 check_radii.C:64
 check_radii.C:65
 check_radii.C:66
 check_radii.C:67
 check_radii.C:68
 check_radii.C:69
 check_radii.C:70
 check_radii.C:71
 check_radii.C:72
 check_radii.C:73
 check_radii.C:74
 check_radii.C:75
 check_radii.C:76
 check_radii.C:77
 check_radii.C:78
 check_radii.C:79
 check_radii.C:80
 check_radii.C:81
 check_radii.C:82
 check_radii.C:83
 check_radii.C:84
 check_radii.C:85
 check_radii.C:86
 check_radii.C:87
 check_radii.C:88
 check_radii.C:89
 check_radii.C:90
 check_radii.C:91
 check_radii.C:92
 check_radii.C:93
 check_radii.C:94
 check_radii.C:95
 check_radii.C:96
 check_radii.C:97
 check_radii.C:98
 check_radii.C:99
 check_radii.C:100
 check_radii.C:101
 check_radii.C:102
 check_radii.C:103
 check_radii.C:104
 check_radii.C:105
 check_radii.C:106
 check_radii.C:107
 check_radii.C:108
 check_radii.C:109
 check_radii.C:110
 check_radii.C:111
 check_radii.C:112
 check_radii.C:113
 check_radii.C:114
 check_radii.C:115
 check_radii.C:116
 check_radii.C:117
 check_radii.C:118
 check_radii.C:119
 check_radii.C:120
 check_radii.C:121
 check_radii.C:122
 check_radii.C:123
 check_radii.C:124
 check_radii.C:125
 check_radii.C:126
 check_radii.C:127
 check_radii.C:128
 check_radii.C:129
 check_radii.C:130
 check_radii.C:131
 check_radii.C:132
 check_radii.C:133
 check_radii.C:134
 check_radii.C:135
 check_radii.C:136
 check_radii.C:137
 check_radii.C:138
 check_radii.C:139
 check_radii.C:140
 check_radii.C:141
 check_radii.C:142