]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSPpsdRecPoint.cxx
position of the particle initiating the hit in PHOS
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPpsdRecPoint.cxx
index 27536638a02b7d94583149926386d305a67c544d..a1484cf4f3df298a6e7ff4655c34de1a9af0c1a3 100644 (file)
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
-
 /* $Id$ */
-
 //_________________________________________________________________________
 //  A RecPoint (cluster) in the PPSD 
 //  A PPSD RecPoint ends up to be a single digit
+//  Why should I put meaningless comments
+//  just to satisfy
+//  the code checker                
 //                
 //*--  Yves Schutz (SUBATECH)
 
@@ -33,6 +34,7 @@
 
 #include "AliPHOSGeometry.h"
 #include "AliPHOSPpsdRecPoint.h"
+#include "AliPHOSCpvRecPoint.h"
 #include "AliRun.h"
 #include "AliPHOSIndexToObject.h"
 
@@ -84,73 +86,86 @@ Int_t AliPHOSPpsdRecPoint::Compare(TObject * obj)
   
   Int_t rv ; 
   
-  AliPHOSPpsdRecPoint * clu = (AliPHOSPpsdRecPoint *)obj ; 
-  
-  Float_t x1 , z1 ;
-  Float_t x2 , z2 ;
-  
-  Int_t phosmod1 ;
-  Int_t phosmod2 ;
-  
-  Int_t up1 ;
-  Int_t up2 ; 
+  if( (strcmp(obj->ClassName() , "AliPHOSPpsdRecPoint" )) == 0)  // PPSD Rec Point
+    {
+     AliPHOSPpsdRecPoint * clu = (AliPHOSPpsdRecPoint *)obj ; 
+
+     Float_t x1 , z1 ;
+     Float_t x2 , z2 ;
+     
+     Int_t phosmod1 ;
+     Int_t phosmod2 ;
+     
+     Int_t up1 ;
+     Int_t up2 ; 
   
-  if(GetUp()) // upper layer
-    up1 = 0 ; 
-  else        // lower layer
-    up1 = 1 ;       
-  
-  if(clu->GetUp()) // upper layer
-    up2 = 0 ; 
-  else            // lower layer
-    up2 = 1 ;       
-
-  TVector3 posloc ;
-  this->GetLocalPosition(posloc) ;
-  x1 = posloc.X() ;
-  z1 = posloc.Z() ; 
-  phosmod1 = this->GetPHOSMod();  
-  clu->GetLocalPosition(posloc) ;
-  x2 = posloc.X() ;
-  z2 = posloc.Z() ; 
-  phosmod2 = clu->GetPHOSMod();
-
-  if(phosmod1 == phosmod2 ) {
-    if(up1 == up2 ){
-      Int_t rowdif = (Int_t)TMath::Ceil(x1/fDelta) - (Int_t) TMath::Ceil(x2/fDelta) ;
-
-      if (rowdif> 0) 
-       rv = -1 ;
+     if(GetUp()) // upper layer
+       up1 = 0 ; 
+     else        // lower layer
+       up1 = 1 ;       
+     
+     if(clu->GetUp()) // upper layer
+       up2 = 0 ; 
+     else            // lower layer
+       up2 = 1 ;       
+
+     TVector3 posloc ;
+     this->GetLocalPosition(posloc) ;
+     x1 = posloc.X() ;
+     z1 = posloc.Z() ; 
+     phosmod1 = this->GetPHOSMod();  
+     clu->GetLocalPosition(posloc) ;
+     x2 = posloc.X() ;
+     z2 = posloc.Z() ; 
+     phosmod2 = clu->GetPHOSMod();
+     
+     if(phosmod1 == phosmod2 ) {
+       
+       if(up1 == up2 ){
+        Int_t rowdif = (Int_t)TMath::Ceil(x1/fDelta) - (Int_t) TMath::Ceil(x2/fDelta) ;
+        
+        if (rowdif> 0) 
+          rv = -1 ;
       else if(rowdif < 0) 
        rv = 1 ;
-      else if(z1>z2) 
-       rv = -1 ;
-      else 
-       rv = 1 ; 
+        else if(z1>z2) 
+          rv = -1 ;
+        else 
+          rv = 1 ; 
+       }
+       
+       else {
+        
+        if(up1 < up2 ) // Upper level first (up = True or False, True > False)
+          rv = 1 ;   
+        else 
+          rv = - 1 ;
+       }
+       
+     } // if phosmod1 == phosmod2
+     
+     else {
+       
+       if(phosmod1 < phosmod2 ) 
+        rv = -1 ;
+       else 
+        rv = 1 ;
+       
+     }
+     
+     return rv ;      
     }
-
-    else {
-
-      if(up1 < up2 ) // Upper level first (up = True or False, True > False)
-       rv = 1 ;   
+  else
+    {
+      AliPHOSCpvRecPoint * clu  = (AliPHOSCpvRecPoint *) obj ;   
+      if(this->GetPHOSMod()  < clu->GetPHOSMod() ) 
+       rv = -1 ;
       else 
-       rv = - 1 ;
+       rv = 1 ;
+      return rv ;
     }
-    
-  } // if phosmod1 == phosmod2
-
-  else {
 
-    if(phosmod1 < phosmod2 ) 
-      rv = -1 ;
-    else 
-      rv = 1 ;
   
-}
-  
-  return rv ; 
 }
 
 //____________________________________________________________________________
@@ -200,6 +215,8 @@ void AliPHOSPpsdRecPoint::GetLocalPosition(TVector3 &LPos)
 //____________________________________________________________________________
 Bool_t AliPHOSPpsdRecPoint::GetUp() 
 {
+  // Are we in the uper PPSD module ?
+
   Int_t relid[4] ;
   
   AliPHOSIndexToObject * please =  AliPHOSIndexToObject::GetInstance() ;