]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOS.cxx
In AliMUONTriggerTrack: fixing memory leak
[u/mrichter/AliRoot.git] / PHOS / AliPHOS.cxx
index 891591f13f65bce14258d50c865e3e78f510396e..8c0e9e8fddc460ccdd7e0dbe4b28c7607744d97a 100644 (file)
@@ -81,6 +81,7 @@ class TFile;
 #include "AliPHOS.h"
 #include "AliPHOSLoader.h"
 #include "AliRun.h"
+#include "AliRawReader.h"
 #include "AliPHOSDigitizer.h"
 #include "AliPHOSSDigitizer.h"
 #include "AliPHOSDigit.h"
@@ -125,9 +126,9 @@ AliPHOS::~AliPHOS()
 }
 
 //____________________________________________________________________________
-AliDigitizer* AliPHOS::CreateDigitizer(AliRunDigitizer* manager) const
+AliDigitizer* AliPHOS::CreateDigitizer(AliDigitizationInput* digInput) const
 {
-  return new AliPHOSDigitizer(manager);
+  return new AliPHOSDigitizer(digInput);
 }
 
 //____________________________________________________________________________
@@ -390,7 +391,7 @@ void AliPHOS::Digits2Raw()
     AliError("Energy digitization should be OFF if use Digits2Raw") ;
   }
 
-  AliPHOSLoader * loader = dynamic_cast<AliPHOSLoader*>(fLoader) ; 
+  AliPHOSLoader * loader = static_cast<AliPHOSLoader*>(fLoader) ; 
 
   // get the digits
   loader->LoadDigits();
@@ -448,7 +449,7 @@ void AliPHOS::Digits2Raw()
 
   // loop over digits (assume ordered digits)
   for (Int_t iDigit = 0; iDigit < digits->GetEntries(); iDigit++) {
-    AliPHOSDigit* digit = dynamic_cast<AliPHOSDigit *>(digits->At(iDigit)) ;
+    AliPHOSDigit* digit = static_cast<AliPHOSDigit *>(digits->At(iDigit)) ;
 
     // Skip small energy below treshold
     if (digit->GetEnergy() < kThreshold) 
@@ -532,7 +533,9 @@ void AliPHOS::Digits2Raw()
                           pulse->GetRawFormatTimeBins(), adcValuesHigh, kAdcThreshold);
     }
   }
-  
+  delete [] adcValuesLow;
+  delete [] adcValuesHigh;
+
   // write real header and close last file
   for (Int_t iDDL=0; iDDL<maxDDL; iDDL++) {
     if (buffer[iDDL]) {
@@ -558,7 +561,7 @@ void AliPHOS::Hits2SDigits()
   AliPHOSSDigitizer phosDigitizer(fLoader->GetRunLoader()->GetFileName().Data()) ;
   phosDigitizer.SetEventRange(0, -1) ; // do all the events
  
-  phosDigitizer.ExecuteTask("all") ; 
+  phosDigitizer.Digitize("all") ; 
 }
 
 
@@ -577,7 +580,7 @@ void AliPHOS::SetTreeAddress()
   // Links Hits in the Tree to Hits array
   TBranch *branch;
   char branchname[20];
-  sprintf(branchname,"%s",GetName());
+  snprintf(branchname,20,"%s",GetName());
   // Branch address for hit tree
     TTree *treeH = fLoader->TreeH();
   if (treeH) {
@@ -595,7 +598,7 @@ void AliPHOS::SetTreeAddress()
 Bool_t AliPHOS::Raw2SDigits(AliRawReader* rawReader)    
 {       
                 
-  AliPHOSLoader * loader = dynamic_cast<AliPHOSLoader*>(fLoader) ;      
+  AliPHOSLoader * loader = static_cast<AliPHOSLoader*>(fLoader) ;       
                 
   TTree * tree = 0 ;    
   tree = loader->TreeS() ;      
@@ -611,11 +614,13 @@ Bool_t AliPHOS::Raw2SDigits(AliRawReader* rawReader)
   }     
   sdigits->Clear();     
                 
+  rawReader->Reset() ;
+
   const TObjArray* maps = AliPHOSRecoParam::GetMappings();
   if(!maps) AliFatal("Cannot retrieve ALTRO mappings!!");
 
-  AliAltroMapping *mapping[4];
-  for(Int_t i = 0; i < 4; i++) {
+  AliAltroMapping *mapping[20];
+  for(Int_t i = 0; i < 20; i++) {
     mapping[i] = (AliAltroMapping*)maps->At(i);
   }