Correct for incompabilities with HP-UX and compaq (!) (on request by fca)
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Mar 2000 18:24:44 +0000 (18:24 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Mar 2000 18:24:44 +0000 (18:24 +0000)
PHOS/AliPHOSClusterizerv1.cxx
PHOS/AliPHOSDigit.cxx
PHOS/AliPHOSDigit.h
PHOS/AliPHOSEmcRecPoint.cxx
PHOS/AliPHOSEmcRecPoint.h
PHOS/AliPHOSFastRecParticle.cxx
PHOS/AliPHOSHit.cxx
PHOS/AliPHOSHit.h
PHOS/AliPHOSRecPoint.cxx
PHOS/AliPHOSTrackSegmentMakerv1.cxx
PHOS/AliPHOSv0.cxx

index ca906bf9249b7146694f2843a873cbdc1ff1c732..f516a8a344cf640bfe0baf7a8158b0c755e226dd 100644 (file)
@@ -187,7 +187,7 @@ void AliPHOSClusterizerv1::MakeClusters(const DigitsList * dl, RecPointsList * e
   while ( (digit = (AliPHOSDigit *)nextdigit()) ) { // scan over the list of digits
     AliPHOSRecPoint * clu ; 
    
-    int * clusterdigitslist[dl->GetEntries()] ;   
+    int ** clusterdigitslist = new int * [dl->GetEntries()] ;   
     Int_t index ;
     if (( ( IsInEmc(digit) ) && ( Calibrate(digit->GetAmp() ) > fEmcClusteringThreshold ) ) || 
         ( ( !IsInEmc(digit) ) && ( Calibrate(digit->GetAmp() ) > fPpsdClusteringThreshold ) ) ) {
@@ -265,6 +265,8 @@ void AliPHOSClusterizerv1::MakeClusters(const DigitsList * dl, RecPointsList * e
  
    }  //below energy theshold  
   
+    delete[] clusterdigitslist ; 
+    
   } // while digit
 
   tempodigitslist.Clear() ; 
index 8c4d922c889092527158a0bef77ec2cd3c3c0025..745dc98c368fca1028db6365e65d08161c5c0ea9 100644 (file)
@@ -138,9 +138,9 @@ Bool_t AliPHOSDigit::operator==(AliPHOSDigit const & digit) const
 AliPHOSDigit& AliPHOSDigit::operator+(AliPHOSDigit const & digit) 
 {
   // Adds the amplitude of digits and completes the list of primary particles
-  
+
   fAmp += digit.fAmp ;
+  
   // Here comes something crummy ... but I do not know how to stream pointers
   // because AliPHOSDigit is in a TCLonesArray
   
@@ -169,8 +169,12 @@ AliPHOSDigit& AliPHOSDigit::operator+(AliPHOSDigit const & digit)
     
     Int_t tempo3[3] ;
     Int_t index ; 
+    for (index = 0 ; index < 3 ; index++)
+      tempo3[index] = 0 ; 
+
     for (index = 0 ; index < max1 ; index++)
       tempo3[index] = tempo1[index] ;
+
     for (index = 0 ; index < max2 ; index++)
       tempo3[index+max1] = tempo2[index] ; 
     
index c403f3e44a98017fc164dcef590aedf79bc38dcd..22b02dfb47ebeea6bc59ba0176203f3d0b83a5c2 100644 (file)
@@ -37,7 +37,7 @@ public:
   Bool_t operator==(AliPHOSDigit const &rValue) const;
   AliPHOSDigit& operator+(AliPHOSDigit const &rValue) ;
   
-  friend ostream& operator << ( ostream& , const AliPHOSDigit&) ;
+  friend class ostream& operator << ( ostream& , const AliPHOSDigit&) ;
   
   Int_t   Compare(TObject * obj) ;  
   Int_t   GetNprimary() const { return fNprimary ; }
index a1f572689f83999042416cae9e5c90001997807d..5d75c51412a68a5db1489e8963b9f2b85c1d9c86 100644 (file)
@@ -30,7 +30,8 @@
 
 // --- Standard library ---
 
-#include <iostream>
+#include <iostream> 
+#include <cassert>
 
 // --- AliRoot header files ---
 
@@ -182,8 +183,10 @@ void AliPHOSEmcRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py)
      AliPHOSGeometry * phosgeom =  (AliPHOSGeometry *) fGeom ;
      Int_t iDigit;
      Int_t relid[4] ;
-     Float_t xi[fMulDigit] ;
-     Float_t zi[fMulDigit] ;
+     
+     const Int_t fMulDigit = AliPHOSEmcRecPoint::GetDigitsMultiplicity() ; 
+     Float_t * xi = new Float_t[fMulDigit] ; 
+     Float_t * zi = new Float_t[fMulDigit] ; 
 
      // create the histogram for the single cluster 
      // 1. gets histogram boundaries
@@ -244,6 +247,9 @@ void AliPHOSEmcRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py)
      histocanvas->Draw() ; 
      histo->Draw("lego1") ; 
 
+     delete[] xi ; 
+     delete[] zi ; 
+     
      break;
    }
 
@@ -401,7 +407,7 @@ Float_t AliPHOSEmcRecPoint::GetMaximalEnergy(void)
 }
 
 //____________________________________________________________________________
