]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSAnalyze.cxx
New macro to keep track of timing performances of the segmentation methods (Laurent)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSAnalyze.cxx
index 0a0ec831e11e709f4802e67542a2ee81073fee07..379459892a70f9bebc0d5d3c9f701888413cca53 100644 (file)
@@ -76,7 +76,7 @@
 
 // --- AliRoot header files ---
 
-//#include "AliRun.h"
+#include "AliLog.h"
 #include "AliStack.h"
 #include "AliPHOSGeometry.h"
 #include "AliPHOSAnalyze.h"
 ClassImp(AliPHOSAnalyze)
 
 //____________________________________________________________________________
-  AliPHOSAnalyze::AliPHOSAnalyze()
+AliPHOSAnalyze::AliPHOSAnalyze():
+  fCorrection(1.2),  //Value calculated for default parameters of reconstruction
+  fEvt(0),
+  ffileName(),
+  fRunLoader(0)
 {
   // default ctor (useless)
-  fCorrection = 1.2 ;  //Value calculated for default parameters of reconstruction  
-  fRunLoader = 0x0;
 }
 
 //____________________________________________________________________________
-AliPHOSAnalyze::AliPHOSAnalyze(Text_t * fileName)
+AliPHOSAnalyze::AliPHOSAnalyze(Text_t * fileName):
+  fCorrection(1.05),  //Value calculated for default parameters of reconstruction   
+  fEvt(0),
+  ffileName(fileName),
+  fRunLoader(0)
 {
   // ctor: analyze events from root file "name"
-  ffileName = fileName;
-  fCorrection = 1.05 ;  //Value calculated for default parameters of reconstruction   
   fRunLoader = AliRunLoader::Open(fileName,"AliPHOSAnalyze");
   if (fRunLoader == 0x0)
    {
-     Error("AliPHOSAnalyze","Error Loading session");
+     AliError(Form("Error Loading session"));
    }
 }
 
 //____________________________________________________________________________
-AliPHOSAnalyze::AliPHOSAnalyze(const AliPHOSAnalyze & ana)
-  : TObject(ana)
+AliPHOSAnalyze::AliPHOSAnalyze(const AliPHOSAnalyze & ana): 
+  TObject(ana),
+  fCorrection(0.),
+  fEvt(0),
+  ffileName(),
+  fRunLoader(0)
 {
   // copy ctor
   ( (AliPHOSAnalyze &)ana ).Copy(*this) ;
@@ -135,23 +143,23 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
   //========== Create ObjectLoader
   if (fRunLoader == 0x0)
    {
-     Error("DrawRecon","Error Loading session");
+     AliError(Form("Error Loading session"));
      return;
    }
   
   AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(fRunLoader->GetLoader("PHOSLoader"));
   if ( gime == 0 ) 
    {
-     Error("DrawRecon","Could not obtain the Loader object !"); 
+     AliError(Form("Could not obtain the Loader object !")); 
      return ;
    } 
   
   
   if(Nevent >= fRunLoader->GetNumberOfEvents() ) {
-    Error("DrawRecon", "There is no event %d only %d events available", Nevent, fRunLoader->GetNumberOfEvents() ) ;
+    AliError(Form("There is no event %d only %d events available", Nevent, fRunLoader->GetNumberOfEvents() )) ;
     return ;
   }
-  const AliPHOSGeometry * phosgeom = gime->PHOSGeometry() ; 
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;
   fRunLoader->GetEvent(Nevent);
 
   Int_t nx = phosgeom->GetNPhi() ;
@@ -196,6 +204,10 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
     recPhot->Delete() ;
   recPhot = new TH2F("recPhot","RecParticles with primary Photon",nx,-x,x,nz,-z,z);
   
+  //Get Vertex
+  Double_t vtx[3]={0.,0.,0.} ;  
+//DP: extract vertex either from Generator or from data
+
   
   //Plot Primary Particles
   
@@ -220,7 +232,7 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
       if( primaryType == 22 ) {
         Int_t moduleNumber ;
         Double_t primX, primZ ;
-        phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
+        phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
         if(moduleNumber==Nmod) 
           phot->Fill(primZ,primX,primary->Energy()) ;
       }
@@ -246,23 +258,22 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
        sdigit = (AliPHOSDigit *) sdigits->At(iSDigit) ;
        Int_t relid[4];
        phosgeom->AbsToRelNumbering(sdigit->GetId(), relid) ;
-       Float_t x,z ;
-       phosgeom->RelPosInModule(relid,x,z);
-       AliPHOSSDigitizer* sd = dynamic_cast<AliPHOSSDigitizer*>(gime->SDigitizer());
-       Float_t e = sd->Calibrate(sdigit->GetAmp()) ;
+       Float_t xd,zd ;
+       phosgeom->RelPosInModule(relid,xd,zd);
+       Float_t e = sdigit->GetEnergy() ;
        nsdig[relid[0]-1]++ ;
        if(relid[0]==Nmod){
          if(relid[1]==0)  //EMC
-           emcSdigits->Fill(x,z,e) ;
+           emcSdigits->Fill(xd,zd,e) ;
          if( relid[1]!=0 )
-           cpvSdigits->Fill(x,z,e) ;
+           cpvSdigits->Fill(xd,zd,e) ;
        }
       }
   }
   TString message ; 
   message  = "Number of EMC + CPV SDigits per module: \n" ;
   message += "%d %d %d %d %d\n"; 
