Problems with materials file: it appears to be downloaded to a temporary file

REST version : v2.2.20
REST commit : 750e0514

When launching a simulation I got this problem

GDML: initializating variables
GDML: replacing expressions in GDML
/tmp/materials.xml.tmp: Permiso denegado
– Error : download failed! (https://sultan.unizar.es/materials/materials.xml)
GDML ERROR! No matching reference file for entity: “materials”

materials.xml seems to be temporary downloaded at a shared location /tmp . It would be better that the temporary file would be downloaded at REST user space

I believe the problem is fixed now. Just changed the default output path at GdmlPreprocessor to REST_USER_PATH/gdml, which is at the same time .rest/gdml.

If you compile with the latest commit, do you get still the permissions problem at /tmp/materials.xml.tmp?

I hope it does not complain now that gdml directory does not exist. It run smoothly on my system.

Sorry @jgalan, not solved. I think that the pipeline for the last commit has failed

Hi, I solved the problem, just doing locally the modification. However, I got another error which may be also related to the storage of temporal files image since the GdmlPreprocessor has changed in the last versions.
It seems that G4GDMLRead:Read() cannot read the file. (Where is this method?)

I cannot reproduce the problem. Make sure that you get an exact clean copy of the Git repository.

It looks as it is trying to access a remote connection, the GDML schema server which it is at CERN, it could be a temporal server problem? The file is accessible right now.

http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd

What is the output of git status?

In order to find the error we need to execute exactly the same code. If you have local changes it will be hard to find out if the problem is coming from here or there. So, if needed push the changes to the repository.

It is one of the examples of restG4 working for you?

I.e.

cd REST_v2/packages/restG4/examples/01.NLDBD/
restG4 NLDBD.rml

Plz, make sure there are no local changes respect to the remote repository, and if you have any change you need to preserve push it to development or trexdm-simulations.

Hi, the change in GdmlPreprocessor.h was made locally because the pipeline for the commit e3573242 failed and with this small change in storage paths, I solved my first problem.
However I am still struggling with the second one. The examples you proposed in the code run smoothly and I think that I have found the main difference between setup.gdml files.
In the setup.gdml files of the examples almost all the definitions are “constants”

<constant name="gasRadius" value="750" /> <constant name="gasLength" value="2000" />
while I have “variables” everywhere
<variable name="vessel_length" value="530.0"/> <variable name="vessel_radius" value="192.5"/> '
When should we use “constants” and when “variables” ?

It seems with constant you make sure the value will not change by any future instance, or by a loop execution … they are described on the GDML manual.

I dont see why this difference would be an issue in our case. In the setup.gdml we define usually both, I believe with variables you are allowed to define mathematical operations. Such as:

<variable name="density" value="pressure * densityAtOneBar" />

just to give an example

However, that commit is not the cause of the pipeline fail, it comes from an earlier commit b5ecdd6d, and it is unrelated to Geant4/restG4.