-Int_t AliPHOSEmcRecPoint::GetMultiplicityAtLevel(Float_t H) 
+Int_t AliPHOSEmcRecPoint::GetMultiplicityAtLevel(const Float_t H) 
 {
   // Calculates the multiplicity of digits with energy larger than H*energy 
   
@@ -539,6 +545,7 @@ void AliPHOSEmcRecPoint::Streamer(TBuffer &R__b)
   // Stream an object of class AliPHOSEmcRecPoint.
   // Needed because of the array fEnergyList
   
+  assert(0==1) ;
    if (R__b.IsReading()) {
       Version_t R__v = R__b.ReadVersion(); if (R__v) { }
       AliPHOSRecPoint::Streamer(R__b);
index e040b9e8d98b63bc6785c49c10429fbbbcd7f6a0..6f77dfee9a56a02dc074bea8fc920937102c03d9 100644 (file)
@@ -14,7 +14,8 @@
 // --- ROOT system ---
 
 #include "TObject.h"
-
+#include "TArrayI.h"
 // --- Standard library ---
 
 // --- AliRoot header files ---
@@ -58,8 +59,9 @@ private:
 
   Float_t  fDelta ;        // parameter used to sort the clusters    
   Float_t  fLocMaxCut ;    // minimum energy difference to distinguish two maxima 
-  Float_t fEnergyList ;  // energy of digits
+  Float_t  *fEnergyList ;  // energy of digits
   Float_t  fW0 ;           // logarithmic weight factor for center of gravity calculation
+  TArrayI *fTest ; 
 
   ClassDef(AliPHOSEmcRecPoint,1)  // EMC RecPoint (cluster)
 
index 29ee284a881d6169edc70b6bdd8671bf928d1fd6..4e548dd1c5ee275fb04cc78495d53cf868db0667 100644 (file)
@@ -67,8 +67,8 @@ ClassImp(AliPHOSFastRecParticle)
 {
   // ctor from a TParticle (crummy?!)
  
-  TParticle & pnoconst = const_cast<TParticle &>(pp) ;
-  AliPHOSFastRecParticle & p = static_cast<AliPHOSFastRecParticle&>(pnoconst) ;
+  TParticle & pnoconst = (TParticle &)(pp) ;
+  AliPHOSFastRecParticle & p = (AliPHOSFastRecParticle &)(pnoconst) ;
 
   fPdgCode     = p.fPdgCode;
   fStatusCode  = p.fStatusCode;
index 4864a7bf7da6bafcc01b1a33c16744e95680876a..63f6458103ba2a34969967b84dba516869e525c1 100644 (file)
 
 ClassImp(AliPHOSHit)
 
+//____________________________________________________________________________
+AliPHOSHit::AliPHOSHit(const AliPHOSHit & hit) 
+{
+   // copy ctor
+   
+  fId      = hit.fId ; 
+  fELOS    = hit.fELOS ;
+  fPrimary = hit.fPrimary ; 
+  fTrack   = hit.fTrack ; 
+  fX       = hit.fX ; 
+  fY       = hit.fY ; 
+  fZ       = hit.fZ ; 
+} 
+
 //____________________________________________________________________________
 AliPHOSHit::AliPHOSHit(Int_t primary, Int_t id, Float_t *hits)
 {
index 57b911e3508c5960fd6a3dc78201b5417ebdfa64..5c00c0a6831a2384966e0a54ead85dcb0e7ea961 100644 (file)
@@ -25,6 +25,7 @@ class AliPHOSHit : public AliHit {
 public:
 
   AliPHOSHit() {}
+  AliPHOSHit(const AliPHOSHit & hit) ; 
   AliPHOSHit(Int_t primary, Int_t id, Float_t *hits) ;
   virtual ~AliPHOSHit(void) {}  
   
index f5e0168a909e32fe61807c7eaf2bdd0933f69cc0..b6e96bbe2f9630ed0c975174f3c25ef16d2cf623 100644 (file)
@@ -100,8 +100,10 @@ void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py)
     AliPHOSGeometry * phosgeom =  (AliPHOSGeometry *) fGeom ;
     Int_t iDigit;
     Int_t relid[4] ;
-    Float_t xi[fMulDigit] ;
-    Float_t zi[fMulDigit] ;
+  
+    const Int_t fMulDigit=AliPHOSRecPoint::GetDigitsMultiplicity() ;
+    Float_t * xi = new Float_t [fMulDigit] ; 
+    Float_t * zi = new Float_t [fMulDigit] ;
     
     for(iDigit=0; iDigit<fMulDigit; iDigit++) {
       digit = (AliPHOSDigit *) fDigitsList[iDigit];
@@ -131,9 +133,11 @@ void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py)
     }
     gPad->Update() ; 
     Print() ;
-  }
+    delete[] xi ; 
+    delete[] zi ; 
+   }
   
-  break;
+break;
   
   case kButton1Up:
     if (digitgraph) {
index 77c16f262d3115df16451237b38a0d6c90be3529..07303afa218c6ef9da8bfcb7c3c0cfbd44350bca 100644 (file)
@@ -165,8 +165,8 @@ void  AliPHOSTrackSegmentMakerv1::FillOneModule(DigitsList * dl, RecPointsList *
        break ;
     
     Int_t nMultipl = emcRecPoint->GetMultiplicity() ; 
-    Int_t maxAt[nMultipl] ;
-    Float_t maxAtEnergy[nMultipl] ;
+    Int_t * maxAt = new Int_t[nMultipl] ;
+    Float_t * maxAtEnergy = new Float_t[nMultipl] ;
     Int_t nMax = emcRecPoint->GetNumberOfLocalMax(maxAt, maxAtEnergy) ;
 
     if(nMax <= 1 )     // if cluster is very flat (no pronounced maximum) then nMax = 0 
@@ -178,6 +178,9 @@ void  AliPHOSTrackSegmentMakerv1::FillOneModule(DigitsList * dl, RecPointsList *
       nEmcUnfolded-- ;
       index-- ;
     }
+    
+    delete[] maxAt ; 
+    delete[] maxAtEnergy ; 
   }
   emcStopedAt = index ;
 
@@ -439,12 +442,15 @@ void  AliPHOSTrackSegmentMakerv1::UnfoldClusters(DigitsList * dl, RecPointsList
   // This is time consuming (use the (Un)SetUnfolFlag()  )
 
   Int_t nPar = 3 * nMax ;
-  Float_t fitparameters[nPar] ;
+  Float_t * fitparameters = new Float_t[nPar] ;
   AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
 
   Bool_t rv = FindFit(iniEmc, maxAt, maxAtEnergy, nPar, fitparameters) ;
-  if( !rv )  // Fit failed, return and remove cluster
+  if( !rv ) {
+    // Fit failed, return and remove cluster
+    delete[] fitparameters ; 
     return ;
+  }
   
   Float_t xDigit ;
   Float_t zDigit ;
@@ -456,7 +462,7 @@ void  AliPHOSTrackSegmentMakerv1::UnfoldClusters(DigitsList * dl, RecPointsList
   Float_t epar  ;
   Float_t distance ;
   Float_t ratio ;
-  Float_t efit[nDigits] ;
+  Float_t * efit = new Float_t[nDigits] ;
   Int_t iparam ;
   Int_t iDigit ;
   
@@ -510,6 +516,10 @@ void  AliPHOSTrackSegmentMakerv1::UnfoldClusters(DigitsList * dl, RecPointsList
     emcList->Add(emcRP) ;
 
   }
+  
+  delete[] fitparameters ; 
+  delete[] efit ; 
+
 }
 
 //______________________________________________________________________________
index 62bfc0039cb4908ed9e4080e85c97d76f10d21a8..50c9210998196eff06de1aa364870adb4cfa723b 100644 (file)
@@ -164,36 +164,35 @@ void AliPHOSv0::AddHit(Int_t primary, Int_t Id, Float_t * hits)
   TClonesArray &ltmphits = *fTmpHits ;
   AliPHOSHit *newHit ;
   AliPHOSHit *curHit ;
+  //  AliPHOSHit *curHit2 ;
   Bool_t deja = kFALSE ;
 
   // In any case, fills the fTmpHit TClonesArray (with "accumulated hits")
 
   newHit = new AliPHOSHit(primary, Id, hits) ;
+  TClonesArray &lhits = *fHits;
 
   for ( hitCounter = 0 ; hitCounter < fNTmpHits && !deja ; hitCounter++ ) {
     curHit = (AliPHOSHit*) ltmphits[hitCounter] ;
-    if( *curHit == *newHit ) {
-     *curHit = *curHit + *newHit ;
-      deja = kTRUE ;
+    //    curHit2 = (AliPHOSHit*) lhits[hitCounter] ;  // ca plante dans PurifyKine !?
+  if( *curHit == *newHit ) {
+    *curHit = *curHit + *newHit ;
+    //    *curHit2 = *curHit2 + *newHit ;
+    deja = kTRUE ;
     }
   }
-       
+         
   if ( !deja ) {
     new(ltmphits[fNTmpHits]) AliPHOSHit(*newHit) ;
     fNTmpHits++ ;
+    new(lhits[fNhits]) AliPHOSHit(*newHit) ;    // will be saved on disk
+    fNhits++ ;
   }
 
   // Please note that the fTmpHits array must survive up to the
   // end of the events, so it does not appear e.g. in ResetHits() (
   // which is called at the end of each primary).  
 
-  //  if (IsTreeSelected('H')) {
-    // And, if we really want raw hits tree, have the fHits array filled also
-  //    TClonesArray &lhits = *fHits;
-  //    new(lhits[fNhits]) AliPHOSHit(*newHit) ;
-  //    fNhits++ ;
-  //  }
-
   delete newHit;
 
 }
@@ -456,65 +455,67 @@ void AliPHOSv0:: BuildGeometryforPPSD(void)
     // inside the PPSD box: 
     //   1.   fNumberOfModulesPhi x fNumberOfModulesZ top micromegas
     x = ( fGeom->GetPPSDBoxSize(0) - fGeom->GetPPSDModuleSize(0) ) / 2. ;  
-    for ( Int_t iphi = 1; iphi <= fGeom->GetNumberOfModulesPhi(); iphi++ ) { // the number of micromegas modules in phi per PHOS module
-      Float_t z = ( fGeom->GetPPSDBoxSize(2) - fGeom->GetPPSDModuleSize(2) ) / 2. ;
-      TNode * micro1node ; 
-      for ( Int_t iz = 1; iz <= fGeom->GetNumberOfModulesZ(); iz++ ) { // the number of micromegas modules in z per PHOS module
-       y = ( fGeom->GetPPSDBoxSize(1) - fGeom->GetMicromegas1Thickness() ) / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "Mic1", i, iphi, iz) ;
-       micro1node  = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
-       micro1node->SetLineColor(kColorPPSD) ;  
-       fNodes->Add(micro1node) ; 
-       // inside top micromegas
-       micro1node->cd() ; 
-       //      a. top lid
-       y = ( fGeom->GetMicromegas1Thickness() - fGeom->GetLidThickness() ) / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "Lid", i, iphi, iz) ;
-       TNode * toplidnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
-       toplidnode->SetLineColor(kColorPPSD) ;  
-       fNodes->Add(toplidnode) ; 
-       //      b. composite panel
-       y = y - fGeom->GetLidThickness() / 2. - fGeom->GetCompositeThickness() / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "CompU", i, iphi, iz) ;
-       TNode * compupnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
-       compupnode->SetLineColor(kColorPPSD) ;  
-       fNodes->Add(compupnode) ; 
-       //      c. anode
-       y = y - fGeom->GetCompositeThickness() / 2. - fGeom->GetAnodeThickness()  / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "Ano", i, iphi, iz) ;
-       TNode * anodenode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
-       anodenode->SetLineColor(kColorPHOS) ;  
-       fNodes->Add(anodenode) ; 
-       //      d.  gas 
-       y = y - fGeom->GetAnodeThickness() / 2. - ( fGeom->GetConversionGap() +  fGeom->GetAvalancheGap() ) / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "GGap", i, iphi, iz) ;
-       TNode * ggapnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
-       ggapnode->SetLineColor(kColorGas) ;  
-       fNodes->Add(ggapnode) ;          
+    {
+      for ( Int_t iphi = 1; iphi <= fGeom->GetNumberOfModulesPhi(); iphi++ ) { // the number of micromegas modules in phi per PHOS module
+       Float_t z = ( fGeom->GetPPSDBoxSize(2) - fGeom->GetPPSDModuleSize(2) ) / 2. ;
+       TNode * micro1node ; 
+       for ( Int_t iz = 1; iz <= fGeom->GetNumberOfModulesZ(); iz++ ) { // the number of micromegas modules in z per PHOS module
+         y = ( fGeom->GetPPSDBoxSize(1) - fGeom->GetMicromegas1Thickness() ) / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "Mic1", i, iphi, iz) ;
+         micro1node  = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
+         micro1node->SetLineColor(kColorPPSD) ;  
+         fNodes->Add(micro1node) ; 
+         // inside top micromegas
+         micro1node->cd() ; 
+         //      a. top lid
+         y = ( fGeom->GetMicromegas1Thickness() - fGeom->GetLidThickness() ) / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "Lid", i, iphi, iz) ;
+         TNode * toplidnode = new TNode(nodename, nodename, "TopLid", 0, y, 0) ;
+         toplidnode->SetLineColor(kColorPPSD) ;  
+         fNodes->Add(toplidnode) ; 
+         //      b. composite panel
+         y = y - fGeom->GetLidThickness() / 2. - fGeom->GetCompositeThickness() / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "CompU", i, iphi, iz) ;
+         TNode * compupnode = new TNode(nodename, nodename, "TopPanel", 0, y, 0) ;
+         compupnode->SetLineColor(kColorPPSD) ;  
+         fNodes->Add(compupnode) ; 
+         //      c. anode
+         y = y - fGeom->GetCompositeThickness() / 2. - fGeom->GetAnodeThickness()  / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "Ano", i, iphi, iz) ;
+         TNode * anodenode = new TNode(nodename, nodename, "Anode", 0, y, 0) ;
+         anodenode->SetLineColor(kColorPHOS) ;  
+         fNodes->Add(anodenode) ; 
+         //      d.  gas 
+         y = y - fGeom->GetAnodeThickness() / 2. - ( fGeom->GetConversionGap() +  fGeom->GetAvalancheGap() ) / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "GGap", i, iphi, iz) ;
+         TNode * ggapnode = new TNode(nodename, nodename, "GasGap", 0, y, 0) ;
+         ggapnode->SetLineColor(kColorGas) ;  
+         fNodes->Add(ggapnode) ;          
          //      f. cathode
