Index: /ELYSE/HEAD/source/Callbacks/Callbacks.cxx
===================================================================
--- /ELYSE/HEAD/source/Callbacks/Callbacks.cxx	(revision 293)
+++ /ELYSE/HEAD/source/Callbacks/Callbacks.cxx	(revision 294)
@@ -105,5 +105,5 @@
   data_visualize(session);
 
-  data_collect(session,"PV","name==\"SensiVol\"");
+  data_collect(session,"PV","name==\"GlassVol\"");
   data_visualize(session);
 
Index: /ELYSE/HEAD/source/DetectorConstruction.cxx
===================================================================
--- /ELYSE/HEAD/source/DetectorConstruction.cxx	(revision 293)
+++ /ELYSE/HEAD/source/DetectorConstruction.cxx	(revision 294)
@@ -25,5 +25,5 @@
 
 //ELYSE
-#include "ELYSE/TrappingVolume.hh"
+//#include "ELYSE/TrappingVolume.hh"
 #include "ELYSE/DetectorMessenger.hh"
 #include "ELYSE/Cast.hh"
@@ -42,5 +42,5 @@
   //-----------------
 
-  aTrappingVolume  = 0; 
+  //  aTrappingVolume  = 0; 
 
   //-----------------
@@ -54,12 +54,9 @@
   //tyvek sheet thickness
   tyvek_thickness = 1.0*mm;
+  //glass tank thickness
+  glass_thickness = 5.0*mm;
 
 
   updated = true;
-
-  //Initialize the optical surface 
-  OpWaterTyvekSurface = 0;
-  OpWaterAirSurface   = 0;
-
 
   //-----------------
@@ -86,5 +83,5 @@
 
   //-----------------------
-  // A box of water delimited by a tyvek sheet and surrounding by a air volume sensitive
+  // A box of water delimited by a tyvek sheet and surrounding by a glass tank and then a air volume sensitive
   //-----------------------
 
@@ -96,13 +93,12 @@
   
 
-  //a volume sensitive to trap every particles...
-  G4Box*  solidSensiVolFull = new G4Box("SensiVolFull",
-				    water_x/2.+ 2.*tyvek_thickness,
-				    water_y/2.+ 2.*tyvek_thickness,
-				    water_z/2.+ 2.*tyvek_thickness
+  G4Box*  solidGlassVol = new G4Box("GlassVol",
+				    water_x/2.+ glass_thickness,
+				    water_y/2.+ glass_thickness,
+				    water_z/2.+ glass_thickness
 				    );
   
 
-  G4Box*  solidTyvekFull = new G4Box("TyvekFull",
+  G4Box*  solidTyvek = new G4Box("TyvekSheet",
 				     water_x/2.+tyvek_thickness,
 				     water_y/2.+tyvek_thickness,
@@ -114,9 +110,10 @@
 
 
-  G4SubtractionSolid* solidSensiVol = new G4SubtractionSolid("SensiVol",solidSensiVolFull,solidTyvekFull);
+  //JEC 22/2/07 test to avoid Substraction and use simple immersion
+  //  G4SubtractionSolid* solidGlassVol = new G4SubtractionSolid("GlassVol",solidGlassFull,solidTyvekFull);
 
   //Make the tyvek volume as an subtraction to define a proper tyvek volume for the oprtical surface
   //overwise we would have done a tyvek volume and place inside a water volume...
-  G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank);
+  //G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank);
 
 
@@ -141,11 +138,10 @@
 
 
-  G4LogicalVolume* logicSensiVol
-    = new G4LogicalVolume(solidSensiVol,G4Material::GetMaterial("Glass"),"SensiVol",0,0,0);
-
-
-  G4VPhysicalVolume* physicSensiVol
-    = new G4PVPlacement(0,G4ThreeVector(),logicSensiVol,"SensiVol",
-			logicExpHall,false,0);
+  G4LogicalVolume* logicGlassVol
+    = new G4LogicalVolume(solidGlassVol,G4Material::GetMaterial("Glass"),"GlassVol",0,0,0);
+
+
+  new G4PVPlacement(0,G4ThreeVector(),logicGlassVol,"GlassVol",
+		    logicExpHall,false,0);
 
 
@@ -153,7 +149,6 @@
     = new G4LogicalVolume(solidTyvek,G4Material::GetMaterial("Tyvek"),"TyvekSheet",0,0,0);
 
-  G4VPhysicalVolume* physicTyvek
-    = new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet",
-			logicExpHall,false,0);
+  new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet",
+		    logicGlassVol,false,0);
 
   G4LogicalVolume* logicWaterTank
