Message: Optical photon transport and cpu time Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Optical photon transport and cpu time 

Forum: Processes Involving Optical Photons
Date: 04 Feb, 2009
From: Frederic Yermia <Frederic Yermia>

Hello, I'm using GEANT 4 code (geant4.9.1.p03) in order to compare simulation results with experimental results about the properties of plastic scintillators to concept a Muon Veto (Nucifer Experiment). For this purpose, I am simulating a plastic scintillator bar wrapped in a reflector (aluminum housing) with an air gap between the housing and the scintillator (with a photomultiplier (PMT)). I define the volume as a box of scintillator inside of a slightly larger box of air, which is again inside of a slightly larger box of aluminum (housing being mother volume of Air gap being mother volume of scintillator). My problem is the optical photon tracking:

  G4Track Information:   Particle = opticalphoton,   Track ID = 44935,   Parent ID = 1
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0      470   -0.241  0.00191  3.25e-06        0        0         0 scintillator initStep
 Photon at Boundary!
 Old Momentum Direction: (-0.211097264988636,0.0293104027760181,0.9770255088806152)
 Old Polarization:       (-0.7813968935793381,-0.6055738578061701,-0.150662528341699)
 New Momentum Direction: (0.2177287339933198,0.0237705352024773,0.9757198163662835)
 New Polarization:       (-0.7645606413393796,0.6255455946833636,0.155369671065345)
 *** LobeReflection ***
    1      430     5.25      183  3.25e-06        0      187       187      AirGap Transportation
    2      430     5.25      183  3.25e-06        0        0       187 scintillator Transportation
 Photon at Boundary!
 ...

The CPU time is too huge for one muon going across the scintillator! Therefore I'm suspecting I'm made a mistake. Thank you very much if someone can help me. I'm desesperate, I tested a lot of means describing the optical properties...

Here a part of my code:

//---------------------Scintillator properties-------------------------------
G4double PhotonEnergy[NUMENTRIES12] ={ 3.44*eV, 3.26*eV, 3.1*eV, 3.02*eV, 2.95*eV,2.92*eV, 2.82*eV, 2.76*eV, 2.7*eV, 2.58*eV,2.38*eV, 2.08*eV };
G4double RINDEX_Bc408[NUMENTRIES12] ={ 1.58, 1.58, 1.58, 1.58, 1.58,1.58, 1.58, 1.58, 1.58, 1.58,1.58, 1.58 };
G4double ABSORPTION_Bc408[NUMENTRIES12] ={ 210*cm, 210*cm, 210*cm, 210*cm, 210*cm,210*cm, 210*cm, 210*cm, 210*cm, 210*cm,210*cm, 210*cm }; 
G4double SCINTILLATION_Bc408[NUMENTRIES12] ={ 0.04, 0.07, 0.20, 0.49, 0.84,1.00, 0.83, 0.55, 0.40, 0.17,0.03, 0 };
 G4MaterialPropertiesTable *Bc408_mt = new G4MaterialPropertiesTable();
 Bc408_mt->AddProperty("RINDEX", PhotonEnergy, RINDEX_Bc408, NUMENTRIES12);
 Bc408_mt->AddProperty("ABSLENGTH", PhotonEnergy, ABSORPTION_Bc408, NUMENTRIES12);Bc408_mt->AddProperty("FASTCOMPONENT", PhotonEnergy, SCINTILLATION_Bc408,NUMENTRIES12);
 Bc408_mt->AddConstProperty("SCINTILLATIONYIELD",7000./MeV);
Bc408_mt->AddConstProperty("RESOLUTIONSCALE",1.0);
 Bc408_mt->AddConstProperty("FASTTIMECONSTANT", 1.*ns);
//Bc408_mt->AddConstProperty("SLOWTIMECONSTANT",1.*ns);
Bc408_mt->AddConstProperty("YIELDRATIO",1.);

Scint->SetMaterialPropertiesTable(Bc408_mt);

  //---------------------AIR properties-------------------------------------
G4double Vacuum_Energy[NENTRY]={2.0*eV,7.14*eV};
  G4double Vacuum_RIND[NENTRY]={1.,1.};  
  G4MaterialPropertiesTable *Vacuum_mt = new G4MaterialPropertiesTable();
  Vacuum_mt->AddProperty("RINDEX", Vacuum_Energy, Vacuum_RIND,NENTRY);

  Air->SetMaterialPropertiesTable(Vacuum_mt);//Give air the same rindex

//------------------------Housing properties---------------------------------
G4double metal_PP[NENTRY]   = { 2.*eV, 3.5*eV};
  G4double metal_RIND[NENTRY] = { 1.51, 1.61 };     // ref index
  G4double metal_ABSL[NENTRY] = { 1.e-20*m,  1.e-20*m };// atten length
  G4MaterialPropertiesTable *metal_mt = new G4MaterialPropertiesTable();
  metal_mt->AddProperty("RINDEX", cathmetal_PP, cathmetal_RIND,NENTRY);
  metal_mt->AddProperty("ABSLENGTH", cathmetal_PP, cathmetal_ABSL,NENTRY);
  metalAl->SetMaterialPropertiesTable(cathmetal_mt);

//------------------------SCINT+AIR+WRAP------------------------------------------------

   G4double scint_x = 2*cm;
  G4double scint_y = 30.*cm;
  G4double scint_z = 1.*m;

 ////////////////////////////////////////////////////
  //HOUSING/WRAP////////////////////////////////////////
  //////////////////////////////////////////////
   G4double d_mtl=1*mm+0.0635*cm; //(1 mm air + alu foil)
 //G4double d_mtl=2*cm+4*cm; //(2 cm air + alu foil)
   G4double housing_x=scint_x+d_mtl;
    G4double housing_y=scint_y+d_mtl;
    G4double housing_z=scint_z+d_mtl;