-       y = y - ( fGeom->GetConversionGap() +  fGeom->GetAvalancheGap() ) / 2. - fGeom->GetCathodeThickness()  / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "Cathode", i, iphi, iz) ;
-       TNode * cathodenode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
-       cathodenode->SetLineColor(kColorPHOS) ;  
-       fNodes->Add(cathodenode) ;        
-       //      g. printed circuit
-       y = y - fGeom->GetCathodeThickness() / 2. - fGeom->GetPCThickness()  / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "PC", i, iphi, iz) ;
-       TNode * pcnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
-       pcnode->SetLineColor(kColorPPSD) ;  
-       fNodes->Add(pcnode) ;        
-       //      h. composite panel
-       y = y - fGeom->GetPCThickness() / 2. - fGeom->GetCompositeThickness()  / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "CompDown", i, iphi, iz) ;
-       TNode * compdownnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
-       compdownnode->SetLineColor(kColorPPSD) ;  
-       fNodes->Add(compdownnode) ;   
-       z = z - fGeom->GetPPSDModuleSize(2) ;
+         y = y - ( fGeom->GetConversionGap() +  fGeom->GetAvalancheGap() ) / 2. - fGeom->GetCathodeThickness()  / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "Cathode", i, iphi, iz) ;
+         TNode * cathodenode = new TNode(nodename, nodename, "Cathode", 0, y, 0) ;
+         cathodenode->SetLineColor(kColorPHOS) ;  
+         fNodes->Add(cathodenode) ;        
+         //      g. printed circuit
+         y = y - fGeom->GetCathodeThickness() / 2. - fGeom->GetPCThickness()  / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "PC", i, iphi, iz) ;
+         TNode * pcnode = new TNode(nodename, nodename, "PCBoard", 0, y, 0) ;
+         pcnode->SetLineColor(kColorPPSD) ;  
+         fNodes->Add(pcnode) ;        
+         //      h. composite panel
+         y = y - fGeom->GetPCThickness() / 2. - fGeom->GetCompositeThickness()  / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "CompDown", i, iphi, iz) ;
+         TNode * compdownnode = new TNode(nodename, nodename, "BottomPanel", 0, y, 0) ;
+         compdownnode->SetLineColor(kColorPPSD) ;  
+         fNodes->Add(compdownnode) ;   
+         z = z - fGeom->GetPPSDModuleSize(2) ;
+         ppsdboxnode->cd() ;
+       } // end of Z module loop     
+       x = x -  fGeom->GetPPSDModuleSize(0) ; 
        ppsdboxnode->cd() ;