@@ -161,15 +156,22 @@
   
 
-  G4VPhysicalVolume* physicWaterTank
-    = new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank",
-                        logicExpHall,false,0);
-  
-
-  //introduce the interfaces Water-Tyvek and Tyvek-Glass for optical photons
-  new G4LogicalBorderSurface("waterTyvekInterface",
-			       physicWaterTank,physicTyvek,OpWaterTyvekSurface);
-  
-  new G4LogicalBorderSurface("tyvekGlassInterface",
-			       physicTyvek,physicSensiVol,OpTyvekGlassSurface);
+  new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank",
+                         logicTyvek,false,0);
+  
+
+  G4LogicalSkinSurface* waterTyvekInter = new G4LogicalSkinSurface("waterTyvekInterface",
+								   logicWaterTank,OpWaterTyvekSurface);
+  //Dump
+  if(waterTyvekInter->GetLogicalVolume() == logicWaterTank)
+    G4cout << "(JEC) water-Tyvek x-check logical: Ok" << G4endl;
+  ((G4OpticalSurface*)
+   (G4LogicalSkinSurface::GetSurface(logicWaterTank)->GetSurfaceProperty()))->DumpInfo();
+  
+
+  //JEC 22/2/07 use a Skin envelop for the transition Tyvek-Glass
+  //JEC Not sure that for the moment it is useful: To be Fixed
+  new G4LogicalSkinSurface("waterTyvekInterface",
+			   logicWaterTank,OpTyvekGlassSurface);
+  
 
   //--------------
@@ -177,12 +179,12 @@
   //--------------
 
-  G4SDManager* SDman = G4SDManager::GetSDMpointer();
-  
-  if (!aTrappingVolume) {
-    //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions
-    aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this ); 
-    SDman->AddNewDetector( aTrappingVolume );
-  }
-  logicSensiVol->SetSensitiveDetector( aTrappingVolume );
+//   G4SDManager* SDman = G4SDManager::GetSDMpointer();
+  
+//   if (!aTrappingVolume) {
+//     //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions
+//     aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this ); 
+//     SDman->AddNewDetector( aTrappingVolume );
+//   }
+//   logicGlassVol->SetGlasstiveDetector( aTrappingVolume );
 
 
@@ -275,5 +277,4 @@
 
   //---Tyvek
-  //JEC : 9/2/07 as MEMPHYS/SK::Blacksheet in a version 0
   //JEC + SDC: 9/2/07 use Auger Liner definition
   a= 12.01*g/mole;
@@ -422,6 +423,6 @@
    Water->SetMaterialPropertiesTable(myMPT1);
    
-   G4cout << "ConstructMaterial: Dump Water properties" << G4endl;
-   myMPT1->DumpTable();
+   //   G4cout << "ConstructMaterial: Dump Water properties" << G4endl;
+   //   myMPT1->DumpTable();
    
 
@@ -468,7 +469,4 @@
    G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable();
    myMPT2->AddProperty("RINDEX", ENERGY_water, RINDEX_air, NUMENTRIES_general);
-   // M Fechner : what is that ?????
-   //   myMPT2->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_general);
-   // JEC: replace BLACKABS_blacksheet by  ABSORPTION_air
    myMPT2->AddProperty("ABSLENGTH", ENERGY_water, ABSORPTION_air, NUMENTRIES_general);
    myMPT2->AddProperty("RAYLEIGH",ENERGY_water, RAYLEIGH_air, NUMENTRIES_general);
@@ -479,5 +477,4 @@
    //----------------  Tyvek
    //--------------
-   //JEC 9/2/07 : as Blacksheet in a version 0
    //JEC +SDC 9/2/07: introduce the Auger simulation of the liner
    
@@ -489,12 +486,22 @@
      3.22*eV , 3.31*eV , 3.4*eV  , 3.49*eV , 3.59*eV , 3.7*eV  , 3.81*eV , 3.94*eV , 4.07*eV , 4.20*eV };
 
-   G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] =
-     { 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 
-       10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 
-       10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m };
-
-   G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable();
-   myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek);
-   Tyvek->SetMaterialPropertiesTable(myMPT4);
+//    //JEC 22/2/07 : This Absorbtion may be not useful ??? To be fixed
+//    G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] =
+//      { 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 
+//        10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 
+//        10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m };
+
+//    //JEC 22/2/07 ad hoc to make non 0 RINDEX in the OpBoundary process
+//    //see Web http://www.mfa.org/_cameo/frontend/material_print.asp?name=polyethylene&type=description
+//    G4double RINDEX_Tyvek[NUMENTRIES_tyvek] =
+//      { 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 
+//        1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 
+//        1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 };
+
+//    G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable();
+//    myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek);
+//    myMPT4->AddProperty("RINDEX"   , ENERGY_tyvek, RINDEX_Tyvek    , NUMENTRIES_tyvek);
+   
+//    Tyvek->SetMaterialPropertiesTable(myMPT4);
    
 
@@ -503,4 +510,16 @@
    //--------------
 
