position of the particle initiating the hit in PHOS
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Feb 2001 10:17:41 +0000 (10:17 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Feb 2001 10:17:41 +0000 (10:17 +0000)
PHOS/AliPHOSHit.cxx
PHOS/AliPHOSHit.h
PHOS/AliPHOSv1.cxx

index 669553e..4a28d2a 100644 (file)
@@ -46,6 +46,7 @@ AliPHOSHit::AliPHOSHit(const AliPHOSHit & hit)
   fELOS    = hit.fELOS ;
   fPrimary = hit.fPrimary ; 
   fTrack   = hit.fTrack ; 
+  fMomentum= hit.fMomentum ;
   fX       = hit.fX ; 
   fY       = hit.fY ; 
   fZ       = hit.fZ ; 
@@ -67,7 +68,7 @@ AliPHOSHit::AliPHOSHit(Int_t shunt, Int_t primary, Int_t track, Int_t id, Float_
   fMomentum  = p;
   fX         = xy[0];  //position of particle first entering cristall/pad
   fY         = xy[1];
-  fZ         = 9999.;  //Fake Z to avoid FPE
+  fZ         = xy[2];  
 }
 
 //____________________________________________________________________________
@@ -77,29 +78,27 @@ Bool_t AliPHOSHit::operator==(AliPHOSHit const &rValue) const
 
   Bool_t rv = kFALSE ; 
 
-  if ( (fId == rValue.GetId()) && ( fPrimary == rValue.GetPrimary() ) && (fPid*rValue.fPid ! = 0) )
+  if ( (fId == rValue.GetId()) && ( fPrimary == rValue.GetPrimary() ) && (fPid*rValue.fPid == 0) )
     rv = kTRUE;
   
   return rv;
 }
 
 //____________________________________________________________________________
-AliPHOSHit AliPHOSHit::operator+(const AliPHOSHit &rValue) const
+AliPHOSHit AliPHOSHit::operator+(const AliPHOSHit &rValue)
 {
   // Add the energy of the hit
   
-  AliPHOSHit added(*this);
-
-  // the accumulated hit position is the position of the first hi
-  //    added.fX    = rValue.fX  ;
-  //    added.fY    = rValue.fY ;
-  //    added.fZ    = rValue.fZ ;
-
-   added.fELOS += rValue.GetEnergy() ;
+  fELOS += rValue.GetEnergy() ;
     
-   if(fPid == 0) fPid = rValue.fPid ;
-
-   return added;
+  if((fPid == 0) && (rValue.fPid != 0)){
+    fPid = rValue.fPid ;
+    fX    = rValue.fX ;
+    fY    = rValue.fY ;
+    fZ    = rValue.fZ ;
+   }     
+
+   return *this;
 
 }
 
index f2b0bed..cb74f38 100644 (file)
@@ -12,6 +12,7 @@
 //*-- Author: Maxime Volkov (RRC KI) & Yves Schutz (SUBATECH)
 
 // --- ROOT system ---
+#include <TLorentzVector.h>
 
 // --- AliRoot header files ---
 #include "AliHit.h"
@@ -20,7 +21,6 @@
 
 #include <iostream.h>
 
-class TLorentzVector ;
 
 class AliPHOSHit : public AliHit {
 
@@ -57,7 +57,7 @@ class AliPHOSHit : public AliHit {
     // momentum of the particle which initiated this hit
 
   Bool_t operator == (AliPHOSHit const &rValue) const ;
-  AliPHOSHit operator + (const AliPHOSHit& rValue) const ;
+  AliPHOSHit operator + (const AliPHOSHit& rValue) ;
 
 
  private:
index 6e50ea0..bb4a802 100644 (file)
@@ -245,7 +245,7 @@ void AliPHOSv1::AddHit(Int_t shunt, Int_t primary, Int_t tracknumber, Int_t Id,
 
   newHit = new AliPHOSHit(shunt, primary, tracknumber, Id, hits, trackpid, p, lpos) ;
 
-  for ( hitCounter = 0 ; hitCounter < fNhits && !deja ; hitCounter++ ) {
+  for ( hitCounter = fNhits-1 ; hitCounter >= 0 && !deja ; hitCounter-- ) {
     curHit = (AliPHOSHit*) (*fHits)[hitCounter] ;
     if( *curHit == *newHit ) {
       *curHit = *curHit + *newHit ;
@@ -626,7 +626,7 @@ void AliPHOSv1::StepManager(void)
   Float_t        xyze[4]={0,0,0,0}  ; // position wrt MRS and energy deposited
   TLorentzVector pos      ;      // Lorentz vector of the track current position
   TLorentzVector pmom     ;      //momentum of the particle initiated hit
-  Float_t        xyd[2]   ;      //local posiiton of the entering
+  Float_t        xyd[3]   ;      //local posiiton of the entering
   Bool_t         entered = kFALSE    ;  
   Int_t          copy     ;
 
@@ -645,7 +645,9 @@ void AliPHOSv1::StepManager(void)
       for (i=0; i<3; i++) xyzm[i] = pos[i];
       gMC -> Gmtod (xyzm, xyzd, 1);    // transform coordinate from master to daughter system
       xyd[0]  = xyzd[0];
-      xyd[1]  =-xyzd[2];
+      xyd[1]  =-xyzd[1];
+      xyd[2]  =-xyzd[2];
+
       
       // Current momentum of the hit's track in the local ref. system
       gMC -> TrackMomentum(pmom);