-      } // end of Z module loop     
-      x = x -  fGeom->GetPPSDModuleSize(0) ; 
-      ppsdboxnode->cd() ;
-    } // end of phi module loop
+      } // end of phi module loop
+    }
     //   2. air gap      
     ppsdboxnode->cd() ;
     y = ( fGeom->GetPPSDBoxSize(1) - 2 * fGeom->GetMicromegas1Thickness() - fGeom->GetMicro1ToLeadGap() ) / 2. ; 
@@ -536,17 +537,18 @@ void AliPHOSv0:: BuildGeometryforPPSD(void)
     fNodes->Add(gapdownnode) ;        
     //    5.  fNumberOfModulesPhi x fNumberOfModulesZ bottom micromegas
     x = ( fGeom->GetPPSDBoxSize(0) - fGeom->GetPPSDModuleSize(0) ) / 2. - fGeom->GetPhiDisplacement() ;  
-    for ( Int_t iphi = 1; iphi <= fGeom->GetNumberOfModulesPhi(); iphi++ ) { 
-      Float_t z = ( fGeom->GetPPSDBoxSize(2) - fGeom->GetPPSDModuleSize(2) ) / 2.  - fGeom->GetZDisplacement() ;;
-      TNode * micro2node ; 
-      for ( Int_t iz = 1; iz <= fGeom->GetNumberOfModulesZ(); iz++ ) { 
-       y = - ( fGeom->GetPPSDBoxSize(1) - fGeom->GetMicromegas2Thickness() ) / 2. ; 
-       sprintf(nodename, "%s%d%d%d", "Mic2", i, iphi, iz) ;
-       micro2node  = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
-       micro2node->SetLineColor(kColorPPSD) ;  
-       fNodes->Add(micro2node) ; 
-       // inside bottom micromegas
-       micro2node->cd() ; 
+    {
+      for ( Int_t iphi = 1; iphi <= fGeom->GetNumberOfModulesPhi(); iphi++ ) { 
+       Float_t z = ( fGeom->GetPPSDBoxSize(2) - fGeom->GetPPSDModuleSize(2) ) / 2.  - fGeom->GetZDisplacement() ;;
+       TNode * micro2node ; 
+       for ( Int_t iz = 1; iz <= fGeom->GetNumberOfModulesZ(); iz++ ) { 
+         y = - ( fGeom->GetPPSDBoxSize(1) - fGeom->GetMicromegas2Thickness() ) / 2. ; 
+         sprintf(nodename, "%s%d%d%d", "Mic2", i, iphi, iz) ;
+         micro2node  = new TNode(nodename, nodename, "PPSDModule", x, y, z) ;
+         micro2node->SetLineColor(kColorPPSD) ;  
+         fNodes->Add(micro2node) ; 
+         // inside bottom micromegas
+         micro2node->cd() ; 
          //      a. top lid
          y = ( fGeom->GetMicromegas2Thickness() - fGeom->GetLidThickness() ) / 2. ; 
          sprintf(nodename, "%s%d", "Lidb", i) ;
@@ -594,10 +596,13 @@ void AliPHOSv0:: BuildGeometryforPPSD(void)
        } // end of Z module loop     
        x = x -  fGeom->GetPPSDModuleSize(0) ; 
        ppsdboxnode->cd() ;
-       } // end of phi module loop
-     } // PHOS modules
- delete rotname ; 
- delete nodename ; 
+      } // end of phi module loop
+    }
+  } // PHOS modules
+  delete rotname ;  
+  delete nodename ; 
+
 }
 
 //____________________________________________________________________________