+//   G4double RINDEX_glass[NUMENTRIES_general] =
+//     { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
+//       1.600, 1.600 }; 
+
+   // JEC 22/2/07 test: 1.6 a 2. for a tracking test...
   G4double RINDEX_glass[NUMENTRIES_general] =
     { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
@@ -552,17 +571,29 @@
    OpWaterTyvekSurface->SetType(dielectric_dielectric);
    OpWaterTyvekSurface->SetModel(unified);
-   OpWaterTyvekSurface->SetFinish(groundbackpainted);
+   //OpWaterTyvekSurface->SetFinish(groundbackpainted); 
+   //JEC why not groundfrontpainted instead? 22/2/07
+   OpWaterTyvekSurface->SetFinish(groundfrontpainted);
    OpWaterTyvekSurface->SetSigmaAlpha( 0.17 );
    
    //JEC + SDC 9/2/07 : adapted from Auger
-   const G4int NUMENTRIES_water_tyvek = 3;
-   G4double PP[NUMENTRIES_water_tyvek]                    = { 2.08*eV, 3.0*eV, 4.2*eV };
-   G4double RINDEX_tyvek[NUMENTRIES_water_tyvek]          = { 0.0    , 0.0   ,  0.0   }; //JEC ????
-   G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek]  = { 0.2    , 0.2   ,  0.2   };
-   G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0    , 0.0   ,  0.0   };
-   G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek]   = { 0.0    , 0.0   ,  0.0   };
-
-   //JEC 9/2/07 from MEMPHYS/SK Blacksheet: for sure should be modified!
+
+//    const G4int NUMENTRIES_water_tyvek = 3;
+//    G4double PP[NUMENTRIES_water_tyvek]                    = { 2.08*eV, 3.0*eV, 4.2*eV };
+   //JEC 23/2/07 no more RINDEX useful for groundfrontpainted surface
+   //G4double RINDEX2_tyvek[NUMENTRIES_water_tyvek]          = { 0.0    , 0.0   ,  0.0   }; //JEC ???? 
+
+   //JEC 23/2/07 extend to the entire energy domain of the REFLECTIVITY
+   //G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek]  = { 0.2    , 0.2   ,  0.2   };
+   G4double SPECULARLOBECONSTANT_tyvek[NUMENTRIES_tyvek]  = 
+     { 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 
+       0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 
+       0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 };
+
+
+   //JEC 23/2/07 by default = 0 so unuseful 
+   //G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0    , 0.0   ,  0.0   };
+   //G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek]   = { 0.0    , 0.0   ,  0.0   };
    //JEC + SDC 9/2/07 adapted from Auger
+
    G4double REFLECTIVITY_tyvek[NUMENTRIES_tyvek] =
      { 0.968816 , 0.968427 , 0.967940 , 0.967357 , 0.967065 , 0.966870 , 0.966870 , 0.967162 , 0.967649 , 0.968524 ,
@@ -572,8 +603,9 @@
    
    G4MaterialPropertiesTable *myST1 = new G4MaterialPropertiesTable();
-   myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX_tyvek, NUMENTRIES_tyvek);
-   myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek);
-   myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek);
-   myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek);
+   //myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX2_tyvek, NUMENTRIES_water_tyvek);
+   //   myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek);
+    myST1->AddProperty("SPECULARLOBECONSTANT", ENERGY_tyvek, SPECULARLOBECONSTANT_tyvek, NUMENTRIES_tyvek);
+   //myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek);
+   //myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek);
    myST1->AddProperty("REFLECTIVITY", ENERGY_tyvek, REFLECTIVITY_tyvek, NUMENTRIES_tyvek);
    OpWaterTyvekSurface->SetMaterialPropertiesTable(myST1);
@@ -585,4 +617,6 @@
    //JEC 13/2/07 this is a stopping surface as the photocathode in MEMPHYS
    //            reflectivity = 0 && efficiency = 100%   => absorption
+   //JEC 23/2/07 certainly unuseful since the water-tyvek is groundfrontpainted it do reflection or absorption so 
+   // no optical photon can penetrate the Tyvek sheet. To be Fixed
    
    OpTyvekGlassSurface = new G4OpticalSurface("TyvekGlassSurface");
@@ -591,37 +625,38 @@
    OpTyvekGlassSurface->SetFinish(polished);
    const G4int NUM = 2;
+   G4double PP_tyvekglass[NUM]           = { 1.0*eV, 5.0*eV };
    G4double REFLECTIVITY_tyvekglass[NUM] = { 0.0, 0.0 };
    G4double EFFICIENCY_tyvekglass[NUM]   = { 1.0, 1.0 };
 
    G4MaterialPropertiesTable *myST2 = new G4MaterialPropertiesTable();
-   myST2->AddProperty("REFLECTIVITY", PP, REFLECTIVITY_tyvekglass, NUM);
-   myST2->AddProperty("EFFICIENCY", PP, EFFICIENCY_tyvekglass, NUM);
+   myST2->AddProperty("REFLECTIVITY", PP_tyvekglass, REFLECTIVITY_tyvekglass, NUM);
+   myST2->AddProperty("EFFICIENCY", PP_tyvekglass, EFFICIENCY_tyvekglass, NUM);
    OpTyvekGlassSurface->SetMaterialPropertiesTable(myST2);
 