-  Info("DrawRecon", message.Data(), nsdig[0], nsdig[1], nsdig[2], nsdig[3], nsdig[4] ) ;
+  AliInfo(Form(message.Data(), nsdig[0], nsdig[1], nsdig[2], nsdig[3], nsdig[4] )) ;
 
   //Plot digits
   Int_t iDigit ;
@@ -274,15 +285,14 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
        digit = (AliPHOSDigit *) digits->At(iDigit) ;
        Int_t relid[4];
        phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
-       Float_t x,z ;
-       phosgeom->RelPosInModule(relid,x,z) ;
-       AliPHOSSDigitizer* sd = dynamic_cast<AliPHOSSDigitizer*>(gime->SDigitizer());
-       Float_t e = sd->Calibrate(digit->GetAmp()) ;
+       Float_t xd,zd ;
+       phosgeom->RelPosInModule(relid,xd,zd) ;
+       Float_t e = digit->GetEnergy() ;
        if(relid[0]==Nmod){
          if(relid[1]==0)  //EMC
-           emcDigits->Fill(x,z,e) ;
+           emcDigits->Fill(xd,zd,e) ;
          if( relid[1]!=0 )
-           cpvDigits->Fill(x,z,e) ;
+           cpvDigits->Fill(xd,zd,e) ;
        }
       }
   }
@@ -324,7 +334,7 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
        recParticle = (AliPHOSRecParticle *) rp->At(iRecParticle) ;
        Int_t moduleNumberRec ;
        Double_t recX, recZ ;
