Trying to implement liquid scintillator and PMT as a total beginner

Hello all,

I’m currently trying to build a simulation where I have a muon beam going down towards a liquid scintillator, and I’d like to detect the resulting scintillation (and Cherenkov) light using a photomultiplier tube (based off a Hamamatsu R7081 PMT module). Unfortunately as I am a total beginner to Geant4 and C++, I am struggling to actually implement all the necessary properties to get the simulation up and running, and so I was hoping for some guidance on these issues.

At present, I have succesfully managed to generate a muon beam pointing down towards a box (my main volume), with it penetrating through a cylinder. The cylinder I have assigned the scintillation material (that I have created), and have tried to get Cherenkov light from it, to no avail. Currently, the code for the scintillator looks like this:

G4Material Scint = new G4Material(“Scint”, 1.000g/cm3, 3);
Scint->AddMaterial(H2O, 89.0perCent);
Scint->AddMaterial(LAB, 10.0
perCent);
Scint->AddMaterial(PPO, 1.0*perCent);

G4double energy[2] = {3.5*GeV, 4.*GeV};
G4double rindexScint[2] = {1.333, 1.333};

G4MaterialPropertiesTable *mptScint = new G4MaterialPropertiesTable();
mptScint->AddProperty(“RINDEX”, energy, rindexScint, 2);

Is there anything from here that would indicate why no Cherenkov light is visible? I haven’t gotten any error messages for this part.

Apart from that, I am trying to figure out how to get the scintillator to actually produce scintillation light, and how to assign it all the expected properties like scintillation yield. I am not sure how to go about that part, and have been confused by the examples I’ve seen so far. How many more properties should I assign the scintillator? Do I need to change any files apart from my construction.cc?

In terms of simulating the PMT module, I have simplified it by constructing the geometry for a hemisphere, and I plan to use that as the detector. But I’m not 100% sure how to go about that, would I have to give it different properties for detecting both scintillation and Cherenkov light? I have detector.cc and detector.hh files ready for the PMT, but don’t know what I need to add to them.

1 Like

Hi Erc,

There are a number of optical and scintillation properties of the scintillator that the user has to provide. These include refractive index, absorption length, scintillation emission curves vs scintillation photon energy, scintillation yield(s) (number scintillation photons per MeV for a given exciting particle), rise time constants, decay time constants.

There are too many to go into detail in a post, but the OpNovice and OpNovice2 examples from the distribution should show you where to begin. You need to find the appropriate values for these optical properties for your chosen scintillator and other optical materials in the literature (e.g., papers or spec sheets for the scintillator) or through experiment.

Also, these two lines need to be changed.
G4double energy[2] = {3.5*GeV, 4.*GeV};
G4double rindexScint[2] = {1.333, 1.333};

The refractive index should refer to that for optical photons emitted by the scintillator. Thus the energy range should be in ~ eV not GeV.

The documentation on optical photons in the manual Book For Application Developers — Book For Application Developers 11.0 documentation is not bad, so you should check it out.

1 Like

Many thanks, John! I’ll take a look at the suggested examples and the manual.

A slight issue I’ve run into when trying to make the OpNovice example -


It appears GDML is not available, how do I go about enabling support?

You have to rebuild the Geant4 distribution with GDML enabled, by adding the option -DGEANT4_USE_GDML=ON in the cmake command. So for example, your cmake command would be something like this (add/delete other options as you need them):

cmake -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_GDML=ON -DGEANT4_INSTALL_EXAMPLES=ON -DGEANT4_INSTALL_DATA=ON -DCMAKE_INSTALL_PREFIX=/pathtogeant4/geant4-v11.0.0-install /pathtogeant4/geant4-v11.0.0

Once Geant4 is recompiled, then recompile your OpNovice code.

If you are using someone else’s Geant4 installation, you’ll have to ask them to do this for you or else install your own locally.

1 Like