GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » General » ConstructOpGeometry function
ConstructOpGeometry function [message #11495] Mon, 14 February 2011 17:45 Go to next message
Maria Patsyuk is currently offline  Maria Patsyuk
Messages: 58
Registered: April 2010
continuous participant
From: *

does maybe someone happen to know what exactly the following function from FairModule.h does and what is the right way to use it:

/**method called from the MC application to set optical geometry properties*/
virtual void ConstructOpGeometry();

I'd like to use it to define a polished surface around the bar to prevent Cherenkov photons to leave the bar (parameter REFLECTIVITY = 1) and to define a photodetector surface with realistic efficiency as a function of photon wavelength (parameter EFFICIENCY).

How I tried to do so is the following (volumes separated by these surfaces are made of materials with Cherenkov properties (Fused Silica and air), which are in media_pnd.geo file). I just added the following function to my detector class:

void PndDrc::ConstructOpGeometry()
Int_t npoints = 2;

Double_t ephoton[npoints];
ephoton[0] = 1.0e-09;
ephoton[1] = 10.0e-09;
Double_t reflectivity[npoints];
reflectivity[0] = 1.;
reflectivity[1] = 1.;
Double_t efficiency[npoints];
efficiency[0] = 0.5;
efficiency[1] = 0.5;

gMC->DefineOpSurface("BarSurface",kGlisur, kDielectric_dielectric, kPolished, 0.1);
gMC->SetBorderSurface("BarSurface", "DrcBarSensor", 1, "DrcAirBox", 0, "BarSurface");

gMC->DefineOpSurface("EVSurface", kGlisur, kDielectric_dielectric, kPolished, 0.1);
gMC->SetBorderSurface("EVSurface", "DrcEV",1, "BarrelDIRC",0,"EVSurface");

gMC->SetMaterialProperty("BarSurface", "REFLECTIVITY", npoints, ephoton, reflectivity);
gMC->SetMaterialProperty("BarSurface", "EFFICIENCY", npoints, ephoton, efficiency);

gMC->SetMaterialProperty("EVSurface", "REFLECTIVITY", npoints, ephoton, reflectivity);
gMC->SetMaterialProperty("EVSurface", "EFFICIENCY", npoints, ephoton, efficiency);

But I haven't seen any changes in the output of the simulation with and without this function! It seems not to work this way. So I'm wondering how to use this function properly.

Some particular questions I've got are:
1. where are the default names of the parameters (REFLECTIVITY, EFFICIENCY...) defined? Can I see the list of available parameters with their meanings?
2. what is the difference between UNIFIED and GLISUR model for polished surfaces? (I found some explanations about it, but didn't quite get the idea)
3. did I understood right, that a Cherenkov photon could be detected only on the dielectric-metal border, where the parameter EFFICIENCY as a function of a vawelength is set?

I would appreciate any help!
Re: ConstructOpGeometry function [message #11625 is a reply to message #11495] Thu, 07 April 2011 15:50 Go to previous message
Maria Patsyuk is currently offline  Maria Patsyuk
Messages: 58
Registered: April 2010
continuous participant
From: *
In case somebody would be interested.

To define a POLISHED surface in VirtualMonteCarlo it is enough to do the following (for descriptions of functions see TVirtualMC class reference):

1. Define a surface:
gMC->DefineOpSurface("EVSurface", kGlisur, kDielectric_metal, kPolished, 0.0);
for a polished surface it does not matter which model to use (Glisur or Unified)
I used "dielectric - metal" surface to be able only to reflect or absorb the optical photons (no Frensel refraction and reflection)
parameter SigmaAlpha = 0.0 in my case and you can set any value for Polished surface here, the SigmaAlpha value matters only for Ground (not Polished) surfaces within Unified model

2. Set defined surface between chosen volumes:
gMC->SetBorderSurface("EVAirSurface", "DrcEV", 1, "BarrelDIRC", 0, "EVSurface");
here instead of "SetBorderSurface" one can use "SetSkinSurface". The difference: in skin surface the volume is fully covered with defined surface; in the border surface user can choose the order of volumes and allow different properties depending from which direction the photon has arrived. So in my case I define the surface for photons going from DrcEV to BarrelDIRC.

3. Set properties of the surface:
Int_t npoints = 2;
Double_t ephoton[npoints];
Double_t reflectivity[npoints];
ephoton[0] = 1.0e-09;
ephoton[1] = 10.0e-09;
reflectivity[0] = 1.;
reflectovoty[1] = 1.;
gMC->SetMaterialProperty("EVSurface", "REFLECTIVITY", npoints, ephoton, reflectivity);

You can also define other properties if you have to detect photons (EFFICIENCY) or a Ground (not Polished) surface.
Names of the properties should be the same as in Geant4.

And now the questions I still have:

1. Is it possible to use Glisur model with Ground surface in VMC? The thing is that the roughness of the surface in this case is set by the value of polish (SetPolish function in Geant4), but I did not find any functions in VMC that set the value of polish.

2. Using Unified model with different SigmaAlpha values I get exactly the same results (SigmaAlpa = 0.000001 or SigmaAlpha = 10.).
As an illustration I attach 2 snapshots of eventDisplay where photons bounce inside of a bar covered with the following BorderSurfaces:

first picture: Polished dielectric-metal surface, reflectivity = 1 for photons with e = [1,10] eV

second picture: Ground dielectric-metal surface, Unified model, SigmaAlpha = 0.0000001 (and the same picture for other values of SigmaAlpha), reflectivity = 1 for photons with e = [1,10] eV
Previous Topic: FairLog
Next Topic: TGeoMixture SetIndex function
Goto Forum:

Current Time: Sat Jul 20 11:57:36 CEST 2024

Total time taken to generate the page: 0.00862 seconds