-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data V7, main branch (2024.05.03.) #561
Conversation
Hmmm this is the first two lines of hit file of single 1 GeV muon ODD simulation (
As you can see |
Not sure why you say that that particle ID would not be included. 😕 I see:
So that possibly slightly weird-looking hit should be coming from the 1 muon of the event. 🤔 |
Sorry i just quickly browed the file without checking it thoroughly |
Is it absolutely for certain that that particular property is measured in GeV? 🤔 Though even as MeV it would be way too much for how much energy a muon should lose in a silicon layer. 🤔 (And while I can imagine the Acts simulation using MeV, it certainly doesn't use keV...) Still, with all that, I think that is just a red herring. If you look at for instance:
In that toy simulation, the particle IDs start from 0, and count up. While in this latest G4 simulation we rather have:
So again, I think the logic in |
Yeah I remember that I simplified the particle id scheme in the detray simulation. But how does it have something to do with event_map2 logic which is based on unordered |
Hey, I did have a bug first where the eta values had been taken for pt as well in the production script - but I thought I had fixed that. |
Check the first line of particle file.. which might be the primiary muon
It has (0.185933262,0.871767998,0.952647626) for momentum which is 1 -> that is, GeV is the right scale |
Check the code! The particles are first read into an
Then, while going through the hits, the code tries to find the particle belonging to the hit, through its vector index. But for that to work, the indices would always have to be the same as the particle IDs. Which is only the case for the Detray simulation files. |
The particle and hit files may still save stuff in different units. Since different parts of the simulation code take care of creating those files. But as I wrote, I don't think this is the thing that we should be focusing on right now... |
OK. Definitely using std::vector was a stupid move. I will fix that |
For completeness, I've put the ttbar simulations here: https://cernbox.cern.ch/s/aLswvi2pNcBX9wr It was quite a challenge even to upload it as a single file... |
One of you should approve it eventually. That would make it a bit easier to fix the performance measurement code on top of this. 🤔 |
Switched to version 7 of the traccc data file.
It has 2 major updates:
I did the latter with the code, and instructions from: acts-project/acts#3169
As it is explained in that ticket, the current
main
branch of acts can run simulation on the ODD geometry out of the box. Which I did in the following way:main
branch;git submodule init && git submodule update
)(The
odd-digi-geometric-config.json
file used by the simulation is the same included in this PR'sv7
file as well.)Unfortunately the ODD simulations turned out to be humongous. So I only included the muon simulations into the
v7
data file. Since the ttbar simulations, even with just 10 events each, look like this:So yeah, these are not going into the file that our CI setup uses... I'm currently compressing them, to put them on CERNBox.
But with the simulations being so humongous, we'll probably need to find some better way of storing these things. I think we'll have to consider putting them on EOS in such a way that inside of CERN we could use them without having to download them locally. I'm open to proposals on this front. 🤔
Finally: While the current state of our reconstruction code swallows these files seemingly fine, performance checking doesn't work on them. 😦 As I explained to @beomki-yeo already, the logic in our code does some funky stuff. Leading to the following crash:
Let's discuss this in either this PR, or on some other forum, because I don't even understand how that code is supposed to work exactly. 😕 Since the "particle IDs" used in the simulation are very large
uint64_t
numbers. They are not indices starting from0
. 😕 (So we'll need to use something like a map in that code instead of a vector. 🤔)