Message: Optical Photons Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Optical Photons 

Forum: Processes Involving Optical Photons
Date: 03 May, 2010
From: Ibrahim <Ibrahim>

Hi,

I am using geant 4 for X-Ray imaging purpose. I finished writing my program which can image any object. Now I am simulating the effect of optical photons on the image quality. I have the following geometry:

Gd2O2S:Tb scintillator which is characterised by:

- Dimension 22cm x 22cm x 0.015cm

- Refraction index n = 2.3

- etc.

The scintillator is inside the world volume which is filled with Air.

So, we have tow medium (two dielectrics): world volume (Air , refractive index n=1) and the scintillator (Gd2O2S, refractive index n = 2.3): The question is how do I have to define boundary between the scintillator and the world volume?

I did it in the following way basing on the example N06 in the novice folder, but I am still having some questions:

MyDetectorConstruction.cc

// ------------ Generate & Add Material Properties Table ------------

  const G4int nEntries = 8;

//these are optical photons energies

  G4double PhotonEnergy[nEntries] =
            { 2.0*eV, 2.138*eV, 2.297*eV, 2.690*eV,
              2.690*eV, 2.820*eV, 2.953*eV, 3.264*eV,
            };
//
// refractive index of Gd2O2S
//	      
  G4double RefractiveIndex1[nEntries] =
            { 2.3,  2.3,  2.3,  2.3,
              2.3,  2.3,  2.3,  2.3,
           };
// mean free path of optical photons in Gd2O2S ( these mean free paths are //arbitrary  because I do not know the exact mean free paths of these optical //photons in Gd2O2S 

  G4double Absorption1[nEntries] =
           {0.58*m,  0.62*m,  0.65*m,  0.67*m,
            0.67*m, 0.70*m, 0.72*m, 0.75*m,};

  G4double ScintilFast[nEntries] =
            { 0.0725, 0.145, 0.436,0.145, 
              0.0181, 0.0362, 0.0725, 0.0725, 
            };

  G4MaterialPropertiesTable* myMPT1 = new G4MaterialPropertiesTable();
  myMPT1->AddProperty("RINDEX",       PhotonEnergy, RefractiveIndex1,nEntries);
  myMPT1->AddProperty("ABSLENGTH",    PhotonEnergy, Absorption1,     nEntries);
  myMPT1->AddProperty("FASTCOMPONENT",PhotonEnergy, ScintilFast,     nEntries);

  myMPT1->AddConstProperty("SCINTILLATIONYIELD",60./keV);
  myMPT1->AddConstProperty("RESOLUTIONSCALE",1.0);
  myMPT1->AddConstProperty("FASTTIMECONSTANT", 1000000*ns);
  myMPT1->AddConstProperty("YIELDRATIO",1.0);

  Gd2O2S->SetMaterialPropertiesTable(myMPT1);

//
// Air
//
  G4double RefractiveIndex2[nEntries] =
            { 1.00, 1.00, 1.00, 1.00, 
              1.00, 1.00, 1.00, 1.00,  
            };

  G4MaterialPropertiesTable* myMPT2 = new G4MaterialPropertiesTable();
  myMPT2->AddProperty("RINDEX", PhotonEnergy, RefractiveIndex2, nEntries);

  Air->SetMaterialPropertiesTable(myMPT2);

 //	------------- Surfaces --------------

// Gd2O2S

  G4OpticalSurface* OpGd2O2SSurface = new G4OpticalSurface("Gd2O2SSurface");
  OpGd2O2SSurface->SetType(dielectric_dielectric);
  OpGd2O2SSurface->SetFinish(ground);
  OpGd2O2SSurface->SetModel(unified);

  G4LogicalBorderSurface* Gd2O2SSurface = 
                                 new G4LogicalBorderSurface("Gd2O2SSurface",
                                 PhyBox1,PhyWorld,OpGd2O2SSurface);

  if(Gd2O2SSurface->GetVolume1() == PhyBox1) G4cout << "Equal" << G4endl;
  if(Gd2O2SSurface->GetVolume2() == PhyWorld) G4cout << "Equal" << G4endl;

//Air

  G4OpticalSurface* OpAirSurface = new G4OpticalSurface("AirSurface");
  OpAirSurface->SetType(dielectric_dielectric);
  OpAirSurface->SetFinish(polished);
  OpAirSurface->SetModel(glisur);

  G4LogicalSkinSurface* AirSurface = 
	  new G4LogicalSkinSurface("AirSurface",World, OpAirSurface);

  if(AirSurface->GetLogicalVolume() == World) G4cout << "Equal" << G4endl;
  G4OpticalSurface* opticalSurface = dynamic_cast <G4OpticalSurface*>
        (AirSurface->GetSurface(World)->GetSurfaceProperty());

  if (opticalSurface) opticalSurface->DumpInfo();

// Generate & Add Material Properties Table attached to the optical surfaces
//
  const G4int num = 2;
  G4double Ephoton[num] = {2.038*eV, 4.144*eV}; 

  //Optical_Gd2O2S_Surface 

  G4double RefractiveIndex[num] = {2.3, 2.3};
  G4double SpecularLobe[num]    = {0.3, 0.3};
  G4double SpecularSpike[num]   = {0.2, 0.2};
  G4double Backscatter[num]     = {0.2, 0.2};

  G4MaterialPropertiesTable* myST1 = new G4MaterialPropertiesTable();

  myST1->AddProperty("RINDEX",                Ephoton, RefractiveIndex, num);
  myST1->AddProperty("SPECULARLOBECONSTANT",  Ephoton, SpecularLobe,    num);
  myST1->AddProperty("SPECULARSPIKECONSTANT", Ephoton, SpecularSpike,   num);
  myST1->AddProperty("BACKSCATTERCONSTANT",   Ephoton, Backscatter,     num);

  OpGd2O2SSurface->SetMaterialPropertiesTable(myST1);

  //Optical_Air_Surface

  G4double Reflectivity[num] = {0.3, 0.5};
  G4double Efficiency[num]   = {0.8, 1.0};

  G4MaterialPropertiesTable *myST2 = new G4MaterialPropertiesTable();

  myST2->AddProperty("REFLECTIVITY", Ephoton, Reflectivity, num);
  myST2->AddProperty("EFFICIENCY",   Ephoton, Efficiency,   num);

  OpAirSurface->SetMaterialPropertiesTable(myST2);

questions:

is this program correct?

actually, I do not know the meaning of some lines:

  const G4int num = 2;
  G4double Ephoton[num] = {2.038*eV, 4.144*eV};

what does it mean : 2.038*eV and 4.144*eV ? in my case where can I find these valuse are from the example exampleN06!

and what do the following lines mean?

  G4double RefractiveIndex[num] = {2.3, 2.3};
  G4double SpecularLobe[num]    = {0.3, 0.3};
  G4double SpecularSpike[num]   = {0.2, 0.2};
  G4double Backscatter[num]     = {0.2, 0.2};

and what is the meaninig of 2.3, 2.3.Why we have twice 2.3, 0.2 and 0.3? do I have to use to use all of them ( specularLobe, SpecularSpike ...) or only one of them ....? and what is the meaning of :

  G4double Reflectivity[num] = {0.3, 0.5};
  G4double Efficiency[num]   = {0.8, 1.0}; 

they are clear: effectivity and effeciciency but why tow different values 0.3 , 0.5 and 0.8, 1.0 and which values do I have to use in my case other values or the same values ggiven in the exampleN 06?

 Add Message Add Message
to: "Optical Photons"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews