ROOT logo
void ReadACORDEHits (Int_t numberOfEvents=-1,
		     const char *filename="galice.root")

  //  produces some plots from acorde hits

{
  // Dynamically link some shared libs
  if (gClassTable->GetID("AliRun") < 0) 
    {
      gROOT->LoadMacro("loadlibs.C");
      loadlibs();
    }
  if (gAlice)
    {
      delete gAlice->GetRunLoader();
      delete gAlice;
      gAlice = 0x0;
    }

  // get loaders
  AliRunLoader *rl =
    AliRunLoader::Open("galice.root",
		       AliConfig::GetDefaultEventFolderName(),"read");
  if (!rl)
    {
      cerr<<"Can't load RunLoader from file! \n";      return 0x0;
    }
  
  rl->LoadgAlice();
  gAlice = rl->GetAliRun();
  if (!gAlice)
    {
      cerr << " AliRun object not found on file \n";     return 0x0; 
    }
  rl->LoadHeader();
  

  // Get the pointer to the ACORDE detector
  AliLoader *acordel = rl->GetLoader("ACORDELoader");
  AliACORDE *ACORDE = (AliACORDE *) gAlice->GetDetector("ACORDE");
  if (ACORDE == 0x0 || acordel == 0x0) {
    cerr << " Can not find ACORDE or ACORDELoader \n";    return 0x0;  
  }

  // get number of events 
  if (numberOfEvents<0) numberOfEvents=(Int_t)(rl->GetNumberOfEvents());
  
  //create histograms
  TH1F *elossH = new TH1F("eloss" ,"Energy Loss ",1000,0.,10);
  TH2F *geoH = new TH2F("geo"," ACORDE geometry seen by hits",
			250, -750,750, 250, -500,500);

  for (Int_t ievent=0; ievent<numberOfEvents; ievent++) {
    if ((ievent%10) == 0)  printf ("Processing event %d \n", ievent);
    rl->GetEvent(ievent);
    
    // Get the pointer Hit tree
    acordel->LoadHits();
    TTree *hitTree = acordel->TreeH();
    ACORDE->SetTreeAddress();
    if (!hitTree) {
      cout << " No TreeH found" << endl;      return 0x0; //rc;
    }
    
    rl->LoadKinematics();
    Int_t nTrack = (Int_t) hitTree->GetEntries();
    
    // Start loop on tracks in the hits containers
    for(Int_t iTrack=0; iTrack<nTrack;iTrack++){
      ACORDE->ResetHits();
      hitTree->GetEvent(iTrack);          
      if(ACORDE) {	 
	for(acordeHit=(AliACORDEhit*)ACORDE->FirstHit(-1);acordeHit;
	    acordeHit=(AliACORDEhit*)ACORDE->NextHit()) {
	  elossH->Fill( (Float_t)(acordeHit->Eloss()*1000.0));
	  geoH->Fill(acordeHit->X(),acordeHit->Z());
	} // end for acordeHits
      } // end if ACORDE
    } // end for iTrack  
  }
 // save histos in a root file
  TFile *fout = new TFile("ACORDE_hits.root","RECREATE");
  elossH->Write();
  geoH->Write();
  fout->Close();
}
 ReadACORDEHits.C:1
 ReadACORDEHits.C:2
 ReadACORDEHits.C:3
 ReadACORDEHits.C:4
 ReadACORDEHits.C:5
 ReadACORDEHits.C:6
 ReadACORDEHits.C:7
 ReadACORDEHits.C:8
 ReadACORDEHits.C:9
 ReadACORDEHits.C:10
 ReadACORDEHits.C:11
 ReadACORDEHits.C:12
 ReadACORDEHits.C:13
 ReadACORDEHits.C:14
 ReadACORDEHits.C:15
 ReadACORDEHits.C:16
 ReadACORDEHits.C:17
 ReadACORDEHits.C:18
 ReadACORDEHits.C:19
 ReadACORDEHits.C:20
 ReadACORDEHits.C:21
 ReadACORDEHits.C:22
 ReadACORDEHits.C:23
 ReadACORDEHits.C:24
 ReadACORDEHits.C:25
 ReadACORDEHits.C:26
 ReadACORDEHits.C:27
 ReadACORDEHits.C:28
 ReadACORDEHits.C:29
 ReadACORDEHits.C:30
 ReadACORDEHits.C:31
 ReadACORDEHits.C:32
 ReadACORDEHits.C:33
 ReadACORDEHits.C:34
 ReadACORDEHits.C:35
 ReadACORDEHits.C:36
 ReadACORDEHits.C:37
 ReadACORDEHits.C:38
 ReadACORDEHits.C:39
 ReadACORDEHits.C:40
 ReadACORDEHits.C:41
 ReadACORDEHits.C:42
 ReadACORDEHits.C:43
 ReadACORDEHits.C:44
 ReadACORDEHits.C:45
 ReadACORDEHits.C:46
 ReadACORDEHits.C:47
 ReadACORDEHits.C:48
 ReadACORDEHits.C:49
 ReadACORDEHits.C:50
 ReadACORDEHits.C:51
 ReadACORDEHits.C:52
 ReadACORDEHits.C:53
 ReadACORDEHits.C:54
 ReadACORDEHits.C:55
 ReadACORDEHits.C:56
 ReadACORDEHits.C:57
 ReadACORDEHits.C:58
 ReadACORDEHits.C:59
 ReadACORDEHits.C:60
 ReadACORDEHits.C:61
 ReadACORDEHits.C:62
 ReadACORDEHits.C:63
 ReadACORDEHits.C:64
 ReadACORDEHits.C:65
 ReadACORDEHits.C:66
 ReadACORDEHits.C:67
 ReadACORDEHits.C:68
 ReadACORDEHits.C:69
 ReadACORDEHits.C:70
 ReadACORDEHits.C:71
 ReadACORDEHits.C:72
 ReadACORDEHits.C:73
 ReadACORDEHits.C:74
 ReadACORDEHits.C:75
 ReadACORDEHits.C:76
 ReadACORDEHits.C:77
 ReadACORDEHits.C:78
 ReadACORDEHits.C:79
 ReadACORDEHits.C:80
 ReadACORDEHits.C:81
 ReadACORDEHits.C:82
 ReadACORDEHits.C:83
 ReadACORDEHits.C:84
 ReadACORDEHits.C:85
 ReadACORDEHits.C:86
 ReadACORDEHits.C:87