@@ -1125,11 +1130,12 @@ Int_t AliPHOSv0::Digitize(Float_t Energy)
 {
   // Applies the energy calibration
   
-  Float_t fB = 100000000. ;
+  Float_t fB = 100. ; // ; 100000000. ;
   Float_t fA = 0. ;
   Int_t chan = Int_t(fA + Energy*fB ) ;
   return chan ;
 }
+
 //___________________________________________________________________________
 void AliPHOSv0::FinishEvent()
 {
@@ -1178,15 +1184,16 @@ void AliPHOSv0::FinishEvent()
       if (energyandnoise < 0 ) 
        energyandnoise = 0 ;
 
-      newdigit->SetAmp(energyandnoise) ;
-
       if ( newdigit->GetAmp() < fDigitThreshold ) // if threshold not surpassed, remove digit from list
        fDigits->RemoveAt(i) ; 
     }
   }
+  
+
   fDigits->Compress() ; 
   fNTmpHits = 0 ;
   fTmpHits->Delete();
+  
 }
 
 //____________________________________________________________________________
@@ -1221,7 +1228,7 @@ void AliPHOSv0::MakeBranch(Option_t* opt)
   char *cdD = strstr(opt,"D");
   
   if (fDigits && gAlice->TreeD() && cdD) {
-    gAlice->TreeD()->Branch(branchname,&fDigits, fBufferSize);
+    gAlice->TreeD()->Branch(branchname, &fDigits, fBufferSize);
   }
 }