Commit in lcdd/src on MAIN
G4TrackerSD.cc+10-61.38 -> 1.39
JM: revised SimTrackerHit direction calculation

lcdd/src
G4TrackerSD.cc 1.38 -> 1.39
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);
CVSspam 0.2.8