ROOT logo
// ----------------------------------------------------//
//                                                     //
//    This is a macro  to read PMD.Digits.root         //
//                                                     //
// ----------------------------------------------------//

void AliPMDDigitsRead(Int_t nevt = 1) 
{
  TStopwatch timer;
  timer.Start();
  
  AliRunLoader *fRunLoader = AliRunLoader::Open("galice.root");
				  
  if (!fRunLoader)
    {
      Error("Open","Can not open session for file %s.",file);
    }
  
  fRunLoader->LoadgAlice();
  fRunLoader->LoadHeader();
  gAlice = fRunLoader->GetAliRun();
  
  if (gAlice)
    {
      printf("AliRun object found on file.\n");
    }
  else
    {
      printf("Could not find AliRun object.\n");
    }
  fPMD  = (AliPMD*)gAlice->GetDetector("PMD");
  fPMDLoader = fRunLoader->GetLoader("PMDLoader");
  if (fPMDLoader == 0x0)
    {
      cerr<<"OpengAlice : Can not find PMD or PMDLoader\n";
    }
  
  fPMDLoader->LoadDigits("READ");
  TClonesArray *fDigits; 
  AliPMDUtility cc;

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

  // -------------------------------------------------------------- //

  Int_t    det = 0,smn = 0;
  Int_t    xpos, ypos, xpad, ypad;
  Float_t  adc;
  Float_t  xx,yy;

  for (Int_t ievt = 2; ievt <nevt; ievt++)
    {
      fRunLoader->GetEvent(ievt);
  
      fTreeD = fPMDLoader->TreeD();
      if (fTreeD == 0x0)
	{
	  cout << " Can not get TreeD" << endl;
	}
      AliPMDdigit  *pmddigit;
      TBranch *branch = fTreeD->GetBranch("PMDDigit");
      branch->SetAddress(&fDigits);
  
      Int_t nmodules = (Int_t) fTreeD->GetEntries();

      cout << " Total number of modules in an event = " << nmodules << endl;

      for (Int_t imodule = 0; imodule < nmodules; imodule++)
	{
	  fTreeD->GetEntry(imodule); 
	  Int_t nentries = fDigits->GetLast();
	  cout << "nentries = " << nentries << endl;
	  for (Int_t ient = 0; ient < nentries+1; ient++)
	    {
	      pmddigit = (AliPMDdigit*)fDigits->UncheckedAt(ient);
	      
	      det    = pmddigit->GetDetector();
	      smn    = pmddigit->GetSMNumber();
	      xpos   = pmddigit->GetRow();
	      ypos   = pmddigit->GetColumn();
	      adc    = pmddigit->GetADC();
	      Int_t trno   = pmddigit->GetTrackNumber();
	      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();
}

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