-   //------------------
-   //Water - Air
-   //------------------
-
-   //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified
-   OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface");
-   OpWaterAirSurface->SetType(dielectric_dielectric);
-   OpWaterAirSurface->SetFinish(ground);
-   OpWaterAirSurface->SetModel(unified);
-   
-   const G4int num_WaterAir = 2;
-   G4double Ephoton_WaterAir[num_WaterAir]         = {2.038*eV, 4.144*eV};
-   G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40};
-   G4double SpecularLobe_WaterAir[num_WaterAir]    = {0.3, 0.3};
-   G4double SpecularSpike_WaterAir[num_WaterAir]   = {0.2, 0.2};
-   G4double Backscatter_WaterAir[num_WaterAir]     = {0.2, 0.2};
-   
-   G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable();
-   
-   myST11->AddProperty("RINDEX",                Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir);
-   myST11->AddProperty("SPECULARLOBECONSTANT",  Ephoton_WaterAir, SpecularLobe_WaterAir,    num_WaterAir);
-   myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir,   num_WaterAir);
-   myST11->AddProperty("BACKSCATTERCONSTANT",   Ephoton_WaterAir, Backscatter_WaterAir,     num_WaterAir);
-   
-   OpWaterAirSurface->SetMaterialPropertiesTable(myST11);
+//    //------------------
+//    //Water - Air
+//    //------------------
+
+//    //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified
+//    OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface");
+//    OpWaterAirSurface->SetType(dielectric_dielectric);
+//    OpWaterAirSurface->SetFinish(ground);
+//    OpWaterAirSurface->SetModel(unified);
+   
+//    const G4int num_WaterAir = 2;
+//    G4double Ephoton_WaterAir[num_WaterAir]         = {2.038*eV, 4.144*eV};
+//    G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40};
+//    G4double SpecularLobe_WaterAir[num_WaterAir]    = {0.3, 0.3};
+//    G4double SpecularSpike_WaterAir[num_WaterAir]   = {0.2, 0.2};
+//    G4double Backscatter_WaterAir[num_WaterAir]     = {0.2, 0.2};
+   
+//    G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable();
+   
+//    myST11->AddProperty("RINDEX",                Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir);
+//    myST11->AddProperty("SPECULARLOBECONSTANT",  Ephoton_WaterAir, SpecularLobe_WaterAir,    num_WaterAir);
+//    myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir,   num_WaterAir);
+//    myST11->AddProperty("BACKSCATTERCONSTANT",   Ephoton_WaterAir, Backscatter_WaterAir,     num_WaterAir);
+   
+//    OpWaterAirSurface->SetMaterialPropertiesTable(myST11);
 }//ConstructMaterials
 
Index: /ELYSE/HEAD/source/EventAction.cxx
===================================================================
--- /ELYSE/HEAD/source/EventAction.cxx	(revision 293)
+++ /ELYSE/HEAD/source/EventAction.cxx	(revision 294)
@@ -36,5 +36,5 @@
 #include "ELYSE/RunAction.hh"
 #include "ELYSE/PrimaryGeneratorAction.hh"
-#include "ELYSE/TrappVolHit.hh"
+//#include "ELYSE/TrappVolHit.hh"
 #include "ELYSE/DetectorConstruction.hh"
 
@@ -347,46 +347,47 @@
   //  Get Hit Collection
   // --------------------
