Problem with simulation opening the Setup.gdml file

System : Linux
REST version : v2.2.13

I am trying to run a test simulation of a decay of an isotope from a point, and I get this error related to the geometry:

-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : InvalidRead
      issued by : G4GDMLRead::Read()
Unable to open document: Setup.gdml
*** Fatal Exception *** core dump ***
 **** Track information is not available at this moment
 **** Step information is not available at this moment

-------- EEEE -------- G4Exception-END --------- EEEE -------

*** G4Exception: Aborting execution ***
Aborted

From the printed metadata above, I can see that the file is being read from the correct file:

 ||  Geometry File : /home/eruizchl/rest_g4/geometry/Dummy/Setup.gdml   ||
 ||                           Geometry Path :                           ||

… although I don’t know why the “geometry path” is empty.

I have tried with the IAXO-D0 and BabyIAXO geometries that are in git, and also created a new and very simple one. I can visualize them perfectly with the REST_ViewGeometry macro.

I copy here the config file I am using. I copied and adapted it from the examples that came with REST.

config file
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<restG4>

  <globals>
    <variable name="EXPERIMENT" value="Dummy" overwrite="false" />
    <variable name="REST_DATAPATH" value="/home/eruizchl/rest_g4data" overwrite="true" />
    <variable name="REST_G4PATH" value="/home/eruizchl/rest_g4" overwrite="true" />

    <variable name="EXP_DATAPATH" value="${REST_DATAPATH}/${EXPERIMENT}" overwrite="true" />
    <variable name="EXP_GEODIR" value="argon2iso" overwrite="true" />   <!-- options: "argon2iso","xenon" -->
    <variable name="EXP_GEOPATH" value="${REST_G4PATH}/geometry/${EXPERIMENT}" overwrite="true" />
    <variable name="EXP_GAS" value="Argon-Isobutane 2Pct 10-10E3V/cm" overwrite="true" />  <!-- options: "Argon-Isobutane 2Pct 10-10E3V/cm","Xenon-Isobutane 2Pct 10-10E3V/cm" from gases.rml -->

    <variable name="REST_RUN" value="0" overwrite="true" />
    <variable name="REST_NEVENTS" value="100" overwrite="true" />
    <variable name="DATA_DIR" value="isotopes" overwrite="true" />
    <variable name="REST_STEP_IN_MM" value="1" overwrite="false" />
    <variable name="REST_X" value="0.0" overwrite="true" />
    <variable name="REST_Y" value="0.0" overwrite="true" />
    <variable name="REST_Z" value="0.0" overwrite="true" />
    <variable name="REST_ISOTOPE" value="Ar39" overwrite="true" />
    <variable name="REST_FULLCHAIN" value="ON" overwrite="true" />
    <variable name="REST_MAXSTEPSIZE" value="1" overwrite="true" /> <!-- mm -->
    <variable name="REST_EVENTDELAY" value="100" overwrite="true" /> <!-- us -->
    <variable name="REST_EMIN" value="0" overwrite="true" /> <!-- MeV -->
    <variable name="REST_EMAX" value="5000" overwrite="true" /> <!-- MeV -->

    <parameter name="mainDataPath" value="${EXP_DATAPATH}/${EXP_GEODIR}/${DATA_DIR}" />
    <parameter name="verboseLevel" value="warning" /> <!-- options: silent, warning, info, debug -->
  </globals>

  <TRestRun name="${EXPERIMENT}" title="Simulations">
    <parameter name="experiment" value="${EXPERIMENT}"/>
    <parameter name="runType" value="simulation"/>
    <parameter name="runNumber" value="${REST_RUN}"/>
    <parameter name="runTag" value=""/>
    <parameter name="runDescription" value="We launch ${REST_ISOTOPE} decays from position: ${REST_X}, ${REST_Y}, ${REST_Z}"/>
    <parameter name="user" value="${USER}"/>
    <parameter name="verboseLevel" value="3"/>
    <parameter name="overwrite" value="on" />
    <parameter name="outputFile" value="RUN${REST_RUN}_${EXP_GEODIR}_${REST_ISOTOPE}_Point_X${REST_X}_Y${REST_Y}_Z${REST_Z}.root" />
  </TRestRun>

  <TRestG4Metadata name="restG4 Simulation run" title="Simulation of ${REST_ISOTOPE} decays from position ${REST_X}, ${REST_Y}, ${REST_Z}">
    <parameter name="Nevents" value="${REST_NEVENTS}"/>
    <parameter name="gdml_file" value="${EXP_GEOPATH}/Setup.gdml"/>
    <parameter name="maxTargetStepSize" value="${REST_MAXSTEPSIZE}" units="um" />
    <parameter name="subEventTimeDelay" value="${REST_EVENTDELAY}" units="us" />

    <generator type="point" position="(${REST_X},${REST_Y},${REST_Z})" units="mm" >
      <source particle="${REST_ISOTOPE}" fullChain="${REST_FULLCHAIN}">
        <angularDist type="isotropic" />
        <energyDist type="mono" energy="0" units="keV" />
      </source>
    </generator>

    <storage sensitiveVolume="gas">
      <parameter name="energyRange" value="(${REST_EMIN},${REST_EMAX})" units="MeV" />
      <activeVolume name="gas" chance="1" />
    </storage>

  </TRestG4Metadata>

 <TRestPhysicsLists name="default" title="First physics list implementation." >

    <parameter name="cutForGamma" value="1" units="um" />
    <parameter name="cutForElectron" value="1" units="um" />
    <parameter name="cutForPositron" value="1" units="mm" />
    <parameter name="cutForMuon" value="1" units="mm" />
    <parameter name="cutForNeutron" value="1" units="mm" />
    <parameter name="minEnergyRangeProductionCuts" value="1" units="keV" />
    <parameter name="maxEnergyRangeProductionCuts" value="1" units="GeV" />

    <!-- EM Physics lists -->
    <physicsList name="G4EmLivermorePhysics"> </physicsList>
    <!-- <physicsList name="G4EmPenelopePhysics"> </physicsList> -->
    <!-- <physicsList name="G4EmStandardPhysics_option3"> </physicsList> -->

    <!-- Decay physics lists -->
    <physicsList name="G4DecayPhysics"> </physicsList>
    <physicsList name="G4RadioactiveDecayPhysics"> </physicsList>
    <physicsList name="G4RadioactiveDecay">
      <option name="ICM" value="true" />
      <option name="ARM" value="true" />
    </physicsList>

    <!-- Hadron physics lists -->
    <physicsList name="G4HadronElasticPhysicsHP"> </physicsList>
    <physicsList name="G4IonBinaryCascadePhysics"> </physicsList>
    <physicsList name="G4HadronPhysicsQGSP_BIC_HP"> </physicsList>
    <!--<physicsList name="G4NeutronTrackingCut"> </physicsList>-->
    <physicsList name="G4EmExtraPhysics"> </physicsList>

  </TRestPhysicsLists>

