ROOT logo
// ----------------------------------------------------//
//                                                     //
//    This is a macro  to read PMD.SDigits.root         //
//                                                     //
// ----------------------------------------------------//
#include <Riostream.h>

void AliPMDSDigitsRead(Int_t nevt = 1) 
{
  TStopwatch timer;
  timer.Start();

  //FILE *fpw = fopen("sdigits.dat","w");

  TH2F *h2 = new TH2F("h2","Y vs. X",200,-100.,100.,200,-100.,100.);

  AliRunLoader *fRunLoader = AliRunLoader::Open("galice.root");

  if (!fRunLoader)
    { 
      Error("Open","Can not open session for file %s.",file);
    }
  

  Int_t nEvent = fRunLoader->GetNumberOfEvents();

  fPMDLoader = fRunLoader->GetLoader("PMDLoader");

  if (fPMDLoader == 0x0)
    {
      cerr<<"OpengAlice : Can not find PMD or PMDLoader\n";
    }
  
  fPMDLoader->LoadSDigits("READ");
  TClonesArray *fSDigits = 0x0; 
  
  // -------------------------------------------------------------- //
  
  Int_t    det = 0,smn = 0;
  Int_t    xpos, ypos;
  Int_t    xpad, ypad;
  Float_t  edep;
  Float_t  xx,yy;

  AliPMDUtility cc;  


  AliPMDsdigit  *pmdsdigit = 0x0;
  TBranch *branch;

  if (nevt > nEvent)
    {
      nevt = nEvent;
      printf("Input number is more than the number of events, set to number of events = %d\n",nevt);
    }
  
  for (Int_t ievt = 0; ievt <nevt; ievt++)
    {
      fRunLoader->GetEvent(ievt);
      fTreeS = fPMDLoader->TreeS();
      if (fTreeS == 0x0)
	{
	  cout << " Can not get TreeD" << endl;
	}

      branch = fTreeS->GetBranch("PMDSDigit");
      branch->SetAddress(&fSDigits);
      
      Int_t nmodules = (Int_t) fTreeS->GetEntries();
      
      for (Int_t imodule = 0; imodule < nmodules; imodule++)
	{
	  fTreeS->GetEntry(imodule); 
	  Int_t nentries = fSDigits->GetLast();
	  for (Int_t ient = 0; ient < nentries+1; ient++)
	    {
	      pmdsdigit = (AliPMDsdigit*)fSDigits->UncheckedAt(ient);
	      
	      det    = pmdsdigit->GetDetector();
	      smn    = pmdsdigit->GetSMNumber();
	      xpos   = pmdsdigit->GetRow();
	      ypos   = pmdsdigit->GetColumn();
	      edep   = pmdsdigit->GetCellEdep();
	      Int_t trno   = pmdsdigit->GetTrackNumber();

	      //if (ievt == 0) fprintf(fpw,"Track # = %d\n",trno);
	      
	      if(smn <12)
		{
		  xpad = ypos;
		  ypad = xpos;
		}
	      else if(smn >=12 && smn < 24)
		{
		  xpad = xpos;
		  ypad = ypos;
		}
	      
	      if(det == 1)
		{
		  cc.RectGeomCellPos(smn,xpad,ypad,xx,yy);
		  h2->Fill(xx,yy);  
		}
	    }
	} // modules

    }   
  h2->Draw();

  timer.Stop();
  timer.Print();
}

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