ROOT logo
// ----------------------------------------------------//
//                                                     //
//       This macro reads the PMD clusters,            //
//       does photon/hadron discrimination             //
//       and stores in the ESD                         //
//                                                     //
// ----------------------------------------------------//

#include <Riostream.h>
#include "TBranch.h"
#include "TStopwatch.h"

extern AliRun *gAlice;

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

  AliRunLoader *fRunLoader = AliRunLoader::Open("galice.root");
  if (!fRunLoader)
    {
      cerr<<"Can't load RunLoader"<<endl;
      return 1;
    }
  fRunLoader->LoadgAlice();
  gAlice = fRunLoader->GetAliRun();

  AliLoader *pmdloader = fRunLoader->GetLoader("PMDLoader");
  //  Int_t nevent = fRunLoader->GetNumberOfEvents();
  cout << " ************ nevent = " << nevent << endl;
  
  if (pmdloader == 0x0)
    {
      cerr<<" ===> Can not find PMD or PMDLoader <===\n";
      delete fRunLoader;
      return 2;
    }
  pmdloader->LoadRecPoints("READ");

  TFile *bf=TFile::Open("AliESDcheck.root","RECREATE");
  if (!bf || !bf->IsOpen()) {
    cerr<<"Can't open AliESDcheck.root !\n"; return 1;
  }

  Char_t ename[100]; 

  for (Int_t ievt = 0; ievt < nevent; ievt++)
    {

      AliESD *event=new AliESD(); 
      Int_t run = 0;
      event->SetRunNumber(run);
      event->SetEventNumber(ievt);

      fRunLoader->GetEvent(ievt);
      TTree *treeR = pmdloader->TreeR();
      if (treeR == 0x0)
	{
	  cout << " Can not get TreeR" << endl;
	  return 3;
	}
      AliPMDtracker *pmdtracker = new AliPMDtracker();
      pmdtracker->LoadClusters(treeR);
      pmdtracker->Clusters2Tracks(event);

      bf->cd();
      sprintf(ename,"in%d",ievt);
      event->Write(ename); bf->Flush();
      
      delete pmdtracker;  
      delete event;
    }
  bf->Close();
  return 0;
}

 AliESDPmdTest.C:1
 AliESDPmdTest.C:2
 AliESDPmdTest.C:3
 AliESDPmdTest.C:4
 AliESDPmdTest.C:5
 AliESDPmdTest.C:6
 AliESDPmdTest.C:7
 AliESDPmdTest.C:8
 AliESDPmdTest.C:9
 AliESDPmdTest.C:10
 AliESDPmdTest.C:11
 AliESDPmdTest.C:12
 AliESDPmdTest.C:13
 AliESDPmdTest.C:14
 AliESDPmdTest.C:15
 AliESDPmdTest.C:16
 AliESDPmdTest.C:17
 AliESDPmdTest.C:18
 AliESDPmdTest.C:19
 AliESDPmdTest.C:20
 AliESDPmdTest.C:21
 AliESDPmdTest.C:22
 AliESDPmdTest.C:23
 AliESDPmdTest.C:24
 AliESDPmdTest.C:25
 AliESDPmdTest.C:26
 AliESDPmdTest.C:27
 AliESDPmdTest.C:28
 AliESDPmdTest.C:29
 AliESDPmdTest.C:30
 AliESDPmdTest.C:31
 AliESDPmdTest.C:32
 AliESDPmdTest.C:33
 AliESDPmdTest.C:34
 AliESDPmdTest.C:35
 AliESDPmdTest.C:36
 AliESDPmdTest.C:37
 AliESDPmdTest.C:38
 AliESDPmdTest.C:39
 AliESDPmdTest.C:40
 AliESDPmdTest.C:41
 AliESDPmdTest.C:42
 AliESDPmdTest.C:43
 AliESDPmdTest.C:44
 AliESDPmdTest.C:45
 AliESDPmdTest.C:46
 AliESDPmdTest.C:47
 AliESDPmdTest.C:48
 AliESDPmdTest.C:49
 AliESDPmdTest.C:50
 AliESDPmdTest.C:51
 AliESDPmdTest.C:52
 AliESDPmdTest.C:53
 AliESDPmdTest.C:54
 AliESDPmdTest.C:55
 AliESDPmdTest.C:56
 AliESDPmdTest.C:57
 AliESDPmdTest.C:58
 AliESDPmdTest.C:59
 AliESDPmdTest.C:60
 AliESDPmdTest.C:61
 AliESDPmdTest.C:62
 AliESDPmdTest.C:63
 AliESDPmdTest.C:64
 AliESDPmdTest.C:65
 AliESDPmdTest.C:66
 AliESDPmdTest.C:67
 AliESDPmdTest.C:68
 AliESDPmdTest.C:69
 AliESDPmdTest.C:70
 AliESDPmdTest.C:71
 AliESDPmdTest.C:72
 AliESDPmdTest.C:73
 AliESDPmdTest.C:74
 AliESDPmdTest.C:75
 AliESDPmdTest.C:76
 AliESDPmdTest.C:77
 AliESDPmdTest.C:78
 AliESDPmdTest.C:79
 AliESDPmdTest.C:80
 AliESDPmdTest.C:81
 AliESDPmdTest.C:82