-       phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
+       phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
        if(moduleNumberRec == Nmod){
          
          Double_t minDistance = 5. ;
@@ -335,14 +345,14 @@ void AliPHOSAnalyze::DrawRecon(Int_t Nevent,Int_t Nmod){
          Int_t numberofprimaries ;
          Int_t * listofprimaries  = ((AliPHOSRecPoint*) emcrp->At(emcIndex))->GetPrimaries(numberofprimaries)  ;
          Int_t index ;
-         const TParticle * primary ;
+         const TParticle * primPart ;
          Double_t distance = minDistance ;
          
          for ( index = 0 ; index < numberofprimaries ; index++){
-           primary = fRunLoader->Stack()->Particle(listofprimaries[index]) ;
+           primPart = fRunLoader->Stack()->Particle(listofprimaries[index]) ;
            Int_t moduleNumber ;
            Double_t primX, primZ ;
-           phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
+           phosgeom->ImpactOnEmc(vtx,primPart->Theta(), primPart->Phi(), moduleNumber, primX, primZ) ;
            if(moduleNumberRec == moduleNumber)
              distance = TMath::Sqrt((recX-primX)*(recX-primX)+(recZ-primZ)*(recZ-primZ) ) ;
            if(minDistance > distance)
@@ -383,14 +393,14 @@ void AliPHOSAnalyze::Ls(){
   
   if (fRunLoader == 0x0)
    {
-     Error("Ls","Error Loading session");
+     AliError(Form("Error Loading session"));
      return;
    }
   
   AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(fRunLoader->GetLoader("PHOSLoader"));
   if ( gime == 0 ) 
    {
-     Error("Ls","Could not obtain the Loader object !"); 
+     AliError(Form("Could not obtain the Loader object !")); 
      return ;
    } 
 
@@ -402,7 +412,7 @@ void AliPHOSAnalyze::Ls(){
    {
      if (gime->LoadSDigits("READ"))
       {
-        Error("Ls","Problems with loading summable digits");
+        AliError(Form("Problems with loading summable digits"));
         return;
       }
    }
@@ -424,7 +434,7 @@ void AliPHOSAnalyze::Ls(){
    {
      if (gime->LoadDigits("READ"))
       {
-        Error("Ls","Problems with loading digits");
+        AliError(Form("Problems with loading digits"));
         return;
       }
    }
@@ -447,7 +457,7 @@ void AliPHOSAnalyze::Ls(){
    {
      if (gime->LoadRecPoints("READ"))
       {
-        Error("Ls","Problems with loading rec points");
+        AliError(Form("Problems with loading rec points"));
         return;
       }
    }
@@ -465,7 +475,7 @@ void AliPHOSAnalyze::Ls(){
       message += "\n" ;
     }
   }
-  Info("LS", message.Data()) ;  
+  AliInfo(Form(message.Data())) ;  
 }
 //____________________________________________________________________________
  void AliPHOSAnalyze::InvariantMass()
@@ -473,14 +483,14 @@ void AliPHOSAnalyze::Ls(){
   // Calculates Real and Mixed invariant mass distributions
   if (fRunLoader == 0x0)
    {
-     Error("DrawRecon","Error Loading session");
+     AliError(Form("Error Loading session"));
      return;
    }
   
   AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(fRunLoader->GetLoader("PHOSLoader"));
   if ( gime == 0 ) 
    {
-     Error("DrawRecon","Could not obtain the Loader object !"); 
+     AliError(Form("Could not obtain the Loader object !")); 
      return ;
    } 
   
@@ -542,7 +552,7 @@ void AliPHOSAnalyze::Ls(){
     Int_t iRecParticle ;
     TClonesArray * rp = gime->RecParticles() ;
     if(!rp){
-      Error("InvariantMass", "Can't find RecParticles") ; 
+      AliError(Form("Can't find RecParticles")) ; 
       return ;
     }
 
@@ -558,7 +568,6 @@ void AliPHOSAnalyze::Ls(){
     nRecParticles[mevent] = iRecPhot-1 ;  
     
     //check, if it is time to calculate invariant mass?
-    Int_t maxevent = (Int_t)gAlice->TreeE()->GetEntries() ; 
     if((mevent == 0) && (event +1 == maxevent)){
       
       //   if((mevent == 0) && (event +1 == gime->MaxEvent())){
@@ -657,19 +666,19 @@ void AliPHOSAnalyze::Ls(){
 
   if (fRunLoader == 0x0)
    {
-     Error("DrawRecon","Error Loading session");
+     AliError(Form("Error Loading session"));
      return;
    }
   
   AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(fRunLoader->GetLoader("PHOSLoader"));
   if ( gime == 0 ) 
    {
-     Error("DrawRecon","Could not obtain the Loader object !"); 
+     AliError(Form("Could not obtain the Loader object !")); 
      return ;
    } 
 
 
-  const AliPHOSGeometry * phosgeom = gime->PHOSGeometry();
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;
 
   Int_t ievent;
   Int_t maxevent = (Int_t)fRunLoader->TreeE()->GetEntries();
@@ -682,21 +691,23 @@ void AliPHOSAnalyze::Ls(){
     //read the current event
     fRunLoader->GetEvent(ievent) ;
 
+    Double_t vtx[3]={0.,0.,0.} ;  
+
     const AliPHOSRecParticle * recParticle ;
     Int_t iRecParticle ;
     TClonesArray * rp = gime->RecParticles() ;
     if(!rp) {
-      Error("EnergyResolution", "Event %d,  Can't find RecParticles ", ievent) ;  
+      AliError(Form("Event %d,  Can't find RecParticles ", ievent)) ;  
       return ;
     }
     TClonesArray * ts = gime->TrackSegments() ;
     if(!ts) {
-      Error("EnergyResolution", "Event %d,  Can't find TrackSegments", ievent) ;  
+      AliError(Form("Event %d,  Can't find TrackSegments", ievent)) ;  
       return ;
     }
     TObjArray * emcrp = gime->EmcRecPoints() ;
     if(!emcrp){
-      Error("EnergyResolution", "Event %d,  Can't find EmcRecPoints") ; 
+      AliError(Form("Event %d,  Can't find EmcRecPoints")) ; 
       return ;
     }
       
@@ -706,7 +717,7 @@ void AliPHOSAnalyze::Ls(){
       //find the closest primary
       Int_t moduleNumberRec ;
       Double_t recX, recZ ;
-      phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
+      phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
       
       Double_t minDistance  = 100. ;
       Int_t closestPrimary = -1 ;
@@ -728,7 +739,7 @@ void AliPHOSAnalyze::Ls(){
 
        Int_t moduleNumber ;
        Double_t primX, primZ ;
-       phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
+       phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
        if(moduleNumberRec == moduleNumber) {
          dX = recX - primX;
          dZ = recZ - primZ;
@@ -744,7 +755,7 @@ void AliPHOSAnalyze::Ls(){
 
       //if found primary, fill histograms
       if(closestPrimary >=0 ){
-       const TParticle * primary = fRunLoader->Stack()->Particle(closestPrimary) ;
+       primary = fRunLoader->Stack()->Particle(closestPrimary) ;
        if(primary->GetPdgCode() == 22){
          hAllEnergy->Fill(primary->Energy(), recParticle->Energy()) ;
          if(recParticle->GetType() == AliPHOSFastRecParticle::kNEUTRALEMFAST){
@@ -810,20 +821,20 @@ void AliPHOSAnalyze::PositionResolution()
 
   if (fRunLoader == 0x0)
    {
-     Error("DrawRecon","Error Loading session");
+     AliError(Form("Error Loading session"));
      return;
    }
   
   AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(fRunLoader->GetLoader("PHOSLoader"));
   if ( gime == 0 ) 
    {
-     Error("DrawRecon","Could not obtain the Loader object !"); 
+     AliError(Form("Could not obtain the Loader object !")); 
      return ;
    } 
   
   if (fRunLoader->TreeE() == 0x0) fRunLoader->LoadHeader();
 
-  const AliPHOSGeometry * phosgeom = gime->PHOSGeometry() ; 
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;
 
   Int_t ievent;
   Int_t maxevent = (Int_t)fRunLoader->TreeE()->GetEntries() ; 
@@ -831,19 +842,23 @@ void AliPHOSAnalyze::PositionResolution()
     
     //read the current event
     fRunLoader->GetEvent(ievent) ;
+
+    //DP:Extract vertex position
+    Double_t vtx[3]={0.,0.,0.} ;  
+
     TClonesArray * rp = gime->RecParticles() ;
     if(!rp) {
-      Error("PositionResolution", "Event %d,  Can't find RecParticles", ievent) ;
+      AliError(Form("Event %d,  Can't find RecParticles", ievent)) ;
       return ;
     }
     TClonesArray * ts = gime->TrackSegments() ;
     if(!ts) {
-      Error("PositionResolution", "Event %d,  Can't find TrackSegments", ievent) ;
+      AliError(Form("Event %d,  Can't find TrackSegments", ievent)) ;
       return ;
     }
     TObjArray * emcrp = gime->EmcRecPoints() ;
     if(!emcrp){
-      Error("PositionResolution", "Event %d,  Can't find EmcRecPoints", ievent) ;
+      AliError(Form("Event %d,  Can't find EmcRecPoints", ievent)) ;
       return ;
     }
     
@@ -856,7 +871,7 @@ void AliPHOSAnalyze::PositionResolution()
       //find the closest primary
       Int_t moduleNumberRec ;
       Double_t recX, recZ ;
-      phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
+      phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
       
       Double_t minDistance  = 100. ;
       Int_t closestPrimary = -1 ;
@@ -877,7 +892,7 @@ void AliPHOSAnalyze::PositionResolution()
        primary = fRunLoader->Stack()->Particle(listofprimaries[index]) ;
        Int_t moduleNumber ;
        Double_t primX, primZ ;
-       phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
+       phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
        if(moduleNumberRec == moduleNumber) {
          dX = recX - primX;
          dZ = recZ - primZ;
@@ -893,7 +908,7 @@ void AliPHOSAnalyze::PositionResolution()
       
       //if found primary, fill histograms
       if(closestPrimary >=0 ){
-       const TParticle * primary = fRunLoader->Stack()->Particle(closestPrimary) ;
+       primary = fRunLoader->Stack()->Particle(closestPrimary) ;
        if(primary->GetPdgCode() == 22){
          hAllPosition->Fill(primary->Energy(), minDistance) ;
          hAllPositionX->Fill(primary->Energy(), dX) ;
@@ -1032,19 +1047,19 @@ void AliPHOSAnalyze::Contamination(){
 
   if (fRunLoader == 0x0)
    {
-     Error("DrawRecon","Error Loading session");
+     AliError(Form("Error Loading session"));
      return;
    }
   
   AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(fRunLoader->GetLoader("PHOSLoader"));
   if ( gime == 0 ) 
    {
-     Error("DrawRecon","Could not obtain the Loader object !"); 
+     AliError(Form("Could not obtain the Loader object !")); 
      return ;
    } 
   
   if (fRunLoader->TreeE() == 0x0) fRunLoader->LoadHeader();
-  const AliPHOSGeometry * phosgeom = gime->PHOSGeometry() ; 
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;
   
   Int_t ievent;
   Int_t maxevent = (Int_t)fRunLoader->TreeE()->GetEntries() ; 
@@ -1052,19 +1067,22 @@ void AliPHOSAnalyze::Contamination(){
     
     fRunLoader->GetEvent(ievent) ;
     
+    //DP:Extract vertex position
+    Double_t vtx[3]={0.,0.,0.} ;
+
     TClonesArray * rp = gime->RecParticles() ;
     if(!rp) {
-      Error("Contamination", "Event %d,  Can't find RecParticles", ievent) ;
+      AliError(Form("Event %d,  Can't find RecParticles", ievent)) ;
       return ;
     }
     TClonesArray * ts = gime->TrackSegments() ;
     if(!ts) {
-      Error("Contamination", "Event %d,  Can't find TrackSegments", ievent) ;
+      AliError(Form("Event %d,  Can't find TrackSegments", ievent)) ;
       return ;
     }
     TObjArray * emcrp = gime->EmcRecPoints() ;
     if(!emcrp){
-      Error("Contamination", "Event %d,  Can't find EmcRecPoints", ievent) ;
+      AliError(Form("Event %d,  Can't find EmcRecPoints", ievent)) ;
       return ;
     }
     
@@ -1079,7 +1097,7 @@ void AliPHOSAnalyze::Contamination(){
        //check, if photons folls onto PHOS
        Int_t moduleNumber ;
        Double_t primX, primZ ;
-       phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
+       phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
        if(moduleNumber)
          hPrimary->Fill(primary->Energy()) ;
        
@@ -1098,7 +1116,7 @@ void AliPHOSAnalyze::Contamination(){
       //==========find the closest primary       
       Int_t moduleNumberRec ;
       Double_t recX, recZ ;
-      phosgeom->ImpactOnEmc(recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
+      phosgeom->ImpactOnEmc(vtx,recParticle->Theta(), recParticle->Phi(), moduleNumberRec, recX, recZ) ;
       
       Double_t minDistance  = 100. ;
       Int_t closestPrimary = -1 ;
@@ -1108,7 +1126,6 @@ void AliPHOSAnalyze::Contamination(){
       Int_t numberofprimaries ;
       Int_t * listofprimaries  = ((AliPHOSEmcRecPoint *) emcrp->At(emcIndex))->GetPrimaries(numberofprimaries)  ;
       Int_t index ;
-      const TParticle * primary ;
       Double_t distance = minDistance ;
       Double_t dX, dZ; 
       Double_t dXmin = 0.; 
@@ -1117,7 +1134,7 @@ void AliPHOSAnalyze::Contamination(){
        primary = fRunLoader->Stack()->Particle(listofprimaries[index]) ;
        Int_t moduleNumber ;
        Double_t primX, primZ ;
-       phosgeom->ImpactOnEmc(primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
+       phosgeom->ImpactOnEmc(vtx,primary->Theta(), primary->Phi(), moduleNumber, primX, primZ) ;
        if(moduleNumberRec == moduleNumber) {
          dX = recX - primX;
          dZ = recZ - primZ;
@@ -1134,7 +1151,7 @@ void AliPHOSAnalyze::Contamination(){
       //===========define the "type" of closest primary
       if(closestPrimary >=0 ){
        Int_t primaryCode = -1;
-       const TParticle * primary = fRunLoader->Stack()->Particle(closestPrimary) ;
+       primary = fRunLoader->Stack()->Particle(closestPrimary) ;
        Int_t primaryType = primary->GetPdgCode() ;
        if(primaryType == 22) // photon ?
          primaryCode = 0 ;
@@ -1243,7 +1260,7 @@ void AliPHOSAnalyze::Contamination(){
  
   
   //print Final Table
-  maxevent = (Int_t)gAlice->TreeE()->GetEntries() ; 
+  maxevent = (Int_t)AliRunLoader::Instance()->TreeE()->GetEntries() ; 
 
   TString message ; 
   message  = "Resolutions: Analyzed %d event(s)\n" ; 
@@ -1276,7 +1293,7 @@ void AliPHOSAnalyze::Contamination(){
       totalInd+=counter[i1][i2] ;
   message += "Indentified particles: %d" ; 
   
Info("Contamination", message.Data(), maxevent, 
AliInfo(Form(message.Data(), maxevent, 
       counter[2][0], counter[2][1], counter[2][2], counter[2][3], counter[2][4], 
       counter[3][0], counter[3][1], counter[3][2], counter[3][3], counter[3][4], 
       counter[0][0], counter[0][1], counter[0][2], counter[0][3], counter[0][4], 
@@ -1285,6 +1302,6 @@ void AliPHOSAnalyze::Contamination(){
       counter[5][0], counter[5][1], counter[5][2], counter[5][3], counter[5][4], 
       counter[6][0], counter[6][1], counter[6][2], counter[6][3], counter[6][4], 
       counter[7][0], counter[7][1], counter[7][2], counter[7][3], counter[7][4], 
-      totalInd ) ;
+      totalInd )) ;
 
 }