lcdd/src
diff -u -r1.38 -r1.39
--- G4TrackerSD.cc 12 Dec 2007 03:19:01 -0000 1.38
+++ G4TrackerSD.cc 11 Jan 2008 01:57:46 -0000 1.39
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/lcdd/src/G4TrackerSD.cc,v 1.38 2007/12/12 03:19:01 jeremy Exp $
+// $Header: /cvs/lcd/lcdd/src/G4TrackerSD.cc,v 1.39 2008/01/11 01:57:46 jeremy Exp $
// LCDD
#include "IdManager.hh"
@@ -65,10 +65,14 @@
// hit data
G4int trkID = trackID();
G4double tdep = globalTime();
- G4ThreeVector midpos = midPosition();
- G4ThreeVector meanmom = meanMomentum();
+ G4ThreeVector midPos = midPosition();
+ G4ThreeVector prePos = pre()->GetPosition();
+ G4ThreeVector postPos = post()->GetPosition();
+ double avgMom = (pre()->GetMomentum().mag() + post()->GetMomentum().mag()) / 2;
+ G4ThreeVector mom = (postPos - prePos);
+ mom.setMag(avgMom);
G4double pathLength = ReadoutUtil::computeDistance(aStep);
-
+
// create hit
G4TrackerHit* trkHit = new G4TrackerHit();
@@ -78,8 +82,8 @@
// set track hit info
trkHit->setTrackID(trkID);
trkHit->setEdep(e);
- trkHit->setPos(midpos);
- trkHit->setMomentum(meanmom);
+ trkHit->setPos(midPos);
+ trkHit->setMomentum(mom);
trkHit->setTdep(tdep);
trkHit->setId( id64.getId0() );
trkHit->setLength(pathLength);