VeloUT integration
- Updated PrChecker to validate VeloUT tracks as well
- VeloUT algorithm integrated into cuda_hlt1 framework, running on x86
- VeloUT algorithm ported to CUDA, runs on GPU, gives same track reconstruction efficiency as on x86
Closes #21 (closed) Closes #4 (closed) Closes #7 (closed) Closes #2 (closed) Closes #3 (closed)
Merge request reports
Activity
added 1 commit
- 6c394a24 - removing input/minbias/TrackerDumper with ROOT MC information, no longer needed
- PrUTMagnetTool/MagneticFieldGrid.cpp 0 → 100644
1 // Include files 2 3 // local 4 #include "MagneticFieldGrid.h" 5 6 //----------------------------------------------------------------------------- 7 // Implementation file for class : MagneticFieldGrid changed this line in version 8 of the diff
- PrUTMagnetTool/deflection.txt 0 → 100644
1 1.2124 changed this line in version 8 of the diff
192 194 } 193 195 /// associate a range of LHCbIDs 194 196 template <typename IT> 195 MCAssocResult operator()(IT first, IT last) const noexcept 197 MCAssocResult operator()(IT first, IT last, std::size_t &n_matched_total) const noexcept 196 198 { 197 199 AssocPreResult assoc; 198 200 std::size_t total = 0; 199 201 // count how often each particle appears 202 // and how many hits of the reconstructed track are matched 203 // to the MCP 200 204 for (; last != first; ++first) { 201 //printf("working on lhcb id %u \n", uint32_t( *first ) ); As far as I can see, the VeloUT GPU implementation only needs the table of deflections. If this is the case, perhaps we this project needs only contain two tables (LHCb never runs at anything other than full magnetic field up or down). How these are provided could then be moved to the "How to integrate with Gaudi" part and the field reading code, PrUTMagnetTool and vectorclass headers could be removed.
@raaij I agree with you that the generation of the LUTs can be considered as part of the integration issues. For now, I would keep all files that are necessary to generate the LUTs though and put them a directory called "integration".
@freiss Could you please provide a readme explaining how to create the text file with the LUTs from the code we currently have in PrUTMagnetTool?
Unless I am missing something, we would also need the Bdl table to get a momentum estimation. Or is this currently not done for the GPU version @dovombru ?
I will write some documentation on how to obtain the LUTs. But I should add that at the moment the PrUTMagnetTool can only provide the Bdl table. The reason for this is that for the deflections we need the Runge-Kutta extrapolator and I did not have time to look into this.
As a quick solution, I modified the nominal LHCb software and dumped the LUT there. Apologies if this caused any confusion. I realize this is not the nicest way to have done this. If you want, I can have a look again at the extrapolator and try to implement it.
What I also should do is to implement the parametrization of the deflection tables I worked on some time ago.
Edited by Florian ReissAh ok, that was just a misunderstanding then. Yes, we do use the Bdl table when calculating the momentum on the GPU. So explaining how you obtain that is also helpful.
I would not put too much effort into getting the Runge-Kutta running in cuda_hlt1, especially if you continue working on the parameterization.
Maybe you can just mention in the readme that you got it from Gaudi, if possible how.
- Resolved by Florian Reiss
- Resolved by Florian Reiss
added 9 commits
-
e993b772...0f8f7175 - 7 commits from branch
master
- 893c42a7 - merge with master branch (after merging of dual module processing)
- d71af4b3 - add missing new CMakeLists.txt in checker/clustering directory
-
e993b772...0f8f7175 - 7 commits from branch