key4hep / key4hep-spack

A Spack recipe repository of Key4hep software.
10 stars 23 forks source link

problem with ALLEGRO_o1_v03 #614

Closed ybenham closed 2 months ago

ybenham commented 2 months ago

dear, I am working on cluster installed with AlmaLinux release 9.4 (Seafoam Ocelot), and gcc version 11.4. I am trying to run ddsim with the ALLEGRO model (ALLEGRO_o1_v03.xml) and I have an error when I sending the command

ddsim --outputFile test.slcio --compactFile lcgeo/FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/ALLEGRO_o1_v03.xml --steeringFile steer.py

(this is working with other detector geometry)

Building vertex barrel detector VTXOB...
Compact          INFO  ++ Converted subdetector:VTXOB of type VertexBarrel_detailed_o1_v01 [tracker]
Module: SiVTXDStave, sensor width: 4.220000, sensor length: 4.060000
Built vertex disks detector: 
Compact          INFO  ++ Converted subdetector:VTXD of type VertexDisks_detailed_o1_v01 [tracker]
VTXD             INFO  +++ Processing SurfaceInstaller for subdetector: 'VTXD'
DD4hep_GenericSurfaceInstallerPlugin: argument[1] = dimension = 2
DD4hep_GenericSurfaceInstallerPlugin: argument[2] = u_x = -1
DD4hep_GenericSurfaceInstallerPlugin: argument[3] = v_y = 1
DD4hep_GenericSurfaceInstallerPlugin: argument[4] = n_z = -1
DD4hep_GenericSurfaceInstallerPlugin: vectors: u( -1 , 0 , 0) v( 0 , 1 , 0) n( 0 , 0 , -1) o( 0 , 0 , 0) 
VTXIB            INFO  +++ Processing SurfaceInstaller for subdetector: 'VTXIB'
DD4hep_GenericSurfaceInstallerPlugin: argument[1] = dimension = 2
DD4hep_GenericSurfaceInstallerPlugin: argument[2] = u_x = 1
DD4hep_GenericSurfaceInstallerPlugin: argument[3] = v_y = 1
DD4hep_GenericSurfaceInstallerPlugin: argument[4] = n_z = 1
DD4hep_GenericSurfaceInstallerPlugin: vectors: u( 1 , 0 , 0) v( 0 , 1 , 0) n( 0 , 0 , 1) o( 0 , 0 , 0) 
VTXOB            INFO  +++ Processing SurfaceInstaller for subdetector: 'VTXOB'
DD4hep_GenericSurfaceInstallerPlugin: argument[1] = dimension = 2
DD4hep_GenericSurfaceInstallerPlugin: argument[2] = u_x = 1
DD4hep_GenericSurfaceInstallerPlugin: argument[3] = v_y = 1
DD4hep_GenericSurfaceInstallerPlugin: argument[4] = n_z = 1
DD4hep_GenericSurfaceInstallerPlugin: vectors: u( 1 , 0 , 0) v( 0 , 1 , 0) n( 0 , 0 , 1) o( 0 , 0 , 0) 
Compact          ERROR FAILED     subdetector:DCH_v2 of type DriftChamber_o1_v02_T [sensitive]
PluginService    ERROR Factory requested: DriftChamber_o1_v02_T (N10__cxxabiv120__function_type_infoE) :bad any_cast
PluginService    ERROR Stub is invalid!
Compact          ERROR Failed to execute subdetector creation plugin.       No factory with name Create(DriftChamber_o1_v02_T) for type DriftChamber_o1_v02_T found.
        Please check library load path and/or plugin factory name.
Compact          ERROR ++ FAILED    to convert subdetector: DCH_v2: Compact: Failed to execute subdetector creation plugin.         No factory with name Create(DriftChamber_o1_v02_T) for type DriftChamber_o1_v02_T found.
        Please check library load path and/or plugin factory name.

[Has] someone faced this problem[?]

thanks

andresailer commented 2 months ago

Dear @ybenham

Could you also tell us which stack you are using? Which setup script are you sourcing?

ybenham commented 2 months ago

Hi Andre, I don't know what you mean by stack. I am sourcing : source /cvmfs/sw.hsf.org/key4hep/setup.sh

jmcarcell commented 2 months ago

That is what Andre was asking, the drift chamber was introduced in https://github.com/key4hep/k4geo/pull/330 which happened later than the last release in /cvmfs/sw.hsf.org/key4hep/setup.sh, which means that the drift chamber constructor that your geometry is looking for isn't built there. If you do

source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh

I think it should work

andresailer commented 2 months ago

Yes, what @jmcarcell said.

There is no ALLEGRO_o1_v03 in the latest release stack

source /cvmfs/sw.hsf.org/key4hep/setup.sh
ls $LCGEO/FCCee/ALLEGRO/compact/ALLEGRO_o1_v03
ls: cannot access '/cvmfs/sw.hsf.org/key4hep/releases/2024-03-10/x86_64-almalinux9-gcc11.3.1-opt/k4geo/0.20-hapqru/share/k4geo/FCCee/ALLEGRO/compact/ALLEGRO_o1_v03': No such file or directory

That means you are taking the geometry from your own package (whatever local lcgeo you have). You would need to compile that lcgeo package and set it up along with the stack. Or use the nightly stack for the moment.

With

source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh
ddsim --outputFile test.slcio --compactFile $LCGEO/FCCee/ALLEGRO/compact/ALLEGRO_o1_v03/ALLEGRO_o1_v03.xml -G -N 2

It works for me on lxplus.

ybenham commented 2 months ago

thanks a lot for the fast help. I will try tomorrow