I have started to investigate what would be the optimal approach for me to store a relatively complex detector model. My impression is that the GDML approach is probably the most suitable one, but I am not sure. It seems to me that other people have trouble getting started as well:
I think that a guide comparing all available approaches would be useful, and I was thinking that I could document my learning process for others. Unless this has been done already, of course, in which case I would love to read it But if not, it would be great if someone experienced could guide me a bit through this.
So, I identified 5 approaches:
- Hard-coding the model in C++ source code.
- Storing the model in GDML format.
- Storing the model in ASCII format.
- Storing a triangle mesh in one of the file formats supported by Chris Poole’s https://github.com/christopherpoole/CADMesh.
- Implementing UI commands that create the model parametrically.
- Using another file format (in practice, reimplementing points 2/3 with a reduced set of features).
Did I miss anything?
Of this, GDML seems to be the winning choice for me. But there are many things I’m not sure. Is the ASCII format deprecated-ish in favour of GDML? What makes it preferrable otherwise? Etc.
The second part I am wondering about is about tools. I could not find a comparison of tools to visualize and manipulate those files, and resources seem to be scattered. For example, I have bumped into https://github.com/KeithSloan/GDML, https://www.space-suite.com/edge/, http://cad-gdml.in2p3.fr and https://github.com/EL-Bakkali-Jaafar/VisualGDML. I guess there may be more?
Is there anything else I should be aware of?