Changeset 294 for ELYSE


Ignore:
Timestamp:
Feb 23, 2007, 2:22:42 PM (17 years ago)
Author:
campagne
Message:

Unuseful Sensitive Detector for the moment (JEC)

Location:
ELYSE/HEAD/source
Files:
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • ELYSE/HEAD/source/Callbacks/Callbacks.cxx

    r286 r294  
    105105  data_visualize(session);
    106106
    107   data_collect(session,"PV","name==\"SensiVol\"");
     107  data_collect(session,"PV","name==\"GlassVol\"");
    108108  data_visualize(session);
    109109
  • ELYSE/HEAD/source/DetectorConstruction.cxx

    r286 r294  
    2525
    2626//ELYSE
    27 #include "ELYSE/TrappingVolume.hh"
     27//#include "ELYSE/TrappingVolume.hh"
    2828#include "ELYSE/DetectorMessenger.hh"
    2929#include "ELYSE/Cast.hh"
     
    4242  //-----------------
    4343
    44   aTrappingVolume  = 0;
     44  //  aTrappingVolume  = 0;
    4545
    4646  //-----------------
     
    5454  //tyvek sheet thickness
    5555  tyvek_thickness = 1.0*mm;
     56  //glass tank thickness
     57  glass_thickness = 5.0*mm;
    5658
    5759
    5860  updated = true;
    59 
    60   //Initialize the optical surface
    61   OpWaterTyvekSurface = 0;
    62   OpWaterAirSurface   = 0;
    63 
    6461
    6562  //-----------------
     
    8683
    8784  //-----------------------
    88   // A box of water delimited by a tyvek sheet and surrounding by a air volume sensitive
     85  // A box of water delimited by a tyvek sheet and surrounding by a glass tank and then a air volume sensitive
    8986  //-----------------------
    9087
     
    9693 
    9794
    98   //a volume sensitive to trap every particles...
    99   G4Box*  solidSensiVolFull = new G4Box("SensiVolFull",
    100                                     water_x/2.+ 2.*tyvek_thickness,
    101                                     water_y/2.+ 2.*tyvek_thickness,
    102                                     water_z/2.+ 2.*tyvek_thickness
     95  G4Box*  solidGlassVol = new G4Box("GlassVol",
     96                                    water_x/2.+ glass_thickness,
     97                                    water_y/2.+ glass_thickness,
     98                                    water_z/2.+ glass_thickness
    10399                                    );
    104100 
    105101
    106   G4Box*  solidTyvekFull = new G4Box("TyvekFull",
     102  G4Box*  solidTyvek = new G4Box("TyvekSheet",
    107103                                     water_x/2.+tyvek_thickness,
    108104                                     water_y/2.+tyvek_thickness,
     
    114110
    115111
    116   G4SubtractionSolid* solidSensiVol = new G4SubtractionSolid("SensiVol",solidSensiVolFull,solidTyvekFull);
     112  //JEC 22/2/07 test to avoid Substraction and use simple immersion
     113  //  G4SubtractionSolid* solidGlassVol = new G4SubtractionSolid("GlassVol",solidGlassFull,solidTyvekFull);
    117114
    118115  //Make the tyvek volume as an subtraction to define a proper tyvek volume for the oprtical surface
    119116  //overwise we would have done a tyvek volume and place inside a water volume...
    120   G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank);
     117  //G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank);
    121118
    122119
     
    141138
    142139
    143   G4LogicalVolume* logicSensiVol
    144     = new G4LogicalVolume(solidSensiVol,G4Material::GetMaterial("Glass"),"SensiVol",0,0,0);
    145 
    146 
    147   G4VPhysicalVolume* physicSensiVol
    148     = new G4PVPlacement(0,G4ThreeVector(),logicSensiVol,"SensiVol",
    149                         logicExpHall,false,0);
     140  G4LogicalVolume* logicGlassVol
     141    = new G4LogicalVolume(solidGlassVol,G4Material::GetMaterial("Glass"),"GlassVol",0,0,0);
     142
     143
     144  new G4PVPlacement(0,G4ThreeVector(),logicGlassVol,"GlassVol",
     145                    logicExpHall,false,0);
    150146
    151147
     
    153149    = new G4LogicalVolume(solidTyvek,G4Material::GetMaterial("Tyvek"),"TyvekSheet",0,0,0);
    154150
    155   G4VPhysicalVolume* physicTyvek
    156     = new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet",
    157                         logicExpHall,false,0);
     151  new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet",
     152                    logicGlassVol,false,0);
    158153
    159154  G4LogicalVolume* logicWaterTank
     
    161156 
    162157
    163   G4VPhysicalVolume* physicWaterTank
    164     = new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank",
    165                         logicExpHall,false,0);
    166  
    167 
    168   //introduce the interfaces Water-Tyvek and Tyvek-Glass for optical photons
    169   new G4LogicalBorderSurface("waterTyvekInterface",
    170                                physicWaterTank,physicTyvek,OpWaterTyvekSurface);
    171  
    172   new G4LogicalBorderSurface("tyvekGlassInterface",
    173                                physicTyvek,physicSensiVol,OpTyvekGlassSurface);
     158  new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank",
     159                         logicTyvek,false,0);
     160 
     161
     162  G4LogicalSkinSurface* waterTyvekInter = new G4LogicalSkinSurface("waterTyvekInterface",
     163                                                                   logicWaterTank,OpWaterTyvekSurface);
     164  //Dump
     165  if(waterTyvekInter->GetLogicalVolume() == logicWaterTank)
     166    G4cout << "(JEC) water-Tyvek x-check logical: Ok" << G4endl;
     167  ((G4OpticalSurface*)
     168   (G4LogicalSkinSurface::GetSurface(logicWaterTank)->GetSurfaceProperty()))->DumpInfo();
     169 
     170
     171  //JEC 22/2/07 use a Skin envelop for the transition Tyvek-Glass
     172  //JEC Not sure that for the moment it is useful: To be Fixed
     173  new G4LogicalSkinSurface("waterTyvekInterface",
     174                           logicWaterTank,OpTyvekGlassSurface);
     175 
    174176
    175177  //--------------
     
    177179  //--------------
    178180
    179   G4SDManager* SDman = G4SDManager::GetSDMpointer();
    180  
    181   if (!aTrappingVolume) {
    182     //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions
    183     aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this );
    184     SDman->AddNewDetector( aTrappingVolume );
    185   }
    186   logicSensiVol->SetSensitiveDetector( aTrappingVolume );
     181//   G4SDManager* SDman = G4SDManager::GetSDMpointer();
     182 
     183//   if (!aTrappingVolume) {
     184//     //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions
     185//     aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this );
     186//     SDman->AddNewDetector( aTrappingVolume );
     187//   }
     188//   logicGlassVol->SetGlasstiveDetector( aTrappingVolume );
    187189
    188190
     
    275277
    276278  //---Tyvek
    277   //JEC : 9/2/07 as MEMPHYS/SK::Blacksheet in a version 0
    278279  //JEC + SDC: 9/2/07 use Auger Liner definition
    279280  a= 12.01*g/mole;
     
    422423   Water->SetMaterialPropertiesTable(myMPT1);
    423424   
    424    G4cout << "ConstructMaterial: Dump Water properties" << G4endl;
    425    myMPT1->DumpTable();
     425   //   G4cout << "ConstructMaterial: Dump Water properties" << G4endl;
     426   //   myMPT1->DumpTable();
    426427   
    427428
     
    468469   G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable();
    469470   myMPT2->AddProperty("RINDEX", ENERGY_water, RINDEX_air, NUMENTRIES_general);
    470    // M Fechner : what is that ?????
    471    //   myMPT2->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_general);
    472    // JEC: replace BLACKABS_blacksheet by  ABSORPTION_air
    473471   myMPT2->AddProperty("ABSLENGTH", ENERGY_water, ABSORPTION_air, NUMENTRIES_general);
    474472   myMPT2->AddProperty("RAYLEIGH",ENERGY_water, RAYLEIGH_air, NUMENTRIES_general);
     
    479477   //----------------  Tyvek
    480478   //--------------
    481    //JEC 9/2/07 : as Blacksheet in a version 0
    482479   //JEC +SDC 9/2/07: introduce the Auger simulation of the liner
    483480   
     
    489486     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 };
    490487
    491    G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] =
    492      { 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 ,
    493        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 ,
    494        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 };
    495 
    496    G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable();
    497    myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek);
    498    Tyvek->SetMaterialPropertiesTable(myMPT4);
     488//    //JEC 22/2/07 : This Absorbtion may be not useful ??? To be fixed
     489//    G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] =
     490//      { 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 ,
     491//        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 ,
     492//        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 };
     493
     494//    //JEC 22/2/07 ad hoc to make non 0 RINDEX in the OpBoundary process
     495//    //see Web http://www.mfa.org/_cameo/frontend/material_print.asp?name=polyethylene&type=description
     496//    G4double RINDEX_Tyvek[NUMENTRIES_tyvek] =
     497//      { 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 ,
     498//        1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 ,
     499//        1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 };
     500
     501//    G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable();
     502//    myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek);
     503//    myMPT4->AddProperty("RINDEX"   , ENERGY_tyvek, RINDEX_Tyvek    , NUMENTRIES_tyvek);
     504   
     505//    Tyvek->SetMaterialPropertiesTable(myMPT4);
    499506   
    500507
     
    503510   //--------------
    504511
     512//   G4double RINDEX_glass[NUMENTRIES_general] =
     513//     { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     514//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     515//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     516//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     517//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     518//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     519//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     520//       1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     521//       1.600, 1.600 };
     522
     523   // JEC 22/2/07 test: 1.6 a 2. for a tracking test...
    505524  G4double RINDEX_glass[NUMENTRIES_general] =
    506525    { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600,
     
    552571   OpWaterTyvekSurface->SetType(dielectric_dielectric);
    553572   OpWaterTyvekSurface->SetModel(unified);
    554    OpWaterTyvekSurface->SetFinish(groundbackpainted);
     573   //OpWaterTyvekSurface->SetFinish(groundbackpainted);
     574   //JEC why not groundfrontpainted instead? 22/2/07
     575   OpWaterTyvekSurface->SetFinish(groundfrontpainted);
    555576   OpWaterTyvekSurface->SetSigmaAlpha( 0.17 );
    556577   
    557578   //JEC + SDC 9/2/07 : adapted from Auger
    558    const G4int NUMENTRIES_water_tyvek = 3;
    559    G4double PP[NUMENTRIES_water_tyvek]                    = { 2.08*eV, 3.0*eV, 4.2*eV };
    560    G4double RINDEX_tyvek[NUMENTRIES_water_tyvek]          = { 0.0    , 0.0   ,  0.0   }; //JEC ????
    561    G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek]  = { 0.2    , 0.2   ,  0.2   };
    562    G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0    , 0.0   ,  0.0   };
    563    G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek]   = { 0.0    , 0.0   ,  0.0   };
    564 
    565    //JEC 9/2/07 from MEMPHYS/SK Blacksheet: for sure should be modified!
     579
     580//    const G4int NUMENTRIES_water_tyvek = 3;
     581//    G4double PP[NUMENTRIES_water_tyvek]                    = { 2.08*eV, 3.0*eV, 4.2*eV };
     582   //JEC 23/2/07 no more RINDEX useful for groundfrontpainted surface
     583   //G4double RINDEX2_tyvek[NUMENTRIES_water_tyvek]          = { 0.0    , 0.0   ,  0.0   }; //JEC ????
     584
     585   //JEC 23/2/07 extend to the entire energy domain of the REFLECTIVITY
     586   //G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek]  = { 0.2    , 0.2   ,  0.2   };
     587   G4double SPECULARLOBECONSTANT_tyvek[NUMENTRIES_tyvek]  =
     588     { 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 ,
     589       0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 ,
     590       0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 };
     591
     592
     593   //JEC 23/2/07 by default = 0 so unuseful
     594   //G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0    , 0.0   ,  0.0   };
     595   //G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek]   = { 0.0    , 0.0   ,  0.0   };
    566596   //JEC + SDC 9/2/07 adapted from Auger
     597
    567598   G4double REFLECTIVITY_tyvek[NUMENTRIES_tyvek] =
    568599     { 0.968816 , 0.968427 , 0.967940 , 0.967357 , 0.967065 , 0.966870 , 0.966870 , 0.967162 , 0.967649 , 0.968524 ,
     
    572603   
    573604   G4MaterialPropertiesTable *myST1 = new G4MaterialPropertiesTable();
    574    myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX_tyvek, NUMENTRIES_tyvek);
    575    myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek);
    576    myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek);
    577    myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek);
     605   //myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX2_tyvek, NUMENTRIES_water_tyvek);
     606   //   myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek);
     607    myST1->AddProperty("SPECULARLOBECONSTANT", ENERGY_tyvek, SPECULARLOBECONSTANT_tyvek, NUMENTRIES_tyvek);
     608   //myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek);
     609   //myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek);
    578610   myST1->AddProperty("REFLECTIVITY", ENERGY_tyvek, REFLECTIVITY_tyvek, NUMENTRIES_tyvek);
    579611   OpWaterTyvekSurface->SetMaterialPropertiesTable(myST1);
     
    585617   //JEC 13/2/07 this is a stopping surface as the photocathode in MEMPHYS
    586618   //            reflectivity = 0 && efficiency = 100%   => absorption
     619   //JEC 23/2/07 certainly unuseful since the water-tyvek is groundfrontpainted it do reflection or absorption so
     620   // no optical photon can penetrate the Tyvek sheet. To be Fixed
    587621   
    588622   OpTyvekGlassSurface = new G4OpticalSurface("TyvekGlassSurface");
     
    591625   OpTyvekGlassSurface->SetFinish(polished);
    592626   const G4int NUM = 2;
     627   G4double PP_tyvekglass[NUM]           = { 1.0*eV, 5.0*eV };
    593628   G4double REFLECTIVITY_tyvekglass[NUM] = { 0.0, 0.0 };
    594629   G4double EFFICIENCY_tyvekglass[NUM]   = { 1.0, 1.0 };
    595630
    596631   G4MaterialPropertiesTable *myST2 = new G4MaterialPropertiesTable();
    597    myST2->AddProperty("REFLECTIVITY", PP, REFLECTIVITY_tyvekglass, NUM);
    598    myST2->AddProperty("EFFICIENCY", PP, EFFICIENCY_tyvekglass, NUM);
     632   myST2->AddProperty("REFLECTIVITY", PP_tyvekglass, REFLECTIVITY_tyvekglass, NUM);
     633   myST2->AddProperty("EFFICIENCY", PP_tyvekglass, EFFICIENCY_tyvekglass, NUM);
    599634   OpTyvekGlassSurface->SetMaterialPropertiesTable(myST2);
    600635
    601    //------------------
    602    //Water - Air
    603    //------------------
    604 
    605    //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified
    606    OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface");
    607    OpWaterAirSurface->SetType(dielectric_dielectric);
    608    OpWaterAirSurface->SetFinish(ground);
    609    OpWaterAirSurface->SetModel(unified);
    610    
    611    const G4int num_WaterAir = 2;
    612    G4double Ephoton_WaterAir[num_WaterAir]         = {2.038*eV, 4.144*eV};
    613    G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40};
    614    G4double SpecularLobe_WaterAir[num_WaterAir]    = {0.3, 0.3};
    615    G4double SpecularSpike_WaterAir[num_WaterAir]   = {0.2, 0.2};
    616    G4double Backscatter_WaterAir[num_WaterAir]     = {0.2, 0.2};
    617    
    618    G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable();
    619    
    620    myST11->AddProperty("RINDEX",                Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir);
    621    myST11->AddProperty("SPECULARLOBECONSTANT",  Ephoton_WaterAir, SpecularLobe_WaterAir,    num_WaterAir);
    622    myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir,   num_WaterAir);
    623    myST11->AddProperty("BACKSCATTERCONSTANT",   Ephoton_WaterAir, Backscatter_WaterAir,     num_WaterAir);
    624    
    625    OpWaterAirSurface->SetMaterialPropertiesTable(myST11);
     636//    //------------------
     637//    //Water - Air
     638//    //------------------
     639
     640//    //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified
     641//    OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface");
     642//    OpWaterAirSurface->SetType(dielectric_dielectric);
     643//    OpWaterAirSurface->SetFinish(ground);
     644//    OpWaterAirSurface->SetModel(unified);
     645   
     646//    const G4int num_WaterAir = 2;
     647//    G4double Ephoton_WaterAir[num_WaterAir]         = {2.038*eV, 4.144*eV};
     648//    G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40};
     649//    G4double SpecularLobe_WaterAir[num_WaterAir]    = {0.3, 0.3};
     650//    G4double SpecularSpike_WaterAir[num_WaterAir]   = {0.2, 0.2};
     651//    G4double Backscatter_WaterAir[num_WaterAir]     = {0.2, 0.2};
     652   
     653//    G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable();
     654   
     655//    myST11->AddProperty("RINDEX",                Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir);
     656//    myST11->AddProperty("SPECULARLOBECONSTANT",  Ephoton_WaterAir, SpecularLobe_WaterAir,    num_WaterAir);
     657//    myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir,   num_WaterAir);
     658//    myST11->AddProperty("BACKSCATTERCONSTANT",   Ephoton_WaterAir, Backscatter_WaterAir,     num_WaterAir);
     659   
     660//    OpWaterAirSurface->SetMaterialPropertiesTable(myST11);
    626661}//ConstructMaterials
    627662
  • ELYSE/HEAD/source/EventAction.cxx

    r286 r294  
    3636#include "ELYSE/RunAction.hh"
    3737#include "ELYSE/PrimaryGeneratorAction.hh"
    38 #include "ELYSE/TrappVolHit.hh"
     38//#include "ELYSE/TrappVolHit.hh"
    3939#include "ELYSE/DetectorConstruction.hh"
    4040
     
    347347  //  Get Hit Collection
    348348  // --------------------
    349    
    350   G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member
    351    
    352   // Get Hit collection of this event
    353   G4HCofThisEvent* HCE         = evt->GetHCofThisEvent();
    354   TrappVolHitsCollection* TrappVolHC = 0;
    355 
    356   AIDA::ITuple* hit = eventTuple->getTuple(6);                         //hit
    357   G4int nHits=0;
    358 
    359   if (HCE) {
    360     G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor
    361     G4int collectionID = SDman->GetCollectionID(name);
    362     TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID);
    363   }
    364  
    365   if (TrappVolHC) {
    366 
    367     nHits = TrappVolHC->entries();
    368     eventTuple->fill(5, nHits);                                          //nHits
    369    
    370     TrappVolHit* aHit;
    371 
    372     for (G4int i=0; i<nHits  ;i++) {
    373       aHit = (*TrappVolHC)[i];
    374 
    375       //dump
    376       aHit->Print();
    377 
    378       hit->fill(0,aHit->GetTime());                  //time of hit creation
    379       hit->fill(1,aHit->GetEtot());                  //Total energy of the particle creating the hit
    380       hit->fill(2,aHit->GetCoordinates().x());       //position of the hit
    381       hit->fill(3,aHit->GetCoordinates().y());
    382       hit->fill(4,aHit->GetCoordinates().z());
    383       hit->fill(5,aHit->GetTrkId());                 //Id of the particle
    384       hit->fill(6,aHit->GetParentId());              //Id of the parent of the particle
    385       hit->fill(7,aHit->GetPDGEncoding());           //PDG code of the particle
    386       hit->fill(8,aHit->GetEdep());                  //Energy deposit
    387 
    388       hit->addRow();
    389     }//loop on hits
    390   }//Hit container
     349  //JEC 22/2/07 not yet available
     350   
     351//   G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member
     352   
     353//   // Get Hit collection of this event
     354//   G4HCofThisEvent* HCE         = evt->GetHCofThisEvent();
     355//   TrappVolHitsCollection* TrappVolHC = 0;
     356
     357//   AIDA::ITuple* hit = eventTuple->getTuple(6);                         //hit
     358//   G4int nHits=0;
     359
     360//   if (HCE) {
     361//     G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor
     362//     G4int collectionID = SDman->GetCollectionID(name);
     363//     TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID);
     364//   }
     365 
     366//   if (TrappVolHC) {
     367
     368//     nHits = TrappVolHC->entries();
     369//     eventTuple->fill(5, nHits);                                          //nHits
     370   
     371//     TrappVolHit* aHit;
     372
     373//     for (G4int i=0; i<nHits  ;i++) {
     374//       aHit = (*TrappVolHC)[i];
     375
     376//       //dump
     377//       aHit->Print();
     378
     379//       hit->fill(0,aHit->GetTime());                  //time of hit creation
     380//       hit->fill(1,aHit->GetEtot());                  //Total energy of the particle creating the hit
     381//       hit->fill(2,aHit->GetCoordinates().x());       //position of the hit
     382//       hit->fill(3,aHit->GetCoordinates().y());
     383//       hit->fill(4,aHit->GetCoordinates().z());
     384//       hit->fill(5,aHit->GetTrkId());                 //Id of the particle
     385//       hit->fill(6,aHit->GetParentId());              //Id of the parent of the particle
     386//       hit->fill(7,aHit->GetPDGEncoding());           //PDG code of the particle
     387//       hit->fill(8,aHit->GetEdep());                  //Energy deposit
     388
     389//       hit->addRow();
     390//     }//loop on hits
     391//   }//Hit container
    391392
    392393  //Save the Event
  • ELYSE/HEAD/source/StackingAction.cxx

    r286 r294  
    1919
    2020G4ClassificationOfNewTrack ELYSE::StackingAction::ClassifyNewTrack (const G4Track* aTrack) {
    21   G4ClassificationOfNewTrack classification    = fWaiting;
     21  //JEC unused varaible 22/2/07  G4ClassificationOfNewTrack classification    = fWaiting;
    2222  G4ParticleDefinition*      particleType      = aTrack->GetDefinition();
    2323  G4String                   particleName      = particleType->GetParticleName();
  • ELYSE/HEAD/source/SteppingAction.cxx

    r286 r294  
    2020#include "ELYSE/TrackingAction.hh"
    2121#include "ELYSE/Trajectory.hh"
    22 #include "ELYSE/TrappingVolume.hh"
     22//#include "ELYSE/TrappingVolume.hh"
    2323#include "ELYSE/TrackInformation.hh"
    2424
     
    4040  G4VPhysicalVolume* thePostPV = thePostPoint->GetPhysicalVolume();
    4141
     42 
     43  //JEC START debug Optical surface properties
     44//   G4StepPoint* pPreStepPoint  = theStep->GetPreStepPoint();
     45//   G4cout << "(JEC): UserSteppingAction PrePoint Volume:" <<  pPreStepPoint->GetPhysicalVolume()->GetName()
     46//       << " PostPoint Volume: " << thePostPV->GetName()
     47//       << G4endl;
     48//   G4LogicalSurface* Surface =
     49//     G4LogicalSkinSurface::GetSurface(pPreStepPoint->GetPhysicalVolume()->GetLogicalVolume());
     50//   G4OpticalSurface* OpticalSurface = 0;
     51//   if (Surface) OpticalSurface = (G4OpticalSurface*) Surface->GetSurfaceProperty();
     52//   if (OpticalSurface) {
     53//     G4cout << "(JEC) UserSteppingAction: Optical Surface Found" << G4endl;
     54//     OpticalSurface->DumpInfo();   
     55//     G4MaterialPropertiesTable* aMaterialPropertiesTable;
     56//     G4MaterialPropertyVector* Rindex;
     57//     aMaterialPropertiesTable = OpticalSurface->GetMaterialPropertiesTable();
     58   
     59//     if (aMaterialPropertiesTable) {
     60//      Rindex = aMaterialPropertiesTable->GetProperty("RINDEX");
     61//      if (Rindex) {
     62//        G4cout << "(JEC) Found RINDEX properties: " << G4endl;
     63//        Rindex->DumpVector();
     64//      } else {
     65//        G4cout << "(JEC) NO  RINDEX properties " << G4endl;
     66//      }
     67//     } else {
     68//       G4cout << "(JEC) NO  MATERIAL properties " << G4endl;
     69//     }
     70//   } else {
     71//     G4cout << "(JEC) NO OpticalSurface " << G4endl;
     72//   }
     73 
    4274  G4OpBoundaryProcessStatus boundaryStatus=Undefined;
    4375  static G4OpBoundaryProcess* boundary=NULL;
     
    74106   
    75107    //------------Kill photons entering expHall
     108
     109//     G4cout << "(JEC) UserSteppingAction: Post Volume " << thePostPV->GetName()
     110//         << G4endl;
     111
    76112    if(thePostPV->GetName()=="expHall") {
    77113      theTrack->SetTrackStatus(fStopAndKill);}
     
    94130//                                   Absorption, Detection, NotAtBoundary,
    95131//                                   SameMaterial, StepTooSmall, NoRINDEX}
    96       switch(boundaryStatus){
    97       case FresnelRefraction:
    98         G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break;
    99       case FresnelReflection:
    100         G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break;
    101       case TotalInternalReflection:
    102         G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break;
    103        case LambertianReflection:
    104         G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break;
    105       case LobeReflection:
    106         G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break;
    107       case SpikeReflection:
    108         G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break;
    109       case Absorption:
    110         G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break;
    111      
    112       case Detection: // Note, this assumes that the volume causing detection
    113                       // is the interface between Tyvek and Air because it is the only one with
    114                       // 100% efficiency
    115         {
    116           // Triger sensitive detector manually since photon is
    117           // absorbed but status was Detection
    118           G4SDManager* SDman = G4SDManager::GetSDMpointer();
    119           //see DetectorConstruction::Construct for the PATH of the Sensitive Volume
    120           TrappingVolume* trapVol = 0;
    121           if(SDman) trapVol = (TrappingVolume*)SDman->FindSensitiveDetector("/ELYSE/TrappingVolume");
     132//       switch(boundaryStatus){
     133//       case FresnelRefraction:
     134//              G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break;
     135//       case FresnelReflection:
     136//      G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break;
     137//       case TotalInternalReflection:
     138//      G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break;
     139//        case LambertianReflection:
     140//      G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break;
     141//       case LobeReflection:
     142//      G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break;
     143//       case SpikeReflection:
     144//      G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break;
     145//       case Absorption:
     146//      G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break;
     147//       case Detection:
     148//      G4cout << "(JEC) Status of PostPoint: Detection" << G4endl; break;
     149//       case NotAtBoundary:
     150//      G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break;
     151//       case SameMaterial:
     152//      G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break;
     153//       case StepTooSmall:
     154//      G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break;
     155//       case NoRINDEX:
     156//      G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break;
    122157
    123           if(trapVol) {
    124             trapVol->ProcessHits_constStep(theStep,0);
     158//       default:
     159//      break;
    125160
    126             //------------Save the hit into the track info
    127 
    128             TrackInformation* aInfo = (TrackInformation*)theTrack->GetUserInformation();
    129             G4cout << "(JEC) SteppingAction::opticalphoton detection = "
    130                    << " " << theTrack << " " << aInfo << G4endl;
    131             if(aInfo)aInfo->AddTrackStatusFlag(hitProduced);
    132 
    133           } else {
    134             G4cout << "(JEC) UserSteppingAction: FATAL: NO Sensitive Det. FOUND" << G4endl;
    135             exit(0);
    136           }
    137           break;
    138         }//case Detection
    139 
    140       case NotAtBoundary:
    141         G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break;
    142       case SameMaterial:
    143         G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break;
    144       case StepTooSmall:
    145         G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break;
    146       case NoRINDEX:
    147         G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break;
    148 
    149       default:
    150         break;
    151 
    152       }//eo switch on boundary values
     161//       }//eo switch on boundary values
    153162
    154163    }//test on GeomBoundary
  • ELYSE/HEAD/source/TrackingAction.cxx

    r286 r294  
    4848  //-----------optical photon: store trajectory objects
    4949
    50   G4cout << "(JEC) PreUserTrackingAction (" << particleName
    51          << ") and DrawOptical = " << drawOpticalPhoton
    52          << G4endl;
     50//   G4cout << "(JEC) PreUserTrackingAction (" << particleName
     51//       << ") and DrawOptical = " << drawOpticalPhoton
     52//       << G4endl;
    5353
    5454  if(!drawOpticalPhoton && (particleName == "opticalphoton") )return;
     
    5656  if(drawOpticalPhoton && (particleName == "opticalphoton") ){
    5757
    58     G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID()
    59            << G4endl;
     58//     G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID()
     59//         << G4endl;
    6060
    6161
     
    8484  G4double thresholdTobeSaved = 0.*keV; //JEC FIXME put in the messenger
    8585
    86   G4cout << "(JEC) PreUserTrackingAction (" << particleName
    87          << " ParentID " << aTrack->GetParentID();
    88   if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName();
    89   G4cout << G4endl;
     86//   G4cout << "(JEC) PreUserTrackingAction (" << particleName
     87//       << " ParentID " << aTrack->GetParentID();
     88//   if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName();
     89//   G4cout << G4endl;
    9090
    9191
Note: See TracChangeset for help on using the changeset viewer.