-    
-  G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member
-    
-  // Get Hit collection of this event
-  G4HCofThisEvent* HCE         = evt->GetHCofThisEvent();
-  TrappVolHitsCollection* TrappVolHC = 0;
-
-  AIDA::ITuple* hit = eventTuple->getTuple(6);                         //hit
-  G4int nHits=0;
-
-  if (HCE) { 
-    G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor
-    G4int collectionID = SDman->GetCollectionID(name);
-    TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID);
-  }
-  
-  if (TrappVolHC) {
-
-    nHits = TrappVolHC->entries();
-    eventTuple->fill(5, nHits);                                          //nHits
-    
-    TrappVolHit* aHit;
-
-    for (G4int i=0; i<nHits  ;i++) {
-      aHit = (*TrappVolHC)[i];
-
-      //dump
-      aHit->Print();
-
-      hit->fill(0,aHit->GetTime());                  //time of hit creation
-      hit->fill(1,aHit->GetEtot());                  //Total energy of the particle creating the hit 
-      hit->fill(2,aHit->GetCoordinates().x());       //position of the hit
-      hit->fill(3,aHit->GetCoordinates().y());
-      hit->fill(4,aHit->GetCoordinates().z());
-      hit->fill(5,aHit->GetTrkId());                 //Id of the particle
-      hit->fill(6,aHit->GetParentId());              //Id of the parent of the particle
-      hit->fill(7,aHit->GetPDGEncoding());           //PDG code of the particle
-      hit->fill(8,aHit->GetEdep());                  //Energy deposit
-
-      hit->addRow();
-    }//loop on hits
-  }//Hit container
+  //JEC 22/2/07 not yet available
+    
+//   G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member
+    
+//   // Get Hit collection of this event
+//   G4HCofThisEvent* HCE         = evt->GetHCofThisEvent();
+//   TrappVolHitsCollection* TrappVolHC = 0;
+
+//   AIDA::ITuple* hit = eventTuple->getTuple(6);                         //hit
+//   G4int nHits=0;
+
+//   if (HCE) { 
+//     G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor
+//     G4int collectionID = SDman->GetCollectionID(name);
+//     TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID);
+//   }
+  
+//   if (TrappVolHC) {
+
+//     nHits = TrappVolHC->entries();
+//     eventTuple->fill(5, nHits);                                          //nHits
+    
+//     TrappVolHit* aHit;
+
+//     for (G4int i=0; i<nHits  ;i++) {
+//       aHit = (*TrappVolHC)[i];
+
+//       //dump
+//       aHit->Print();
+
+//       hit->fill(0,aHit->GetTime());                  //time of hit creation
+//       hit->fill(1,aHit->GetEtot());                  //Total energy of the particle creating the hit 
+//       hit->fill(2,aHit->GetCoordinates().x());       //position of the hit
+//       hit->fill(3,aHit->GetCoordinates().y());
+//       hit->fill(4,aHit->GetCoordinates().z());
+//       hit->fill(5,aHit->GetTrkId());                 //Id of the particle
+//       hit->fill(6,aHit->GetParentId());              //Id of the parent of the particle
+//       hit->fill(7,aHit->GetPDGEncoding());           //PDG code of the particle
+//       hit->fill(8,aHit->GetEdep());                  //Energy deposit
+
+//       hit->addRow();
+//     }//loop on hits
+//   }//Hit container
 
   //Save the Event
