Index: snovis/trunk/source/G4Lab/cxx/Trajectory.cxx
===================================================================
--- snovis/trunk/source/G4Lab/cxx/Trajectory.cxx	(revision 233)
+++ snovis/trunk/source/G4Lab/cxx/Trajectory.cxx	(revision 288)
@@ -8,4 +8,5 @@
 // Geant4 :
 #include <G4Track.hh>
+#include <G4VProcess.hh>
 
 static G4Allocator<G4Lab::Trajectory> sTrajectoryAllocator; // Beurk.
@@ -31,4 +32,7 @@
 )
 :G4Trajectory(aTrack) 
+,fProcess(0)
+,fSave(false)
+,fStoppingVolume(0)
 //////////////////////////////////////////////////////////////////////////////
 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
@@ -37,4 +41,9 @@
   fTotalEnergy = aTrack->GetTotalEnergy();
   fGlobalTime = aTrack->GetGlobalTime();
+  fProcess = aTrack->GetCreatorProcess();
+
+  fStoppingPoint  = aTrack->GetPosition();
+  fStoppingVolume = aTrack->GetVolume();
+
   /*
   printf("debug : G4Lab::Trajectory : \"%s\", kineticEnergy : %g, totalEnergy : %g, globalTime : %g\n",
@@ -47,22 +56,26 @@
      aTrack->GetGlobalTime());
   fPoints.push_back(tp);
+
 }
 //////////////////////////////////////////////////////////////////////////////
 G4Lab::Trajectory::Trajectory(
- Trajectory& aRight
-)
-:G4Trajectory(aRight) 
-//////////////////////////////////////////////////////////////////////////////
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-  fKineticEnergy = aRight.fKineticEnergy;
-  fTotalEnergy = aRight.fTotalEnergy;
-  fGlobalTime = aRight.fGlobalTime;
-
-  size_t number = aRight.fPoints.size();
+ Trajectory& aFrom
+)
+:G4Trajectory(aFrom) 
+//,IGeant4Trajectory(aFrom)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  fKineticEnergy = aFrom.fKineticEnergy;
+  fTotalEnergy = aFrom.fTotalEnergy;
+  fGlobalTime = aFrom.fGlobalTime;
+  fProcess = aFrom.fProcess;
+  fSave = aFrom.fSave;
+
+  size_t number = aFrom.fPoints.size();
   for(size_t index=0;index<number;index++) {
-    G4TrajectoryPoint* point = aRight.fPoints[index]->point();
+    G4TrajectoryPoint* point = aFrom.fPoints[index]->point();
     TrajectoryPoint* tp = 
-      new TrajectoryPoint(new G4TrajectoryPoint(*point),aRight.fGlobalTime);
+      new TrajectoryPoint(new G4TrajectoryPoint(*point),aFrom.fGlobalTime);
     fPoints.push_back(tp);
   }
@@ -82,5 +95,8 @@
 }
 //////////////////////////////////////////////////////////////////////////////
-G4double G4Lab::Trajectory::GetKineticEnergy(
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+double G4Lab::Trajectory::kineticEnergy(
 ) const 
 //////////////////////////////////////////////////////////////////////////////
@@ -90,5 +106,5 @@
 }
 //////////////////////////////////////////////////////////////////////////////
-G4double G4Lab::Trajectory::GetTotalEnergy(
+double G4Lab::Trajectory::totalEnergy(
 ) const 
 //////////////////////////////////////////////////////////////////////////////
@@ -98,5 +114,5 @@
 }
 //////////////////////////////////////////////////////////////////////////////
-G4double G4Lab::Trajectory::GetGlobalTime(
+double G4Lab::Trajectory::globalTime(
 ) const 
 //////////////////////////////////////////////////////////////////////////////
@@ -106,5 +122,91 @@
 }
 //////////////////////////////////////////////////////////////////////////////
-/*inline*/ void* G4Lab::Trajectory::operator new(
+unsigned int G4Lab::Trajectory::pointEntries(
+) const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  return fPoints.size();
+}
+//////////////////////////////////////////////////////////////////////////////
+double G4Lab::Trajectory::pointGlobalTime(
+ unsigned int aIndex
+) const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  return fPoints[aIndex]->globalTime();
+}
+//////////////////////////////////////////////////////////////////////////////
+std::string G4Lab::Trajectory::creatorProcessName(
+) const 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  if(!fProcess) return "";
+  return fProcess->GetProcessName();
+}
+//////////////////////////////////////////////////////////////////////////////
+std::string G4Lab::Trajectory::creatorProcessType(
+) const 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  if(!fProcess) return "NotDefined";
+  switch(fProcess->GetProcessType()){
+  case fNotDefined: return "NotDefined";
+  case fTransportation: return "Transportation";
+  case fElectromagnetic: return "Electromagnetic";
+  case fOptical: return "Optical";
+  case fHadronic: return "Hadronic";
+  case fPhotolepton_hadron: return "Photolepton_hadron";
+  case fDecay: return "Decay";
+  case fGeneral: return "General";
+  case fParameterisation: return "Parameterisation";
+  case fUserDefined: return "UserDefined";
+  };
+  return "NotDefined";
+}
+//////////////////////////////////////////////////////////////////////////////
+void G4Lab::Trajectory::setSave(
+ bool aFlag
+)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  fSave = aFlag;
+}
+//////////////////////////////////////////////////////////////////////////////
+bool G4Lab::Trajectory::save(
+) const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  return fSave;
+}
+//////////////////////////////////////////////////////////////////////////////
+std::vector<double> G4Lab::Trajectory::stoppingPoint(
+) const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  std::vector<double> v(3);
+  v[0] = fStoppingPoint.x();
+  v[1] = fStoppingPoint.y();
+  v[2] = fStoppingPoint.z();
+  return v;
+}
+//////////////////////////////////////////////////////////////////////////////
+G4VPhysicalVolume* G4Lab::Trajectory::stoppingPhysicalVolume(
+) const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  return fStoppingVolume;
+}
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+void* G4Lab::Trajectory::operator new(
  size_t
 )  
@@ -115,5 +217,5 @@
 }
 //////////////////////////////////////////////////////////////////////////////
-/*inline*/ void G4Lab::Trajectory::operator delete(
+void G4Lab::Trajectory::operator delete(
  void* aTrajectory
 ) 
@@ -124,5 +226,5 @@
 }
 //////////////////////////////////////////////////////////////////////////////
-/*inline*/ int G4Lab::Trajectory::operator == (
+int G4Lab::Trajectory::operator == (
  const G4Lab::Trajectory& aRight
 ) const 
@@ -177,13 +279,4 @@
 {
   return fPoints[aIndex]->point();
-}
-//////////////////////////////////////////////////////////////////////////////
-G4double G4Lab::Trajectory::GetPointGlobalTime(
- G4int aIndex
-) const
-//////////////////////////////////////////////////////////////////////////////
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-  return fPoints[aIndex]->globalTime();
 }
 //////////////////////////////////////////////////////////////////////////////
@@ -205,2 +298,19 @@
   tj->fPoints.clear();
 }
+//////////////////////////////////////////////////////////////////////////////
+const std::map<G4String,G4AttDef>* G4Lab::Trajectory::GetAttDefs() const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  //return G4Trajectory::GetAttDefs();
+  return 0;
+}
+//////////////////////////////////////////////////////////////////////////////
+std::vector<G4AttValue>* G4Lab::Trajectory::CreateAttValues() const
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  //return G4Trajectory::CreateAttValues();
+  return 0;
+}
+
