ROOT logo
// Test Macro, shows how to load Digits and Geometry, and how can we get 
// some of the parameters and variables.
// Author: Gustavo Conesa

void TestEMCALSDigit()
{
  
  // Getting EMCAL Detector and Geometry.
  
  AliRunLoader *rl = AliRunLoader::Open("galice.root",AliConfig::GetDefaultEventFolderName(),"read");
  
  if (rl == 0x0)
    cout<<"Can not instatiate the Run Loader"<<endl;
  
  rl->LoadgAlice();//Needed to get geometry
  
  AliEMCALLoader *emcalLoader = dynamic_cast<AliEMCALLoader*>
    (rl->GetDetectorLoader("EMCAL"));
  
  TGeoManager::Import("geometry.root");
  
  AliRun * alirun   = rl->GetAliRun(); // Needed to get Geometry
  AliEMCALGeometry * geom ;
  if(alirun){
    AliEMCAL * emcal  = (AliEMCAL*)alirun->GetDetector("EMCAL");
    geom = emcal->GetGeometry();
  }
  
  if (geom == 0) cout<<"Did not get geometry from EMCALLoader"<<endl;
  else   geom->PrintGeometry();
  
  //Load Digits
  rl->LoadSDigits("EMCAL");
  
  //Get maximum number of events
  Int_t maxevent =  rl->GetNumberOfEvents();
  cout<<"Number of events "<<maxevent<<endl;
  //maxevent = 10 ;
  
  Int_t iEvent  = -1 ;
  Float_t amp   = -1 ;
  Float_t time  = -1 ;
  Int_t id      = -1 ;
  Int_t iSupMod =  0 ;
  Int_t iTower  =  0 ;
  Int_t iIphi   =  0 ;
  Int_t iIeta   =  0 ;
  Int_t iphi    =  0 ;
  Int_t ieta    =  0 ;
  
  AliEMCALDigit * dig;
  
  for ( iEvent=0; iEvent<maxevent; iEvent++)
    {
      cout <<  " ======> Event " << iEvent << endl ;
      //Load Event
      rl->GetEvent(iEvent);
      
      //Fill array of digits
      TClonesArray *digits = emcalLoader->SDigits();
      
      //Get digits from the list      
      for(Int_t idig = 0; idig< digits->GetEntries();idig++){
	//cout<<">> idig "<<idig<<endl;
	dig = static_cast<AliEMCALDigit *>(digits->At(idig)) ;
	
	if(dig != 0){
	  id   = dig->GetId() ; //cell (digit) label
	  amp  = dig->GetAmplitude(); //amplitude in cell (digit)
	  time = dig->GetTime();//time of creation of digit after collision
	  
	  cout<<"Cell ID "<<id<<" Amp "<<amp<<endl;//" time "<<time<<endl;
	  
	  //Geometry methods  
	  if(geom){
	    geom->GetCellIndex(id,iSupMod,iTower,iIphi,iIeta); 
	    //Gives SuperModule and Tower numbers
	    geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,
					      iIphi, iIeta,iphi,ieta);
	    //Gives label of cell in eta-phi position per each supermodule
	    cout<< "SModule "<<iSupMod<<"; Tower "<<iTower <<"; Eta "<<iIeta
		<<"; Phi "<<iIphi<<"; Cell Eta "<<ieta<<"; Cell Phi "<<iphi<<endl;
	  }
	}
	else
	  cout<<"Digit pointer 0x0"<<endl;
      }
      
    }


}

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