Index: /ELYSE/HEAD/source/StackingAction.cxx
===================================================================
--- /ELYSE/HEAD/source/StackingAction.cxx	(revision 293)
+++ /ELYSE/HEAD/source/StackingAction.cxx	(revision 294)
@@ -19,5 +19,5 @@
 
 G4ClassificationOfNewTrack ELYSE::StackingAction::ClassifyNewTrack (const G4Track* aTrack) {
-  G4ClassificationOfNewTrack classification    = fWaiting;
+  //JEC unused varaible 22/2/07  G4ClassificationOfNewTrack classification    = fWaiting;
   G4ParticleDefinition*      particleType      = aTrack->GetDefinition();
   G4String                   particleName      = particleType->GetParticleName();
Index: /ELYSE/HEAD/source/SteppingAction.cxx
===================================================================
--- /ELYSE/HEAD/source/SteppingAction.cxx	(revision 293)
+++ /ELYSE/HEAD/source/SteppingAction.cxx	(revision 294)
@@ -20,5 +20,5 @@
 #include "ELYSE/TrackingAction.hh"
 #include "ELYSE/Trajectory.hh"
-#include "ELYSE/TrappingVolume.hh"
+//#include "ELYSE/TrappingVolume.hh"
 #include "ELYSE/TrackInformation.hh"
 
@@ -40,4 +40,36 @@
   G4VPhysicalVolume* thePostPV = thePostPoint->GetPhysicalVolume();
 
+  
+  //JEC START debug Optical surface properties
+//   G4StepPoint* pPreStepPoint  = theStep->GetPreStepPoint();
+//   G4cout << "(JEC): UserSteppingAction PrePoint Volume:" <<  pPreStepPoint->GetPhysicalVolume()->GetName()
+// 	 << " PostPoint Volume: " << thePostPV->GetName()
+// 	 << G4endl;
+//   G4LogicalSurface* Surface = 
+//     G4LogicalSkinSurface::GetSurface(pPreStepPoint->GetPhysicalVolume()->GetLogicalVolume());
+//   G4OpticalSurface* OpticalSurface = 0;
+//   if (Surface) OpticalSurface = (G4OpticalSurface*) Surface->GetSurfaceProperty();
+//   if (OpticalSurface) { 
+//     G4cout << "(JEC) UserSteppingAction: Optical Surface Found" << G4endl;
+//     OpticalSurface->DumpInfo();    
+//     G4MaterialPropertiesTable* aMaterialPropertiesTable;
+//     G4MaterialPropertyVector* Rindex;
+//     aMaterialPropertiesTable = OpticalSurface->GetMaterialPropertiesTable();
+    
+//     if (aMaterialPropertiesTable) {
+// 	Rindex = aMaterialPropertiesTable->GetProperty("RINDEX");
+// 	if (Rindex) {
+// 	  G4cout << "(JEC) Found RINDEX properties: " << G4endl;
+// 	  Rindex->DumpVector();
+// 	} else {
+// 	  G4cout << "(JEC) NO  RINDEX properties " << G4endl;
+// 	}
+//     } else {
+//       G4cout << "(JEC) NO  MATERIAL properties " << G4endl;
+//     }
+//   } else {
+//     G4cout << "(JEC) NO OpticalSurface " << G4endl;
+//   }
+  
   G4OpBoundaryProcessStatus boundaryStatus=Undefined;
   static G4OpBoundaryProcess* boundary=NULL;
@@ -74,4 +106,8 @@
     
     //------------Kill photons entering expHall
+
+//     G4cout << "(JEC) UserSteppingAction: Post Volume " << thePostPV->GetName()
+// 	   << G4endl;
+
     if(thePostPV->GetName()=="expHall") {
       theTrack->SetTrackStatus(fStopAndKill);}
@@ -94,61 +130,34 @@
 //                                   Absorption, Detection, NotAtBoundary,
 //                                   SameMaterial, StepTooSmall, NoRINDEX}
-      switch(boundaryStatus){
-      case FresnelRefraction:
-	G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break;
-      case FresnelReflection:
-	G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break;
-      case TotalInternalReflection:
-	G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break;
-       case LambertianReflection:
-	G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break;
-      case LobeReflection:
-	G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break;
-      case SpikeReflection:
-	G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break;
-      case Absorption:
-	G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break;
-     
-      case Detection: // Note, this assumes that the volume causing detection
-                      // is the interface between Tyvek and Air because it is the only one with
-	              // 100% efficiency
-	{
-	  // Triger sensitive detector manually since photon is
-	  // absorbed but status was Detection
-	  G4SDManager* SDman = G4SDManager::GetSDMpointer();
-	  //see DetectorConstruction::Construct for the PATH of the Sensitive Volume
-	  TrappingVolume* trapVol = 0;
-	  if(SDman) trapVol = (TrappingVolume*)SDman->FindSensitiveDetector("/ELYSE/TrappingVolume");
+//       switch(boundaryStatus){
+//       case FresnelRefraction:
+//        	G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break;
+//       case FresnelReflection:
+// 	G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break;
+//       case TotalInternalReflection:
+// 	G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break;
+//        case LambertianReflection:
+// 	G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break;
+//       case LobeReflection:
+// 	G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break;
+//       case SpikeReflection:
+// 	G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break;
+//       case Absorption:
+// 	G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break;
+//       case Detection: 
+// 	G4cout << "(JEC) Status of PostPoint: Detection" << G4endl; break;
+//       case NotAtBoundary:
+// 	G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break;
+//       case SameMaterial:
+// 	G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break;
+//       case StepTooSmall:
+// 	G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break;
+//       case NoRINDEX:
+// 	G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break;
 
-	  if(trapVol) { 
-	    trapVol->ProcessHits_constStep(theStep,0);
+//       default:
+// 	break;
 
-            //------------Save the hit into the track info
-
-            TrackInformation* aInfo = (TrackInformation*)theTrack->GetUserInformation();
-            G4cout << "(JEC) SteppingAction::opticalphoton detection = " 
-	           << " " << theTrack << " " << aInfo << G4endl; 
-            if(aInfo)aInfo->AddTrackStatusFlag(hitProduced);
-
-	  } else {
-	    G4cout << "(JEC) UserSteppingAction: FATAL: NO Sensitive Det. FOUND" << G4endl;
-	    exit(0);
-	  }
-	  break;
-	}//case Detection
-
-      case NotAtBoundary:
-	G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break;
-      case SameMaterial:
-	G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break;
-      case StepTooSmall:
-	G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break;
-      case NoRINDEX:
-	G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break;
-
-      default:
-	break;
-
-      }//eo switch on boundary values
+//       }//eo switch on boundary values
 
     }//test on GeomBoundary
Index: /ELYSE/HEAD/source/TrackingAction.cxx
===================================================================
--- /ELYSE/HEAD/source/TrackingAction.cxx	(revision 293)
+++ /ELYSE/HEAD/source/TrackingAction.cxx	(revision 294)
@@ -48,7 +48,7 @@
   //-----------optical photon: store trajectory objects 
 
-  G4cout << "(JEC) PreUserTrackingAction (" << particleName 
- 	 << ") and DrawOptical = " << drawOpticalPhoton
- 	 << G4endl;
+//   G4cout << "(JEC) PreUserTrackingAction (" << particleName 
+//  	 << ") and DrawOptical = " << drawOpticalPhoton
+//  	 << G4endl;
 
   if(!drawOpticalPhoton && (particleName == "opticalphoton") )return;