</restG4>

Thank you!!

Hi,
I think you are missing one parameter in your TRestG4Metadata structure regarding this path. Try adding:
<parameter name="geometryPath" value="${EXP_GEOPATH}/${EXP_GEODIR}" />
inside TRestG4Metadata.

Cheers,
Cristian.

If gdml_file points to the relative path where Setup.gdml is found, then that’s enough. There is no need for geometryPath parameter.

There is probably a problem with the GDML definition.

It is working for you the example found at packages/restG4/examples/01.NLDBD-PandaX-III/?

restG4 NLDBD.rml?

So, it is your simulation working if you use the Baby-IAXO geometry?

I just saw that her path is relative, but maybe it’s because that particular path is not correct. I have more or less the same directory structure (I actually copied it from previous studies done by her) and instead of

<parameter name="gdml_file" value="${EXP_GEOPATH}/Setup.gdml"/>

in my case it’s

<parameter name="gdml_file" value="${EXP_GEOPATH}/${EXP_GEODIR}/Setup.gdml"/>

Yes it did, it worked fine.

I tried both IAXO-D0 and BabyIAXO, and neither of them worked. I though at least the BabyIAXO one would be updated for the last version, but I’ll compare it with the example one to see what is wrong.

Thank you very much!

@lobis Perhaps there is a quick example to test baby-IAXO geometry?