Index: MEMPHYS/HEAD/MEMPHYS/MEMPHYSWCDigi.hh
===================================================================
--- MEMPHYS/HEAD/MEMPHYS/MEMPHYSWCDigi.hh	(revision 30)
+++ MEMPHYS/HEAD/MEMPHYS/MEMPHYSWCDigi.hh	(revision 45)
@@ -6,4 +6,12 @@
 #include "G4Allocator.hh"
 #include "G4ThreeVector.hh"
+#include "G4Colour.hh"
+#include "G4LogicalVolume.hh"
+#include "G4Transform3D.hh"
+
+//std
+#include <vector>
+
+
 
 class MEMPHYSWCDigi : public G4VDigi {
@@ -13,6 +21,4 @@
   MEMPHYSWCDigi();
   virtual ~MEMPHYSWCDigi();
-  MEMPHYSWCDigi(const MEMPHYSWCDigi&);
-  const MEMPHYSWCDigi& operator=(const MEMPHYSWCDigi&);
   int operator==(const MEMPHYSWCDigi&) const;
   
@@ -22,20 +28,39 @@
   void Draw(); //JEC FIXME what do we do with this?
   void Print();
+  //JEC 1/12/05 implement same mechanism as Trajectory
+  virtual const std::map<G4String,G4AttDef>* GetAttDefs() const;
+  virtual std::vector<G4AttValue>* CreateAttValues() const;
 
 private:
+
+  //JEC make Ctor and assignation private
+  MEMPHYSWCDigi(const MEMPHYSWCDigi&);
+  const MEMPHYSWCDigi& operator=(const MEMPHYSWCDigi&);
   
   G4int   tubeID;
   G4float pe;   
   G4float time; 
-  
+
+  //JEC for vizu
+  G4Colour         colour;
+  G4Transform3D    transform;
+  G4LogicalVolume* pLogV;
+ 
 public:
   
-  inline void SetTubeID(G4int tube) {tubeID = tube;};
-  inline void SetPe(G4float Q)      {pe     = Q;};
-  inline void SetTime(G4float T)    {time   = T;};
-  
-  inline G4int   GetTubeID() {return tubeID;};
-  inline G4float GetPe()     {return pe;};
-  inline G4float GetTime()   {return time;};
+  inline void SetTubeID(G4int tube) {tubeID = tube;}
+  inline void SetPe(G4float Q)      {pe     = Q;}
+  inline void SetTime(G4float T)    {time   = T;}
+
+  //JEC 1/12/05 for vizu
+  void SetColour(G4Colour aColour) { colour = aColour; }
+  void UpdateColour() {/* not yet implemented */}
+  inline void SetTransform(G4Transform3D aTrans) { transform = aTrans; }
+  inline void SetLogicalVolume(G4LogicalVolume* logV) {pLogV = logV;}
+
+
+  inline G4int   GetTubeID() {return tubeID;}
+  inline G4float GetPe()     {return pe;}
+  inline G4float GetTime()   {return time;}
   
 };
Index: MEMPHYS/HEAD/MEMPHYS/MEMPHYSWCHit.hh
===================================================================
--- MEMPHYS/HEAD/MEMPHYS/MEMPHYSWCHit.hh	(revision 30)
+++ MEMPHYS/HEAD/MEMPHYS/MEMPHYSWCHit.hh	(revision 45)
@@ -6,7 +6,10 @@
 #include "G4THitsCollection.hh"
 #include "G4Allocator.hh"
+#include "G4Transform3D.hh"
 #include "G4ThreeVector.hh"
 #include "G4LogicalVolume.hh"
 #include "G4ios.hh"
+#include "G4Colour.hh"
+
 
 //std
@@ -26,24 +29,36 @@
   void Draw(); //JEC FIXME what do we do with this?
   void Print();
+  //JEC 1/12/05 implement same mechanism as Trajectory
+  virtual const std::map<G4String,G4AttDef>* GetAttDefs() const;
+  virtual std::vector<G4AttValue>* CreateAttValues() const;
+
+
   
  public:
   
-  void SetTubeID       (G4int tube)                 { tubeID = tube; };
-  void SetTrackID      (G4int track)                { trackID = track; };
-  void SetEdep         (G4double de)                { edep = de; };
-  void SetPos          (G4ThreeVector xyz)          { pos = xyz; };
-  void SetRot          (G4RotationMatrix rotMatrix) { rot = rotMatrix; };
+  void SetTubeID       (G4int tube)                 { tubeID = tube; }
+  void SetTrackID      (G4int track)                { trackID = track; }
+  void SetEdep         (G4double de)                { edep = de; }
+  //  void SetPos          (G4ThreeVector xyz)          { pos = xyz; }
+  // void SetRot          (G4RotationMatrix rotMatrix) { rot = rotMatrix; }
+  void SetTransform (G4Transform3D aTrans) { transform = aTrans; }
   void SetLogicalVolume(G4LogicalVolume* logV)      { pLogV = logV;}
+  void SetColour(G4Colour aColour) { colour = aColour; }
+  void UpdateColour(); //modify color at the end of the event
 
   // This is temporarily used for the drawing scale
-  void SetMaxPe(G4int number = 0)  {maxPe   = number;};
+  void SetMaxPe(G4int number = 0)  {maxPe   = number;}
 
   void AddPe(G4float hitTime);  
 
-  G4int         GetTubeID()     { return tubeID; };
-  G4int         GetTrackID()    { return trackID; };
-  G4ThreeVector GetPos()        { return pos; };
-  G4int         GetTotalPe()    { return totalPe;};
-  G4float       GetTime(int i)  { return time[i];};
+  G4int         GetTubeID()     { return tubeID; }
+  G4int         GetTrackID()    { return trackID; }
+  //G4ThreeVector GetPos()        { return pos; }
+  G4int         GetTotalPe()    { return totalPe;}
+  G4float       GetTime(int i)  { return time[i]; }
+  G4Transform3D GetTransform()  { return transform; }
+  G4LogicalVolume* GetLogicalVolume() { return pLogV; }
+  G4Colour GetColour() { return colour; }
+  
   
   void SortHitTimes() {   sort(time.begin(),time.end()); }
@@ -60,6 +75,10 @@
   G4int            trackID;
   G4double         edep;
-  G4ThreeVector    pos;
-  G4RotationMatrix rot;
+  //G4ThreeVector    pos;
+  //G4RotationMatrix rot;
+
+  //JEC to GB
+  G4Colour         colour;
+  G4Transform3D    transform;
   G4LogicalVolume* pLogV;
 