@@ -56,6 +56,6 @@
   if(drawOpticalPhoton && (particleName == "opticalphoton") ){
 
-    G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID()
-	   << G4endl; 
+//     G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID()
+// 	   << G4endl; 
 
 
@@ -84,8 +84,8 @@
   G4double thresholdTobeSaved = 0.*keV; //JEC FIXME put in the messenger
 
-  G4cout << "(JEC) PreUserTrackingAction (" << particleName 
-	 << " ParentID " << aTrack->GetParentID();
-  if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName();
-  G4cout << G4endl;
+//   G4cout << "(JEC) PreUserTrackingAction (" << particleName 
+// 	 << " ParentID " << aTrack->GetParentID();
+//   if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName();
+//   G4cout << G4endl;
 
 
Index: YSE/HEAD/source/TrappVolHit.cxx
===================================================================
--- /ELYSE/HEAD/source/TrappVolHit.cxx	(revision 293)
+++ 	(revision )
@@ -1,145 +1,0 @@
-#include "ELYSE/TrappVolHit.hh"
-
-//Geant4
-#include "G4Box.hh"
-#include "G4AttDefStore.hh"
-#include "G4AttDef.hh"
-#include "G4AttValue.hh"
-#include "G4UnitsTable.hh"
-#include "G4VVisManager.hh"
-#include "G4ParticleTypes.hh"
-#include "G4Circle.hh"
-#include "G4VisAttributes.hh"
-#include "G4RotationMatrix.hh"
-
-//std
-#include <sstream>
-#include <iomanip>
-
-
-//JEC 10/1/06 introduce ELYSE
-namespace ELYSE {
-  G4Allocator<TrappVolHit> TrappVolHitAllocator;
-}
-
-ELYSE::TrappVolHit::TrappVolHit() :
-  time(0.),
-  eTot(0.),
-  position(),
-  trkId(0),
-  parentId(0),
-  pdg(0),
-  edep(0)
-{
-  //JEC very preliminary 15/2/07 for visualisation
-  virtualSolid = (G4CSGSolid*)(new G4Box("VolHit",0.1*mm,0.1*mm,0.1*mm));
-}//Ctor
-
-
-//-----------------------------------------------------------------------------------------
-
-ELYSE::TrappVolHit::~TrappVolHit() {
-  delete virtualSolid;
-}
-
-//-----------------------------------------------------------------------------------------
-
-const std::map<G4String,G4AttDef>* ELYSE::TrappVolHit::GetAttDefs() const {
-  G4bool isNew;
-  std::map<G4String,G4AttDef>* store = G4AttDefStore::GetInstance("TrappVolHit",isNew);
-
-  if (isNew) {    
-    
-    G4String VSolid("VSolid");
-    (*store)[VSolid] = G4AttDef(VSolid,"Virtual Solid attached to the Hit","Display","","G4VSolid*");
-    
-    G4String Position("Position");
-    (*store)[Position] = G4AttDef(Position,"3D Position","Physics","","G4ThreeVector");
-
-    G4String Time("Time");
-    (*store)[Time] = G4AttDef(Time,"Arrival Time","Physics","","G4double");
-
-    G4String TrkID("TrkID");
-    (*store)[TrkID] = G4AttDef(TrkID,"Track Id","Physics","","G4int");
-
-    G4String ParentID("ParentID");
-    (*store)[ParentID] = G4AttDef(ParentID,"Parent Track Id","Physics","","G4int");
-    
-    G4String PDG("PDG");
-    (*store)[PDG] = G4AttDef(PDG,"Track PDG Code","Physics","","G4int");
-
-    G4String Etot("Etot");
-    (*store)[Etot] = G4AttDef(Etot,"Track total energy","Physics","","G4double");
-
-    G4String Edep("Edep");
-    (*store)[Edep] = G4AttDef(Edep,"Deposit energy by the track","Physics","","G4double");
-    
-  }
-  return store;
-}//GetAttDefs
-
-//----------------------------------------------------------------------------------------------------
-
-std::vector<G4AttValue>* ELYSE::TrappVolHit::CreateAttValues() const {
-
-  std::ostringstream s;
-  
-  std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
-
-  s.str("");
-  s << virtualSolid;
-  values->push_back(G4AttValue("VSolid",s.str(),""));
-  
-  s.str("");
-  s << &position;
-  values->push_back(G4AttValue("Position",s.str(),""));
-    
-  s.str("");
-  s << time;
-  values->push_back(G4AttValue("Time",s.str(),""));
-
-  s.str("");
-  s << trkId;
-  values->push_back(G4AttValue("TrkID",s.str(),""));
-
-  s.str("");
-  s << parentId;
-  values->push_back(G4AttValue("ParentID",s.str(),""));
-
-  s.str("");
-  s << pdg;
-  values->push_back(G4AttValue("PDG",s.str(),""));
-
-  s.str("");
-  s << eTot;
-  values->push_back(G4AttValue("Etot",s.str(),""));
-
-  s.str("");
-  s << edep;
-  values->push_back(G4AttValue("Edep",s.str(),""));
-
-  return values;
-}//CreateAttValues
-
-//-----------------------------------------------------------------------------------------
-
-void ELYSE::TrappVolHit::Print() {
-
-  G4cout.setf(std::ios::fixed);
-  G4cout.precision(2);
-
-  G4cout << " -------> Track ["  << trkId << "]"
-	 << " PDG: "      << pdg
-	 << " Parent: "   << parentId
-	 << " Time: "     << time
-	 << " Etot "      << eTot
-	 << " Edep: "     << edep
-	 << " \n Position (" 
-	 <<  position.x() << " , "
-	 <<  position.y() << " , "
-	 <<  position.z() << ")\n "
-	 << G4endl;
-  }//Print
-
-
-
Index: YSE/HEAD/source/TrappingVolume.cxx
===================================================================
--- /ELYSE/HEAD/source/TrappingVolume.cxx	(revision 293)
+++ 	(revision )
@@ -1,109 +1,0 @@
-#include "ELYSE/TrappingVolume.hh"
-
-//Geant4
-#include "G4ParticleTypes.hh"
-#include "G4HCofThisEvent.hh"
-#include "G4TouchableHistory.hh"
-#include "G4Step.hh"
-#include "G4ThreeVector.hh"
-#include "G4SDManager.hh"
-#include "G4ios.hh"
-
-//std
-#include <sstream>
-#include <stdio.h>
-
-//ELYSE
-#include "ELYSE/DetectorConstruction.hh"
-
-ELYSE::TrappingVolume::TrappingVolume(G4String name, 
-				      DetectorConstruction* aDetConstruction) 
-:G4VSensitiveDetector(name),ELYSEDetConstruction(aDetConstruction) {
-  
-  G4String HCname;
-  collectionName.insert(HCname="TrappingVolume");
-
-  HCID = -1;
-  
-}//Ctor
-
-//-----------------------------------------------------------------------------------------
-
-ELYSE::TrappingVolume::~TrappingVolume() {
-}//Dtor
-
-//-----------------------------------------------------------------------------------------
-
-
-void ELYSE::TrappingVolume::Initialize(G4HCofThisEvent* HCE) {
-  // Make a new hits collection.  With the name we set in the constructor
-  hitsCollection = new TrappVolHitsCollection(SensitiveDetectorName,collectionName[0]); 
-    
-  // Get the Id of the "0th" collection
-  if (HCID<0) HCID =  GetCollectionID(0); //JEC FIXME: is it necessary?
-  
-  // Add it to the Hit collection of this event.
-  HCE->AddHitsCollection( HCID, hitsCollection );  //JEC FIXME: is it necessary?
-
-}//Initialize
-
-//-----------------------------------------------------------------------------------------
-G4bool ELYSE::TrappingVolume::ProcessHits(G4Step* aStep, G4TouchableHistory* aTH) {
-  return ProcessHits_constStep(aStep,aTH);
-}
-//-----------------------------------------------------------------------------------------
-
-G4bool ELYSE::TrappingVolume::ProcessHits_constStep(const G4Step* aStep, G4TouchableHistory*) {
-
-  //  G4ParticleDefinition *particleDefinition = aStep->GetTrack()->GetDefinition();
-
-//   if ( particleDefinition != G4OpticalPhoton::OpticalPhotonDefinition()) return false;
-//   if ( aStep->GetTrack()->GetTrackStatus() == fAlive ) return false;
-
-
-  TrappVolHit* newHit = new TrappVolHit();
-  
-  G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
-  G4Track*     theTrack     = aStep->GetTrack();
-
-
-  //related to the StepPoint or the Track????
-  newHit->SetTime(preStepPoint->GetGlobalTime());
-  newHit->SetEtot(preStepPoint->GetTotalEnergy());
-  newHit->SetCoordinates(preStepPoint->GetPosition());
-  newHit->SetTrkId(theTrack->GetTrackID());
-  newHit->SetParentId(theTrack->GetParentID());
-  newHit->SetPDGEncoding(theTrack->GetDefinition()->GetPDGEncoding()); 
-  newHit->SetEdep(aStep->GetTotalEnergyDeposit());
-
-  
-  G4cout << "New Hit \n"  
-	 << "Global Time: " << preStepPoint->GetGlobalTime() << " =?= " 
-	 << theTrack->GetGlobalTime() 
-	 << "\n"
-	 << "TotalEnergy: " << preStepPoint->GetTotalEnergy()  << " =?= " 
-	 << theTrack->GetTotalEnergy()
-	 << "\n"
-	 << "Position: " << preStepPoint->GetPosition() << " =?= " 
-	 <<  theTrack->GetPosition() 
-	 << G4endl;
-
-
-  //store the hit
-  hitsCollection->insert( newHit ); 
-
-  return true;
-}//ProcessHits
-
-//-----------------------------------------------------------------------------------------
-
-void ELYSE::TrappingVolume::EndOfEvent(G4HCofThisEvent*) {
-  if (verboseLevel>0) { 
-    G4int numHits = hitsCollection->entries();
-
-    G4cout << "There are " << numHits << " hits in the WC: " << G4endl;
-    for (G4int i=0; i < numHits; i++) 
-      (*hitsCollection)[i]->Print();
-  } 
-}//EndOfEvent
-
