ROOT logo
void readHit(int nev=-1,int evStart=0)
{
  gROOT->SetStyle("Plain");

  gSystem->Load("libITSUpgradeBase");
  gSystem->Load("libITSUpgradeSim");

  TH2F *xyGlob = new TH2F("xyGlob"," X - Y Global coordinates ",100,-50,50,100,-50,50);
  xyGlob->SetXTitle("cm");
  xyGlob->SetMarkerStyle(7);
  TH1F *zGlob  = new TH1F("zGlob", " Z Global coordinates ",200, -100,100 );
  zGlob->SetXTitle("cm");

  Int_t nbins=100;
  Double_t xmin=0;
  Double_t xmax=1e-04;

  gAlice=NULL;
  AliRunLoader* runLoader = AliRunLoader::Open("galice.root");
  runLoader->LoadgAlice();

  gAlice = runLoader->GetAliRun();

  runLoader->LoadHeader();
  runLoader->LoadKinematics();
  runLoader->LoadSDigits();
  runLoader->LoadHits();

  AliGeomManager::LoadGeometry("geometry.root");
  AliITSUGeomTGeo* gm = new AliITSUGeomTGeo(kTRUE);

  AliLoader *dl = runLoader->GetDetectorLoader("ITS");



  Int_t nLayers = gm->GetNLayers();

  TH1D **hDeLoss = new TH1D*[nLayers];
  for(Int_t i=0; i< nLayers; i++ ) {
    hDeLoss[i] = new TH1D(Form("hDeLossl%i",i),Form("E loss distribution [ Layer %i] ",i),nbins,xmin,xmax);
    hDeLoss[i]->SetXTitle("GeV");
  }

  int nevTot = (Int_t)runLoader->GetNumberOfEvents();
  printf("N Events : %i \n",nevTot);
  evStart = evStart<nevTot ? evStart : nevTot-1;
  if (evStart<0) evStart = 0;
  //
  int lastEv = nev<0 ? nevTot : evStart+nev;
  if (lastEv > nevTot) lastEv = nevTot;
  //

  //HIT INIT

  TTree *hitTree = 0x0;
  TClonesArray *hitList=new TClonesArray("AliITSUHit");

  for (Int_t iEvent = evStart; iEvent < lastEv; iEvent++) {

    printf("\nEvent\t%d\n",iEvent);
 
    runLoader->GetEvent(iEvent);
    
    hitTree=dl->TreeH();
    hitTree->SetBranchAddress("ITS",&hitList);
    for(Int_t iEnt=0;iEnt<hitTree->GetEntries();iEnt++){//entries loop degli hits
      hitTree->GetEntry(iEnt);
      for(Int_t iHit=0; iHit<hitList->GetEntries();iHit++){
	      
	AliITSUHit *pHit = (AliITSUHit*)hitList->At(iHit);
	int id = pHit->GetChip();
	int lr = gm->GetLayer(id);
	int ld = gm->GetStave(id);
	//
	//	if(pHit->GetParticle()->IsPrimary()){
	Double_t xg,yg,zg=0.;
	Double_t xg0,yg0,zg0=0.,tg0;
	pHit->GetPositionG(xg,yg,zg);
	pHit->GetPositionG0(xg0,yg0,zg0,tg0);
	xyGlob->Fill(xg,yg);
	zGlob->Fill(zg);
	printf("Chip %5d | Lr:%2d Stave: %3d, X:[%+.5e:%+.5e] Y:[%+.5e:%+.5e] Z:[%+.5e %+.5e] DE: %.5e TrackID: %d\n",id,lr,ld,
	       xg0,xg,yg0,yg,zg0,zg,pHit->GetIonization(),pHit->GetTrack());
	hDeLoss[lr]->Fill(pHit->GetIonization());
	//	} // is primary
      }//loop hit 
    }//entryloopHitList
	
  }//event loop

  TCanvas *xyCanv =  new TCanvas("xyCanv","Hit X-Y positions",500,500);
  xyCanv->cd();
  xyGlob->Draw();
  TCanvas *zCanv =  new TCanvas("zCanv","Hit Z positions",500,500);
  zCanv->cd();
  zGlob->Draw();

  TCanvas *c = new TCanvas("c","E loss  distribution per layer",1000,800);
  c->Divide(nLayers&0x1 ?  (nLayers/2+1) : nLayers/2,2);
  for(Int_t ip =1; ip<=nLayers; ip++){
    c->cd(ip);
    hDeLoss[ip-1]->Draw();
  }

}
 readHit.C:1
 readHit.C:2
 readHit.C:3
 readHit.C:4
 readHit.C:5
 readHit.C:6
 readHit.C:7
 readHit.C:8
 readHit.C:9
 readHit.C:10
 readHit.C:11
 readHit.C:12
 readHit.C:13
 readHit.C:14
 readHit.C:15
 readHit.C:16
 readHit.C:17
 readHit.C:18
 readHit.C:19
 readHit.C:20
 readHit.C:21
 readHit.C:22
 readHit.C:23
 readHit.C:24
 readHit.C:25
 readHit.C:26
 readHit.C:27
 readHit.C:28
 readHit.C:29
 readHit.C:30
 readHit.C:31
 readHit.C:32
 readHit.C:33
 readHit.C:34
 readHit.C:35
 readHit.C:36
 readHit.C:37
 readHit.C:38
 readHit.C:39
 readHit.C:40
 readHit.C:41
 readHit.C:42
 readHit.C:43
 readHit.C:44
 readHit.C:45
 readHit.C:46
 readHit.C:47
 readHit.C:48
 readHit.C:49
 readHit.C:50
 readHit.C:51
 readHit.C:52
 readHit.C:53
 readHit.C:54
 readHit.C:55
 readHit.C:56
 readHit.C:57
 readHit.C:58
 readHit.C:59
 readHit.C:60
 readHit.C:61
 readHit.C:62
 readHit.C:63
 readHit.C:64
 readHit.C:65
 readHit.C:66
 readHit.C:67
 readHit.C:68
 readHit.C:69
 readHit.C:70
 readHit.C:71
 readHit.C:72
 readHit.C:73
 readHit.C:74
 readHit.C:75
 readHit.C:76
 readHit.C:77
 readHit.C:78
 readHit.C:79
 readHit.C:80
 readHit.C:81
 readHit.C:82
 readHit.C:83
 readHit.C:84
 readHit.C:85
 readHit.C:86
 readHit.C:87
 readHit.C:88
 readHit.C:89
 readHit.C:90
 readHit.C:91
 readHit.C:92
 readHit.C:93
 readHit.C:94
 readHit.C:95
 readHit.C:96
 readHit.C:97
 readHit.C:98
 readHit.C:99
 readHit.C:100
 readHit.C:101
 readHit.C:102
 readHit.C:103
 readHit.C:104
 readHit.C:105
 readHit.C:106