G4Box*  housing_box = new G4Box("housing_box",housing_x,housing_y,
			    housing_z);

G4LogicalVolume* housing_log = new G4LogicalVolume(housing_box,
				      metalAl,
				      "housing_log",0,0,0);

 G4double housingPos_x = 45*cm;//sticked to poly 39.1
   G4double housingPos_y = 0.*cm;
   G4double housingPos_z = 0.*cm;

G4PVPlacement* housing_phys = new G4PVPlacement(0,G4ThreeVector(housingPos_x,housingPos_y,housingPos_z),housing_log,"housing",experimentalHall_log ,false,0,true);

  ////////////////////////////////
  ///Air Gap VOLUME////////////////////////////////
  //////////////////////////////////////

//*************************** housing and scintillator
G4double d_AirGap=1*mm;
//G4double d_AirGap=2*cm;
   G4double AirGap_x=scint_x+d_AirGap;
    G4double AirGap_y=scint_y+d_AirGap;
    G4double AirGap_z=scint_z+d_AirGap;

G4Box*  AirGap_box = new G4Box("AirGap_box",AirGap_x,AirGap_y,
			    AirGap_z);

 G4LogicalVolume* AirGap_log = new G4LogicalVolume(AirGap_box,
				      Air,
				      "AirGap_log",0,0,0);

   G4double AirGapPos_x = 0*cm;
   G4double AirGapPos_y = 0.*cm;
   G4double AirGapPos_z = 0.*cm;

   G4PVPlacement*   AirGap_phys = new G4PVPlacement(0,G4ThreeVector(AirGapPos_x,AirGapPos_y,AirGapPos_z),AirGap_log,"AirGap",housing_log ,false,0,true); 

////////////////////
//SCINTILLATOR VOLUME//////
////////////////////
   G4Box* scint_box = new G4Box("scint_box",scint_x,scint_y,scint_z);
   scint_log = new G4LogicalVolume(scint_box,Scint,"scint_log",0,0,0);

   G4double scintPos_x = 0*cm;
   G4double scintPos_y = 0.*cm;
   G4double scintPos_z = 0.*cm;

 scint_phys = new G4PVPlacement(0,G4ThreeVector(scintPos_x,scintPos_y,scintPos_z),scint_log,"scintillator", AirGap_log,false,0,true);  

 //*****************************************************
 //********************SURFACEs*****************************
 //****************************************************

  ////////////////////////////////
  ///Air Gap SURFACE////////////////////////////////
  //--------  Scintillator Air Surface: Unified model
  ////////////////////////////////////////////

 G4OpticalSurface* OpAirSurface = new G4OpticalSurface("Sci-AirSurface");

 G4double sigma_alpha = 0.035;

  OpAirSurface -> SetType(dielectric_dielectric);
  OpAirSurface -> SetModel(unified);
  OpAirSurface -> SetFinish(ground);
  OpAirSurface -> SetSigmaAlpha(sigma_alpha);

  G4double ScintAirSpecularlobe[NUMENTRIES12] =  {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0};
  G4double ScintAirSpecularspike[NUMENTRIES12] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
  G4double ScintAirBackscatter[NUMENTRIES12] =   {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
  G4double ScintAirRindex[NUMENTRIES12] =  {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0};

G4MaterialPropertiesTable* AirGapSurfProp = new G4MaterialPropertiesTable();

  AirGapSurfProp -> AddProperty("RINDEX",PhotonEnergy,ScintAirRindex,NUMENTRIES12);
  AirGapSurfProp -> AddProperty("SPECULARLOBECONSTANT",PhotonEnergy,ScintAirSpecularlobe,NUMENTRIES12);
  AirGapSurfProp -> AddProperty("SPECULARSPIKECONSTANT",PhotonEnergy,ScintAirSpecularspike,NUMENTRIES12);
  AirGapSurfProp -> AddProperty("BACKSCATTERCONSTANT",PhotonEnergy,ScintAirBackscatter,NUMENTRIES12);

  OpAirSurface -> SetMaterialPropertiesTable(AirGapSurfProp);
   G4LogicalBorderSurface* AirSurface = 	new G4LogicalBorderSurface("Sci-AirSurface", scint_phys, AirGap_phys, OpAirSurface);

 ////////////////////////////////////////////////////
  //AIR-HOUSING SURFACE////////////////////////////////////////
  //////////////////////////////////////////////

  G4OpticalSurface* OpAirHousingSurface =
    new G4OpticalSurface("Air-HousingSurface");
  OpAirHousingSurface -> SetType(dielectric_metal);
  // OpAirHousingSurface -> SetFinish(polished);
  OpAirHousingSurface->SetFinish(ground);
  OpAirHousingSurface -> SetModel(glisur);
  OpAirHousingSurface ->SetPolish(0.);
 G4double reflect[NUMENTRIES12] = {0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98};

G4MaterialPropertiesTable* scintHsngPT = new G4MaterialPropertiesTable(); 
 scintHsngPT->AddProperty("REFLECTIVITY", PhotonEnergy, reflect, NUMENTRIES12);

  OpAirHousingSurface -> SetMaterialPropertiesTable(scintHsngPT);

   G4LogicalBorderSurface* SciWrapSurface = new G4LogicalBorderSurface("Air-AluSurface", AirGap_phys,housing_phys,OpAirHousingSurface);

Best regards, Frederic Yermia.

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Feedback: Re: Optical photon transport and cpu time   (Gumplinger Peter - 04 Feb, 2009)
 Add Message Add Message
to: "Optical photon transport and cpu time"

 Subscribe Subscribe

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