Skip to content
Snippets Groups Projects

VeloUT integration

Merged Dorothea Vom Bruch requested to merge dovombru_VeloUTIntegration into master
  • 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)

Edited by Dorothea Vom Bruch

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
1 // Include files
2
3 // local
4 #include "MagneticFieldGrid.h"
5
6 //-----------------------------------------------------------------------------
7 // Implementation file for class : MagneticFieldGrid
  • 1 1.2124
  • Roel Aaij
    Roel Aaij @raaij started a thread on 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 ) );
  • Thanks for fixing the include paths everywhere!

  • 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.

  • added 2 commits

    • 4238aeba - more adjustments of max_numhits_per_event in UT for the 10k events
    • de778614 - VeloUT running on GPU and x86

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • @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?

  • added 3 commits

    • 2dafdc4e - update max_num_tracks
    • 957f580e - Rename directory checker/lib to checker/tracking -> more intuitive
    • e993b772 - move PrVeloUTMagnettool into integration directory

    Compare with previous version

  • 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 Reiss
  • Ah 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.

  • Florian Reiss
  • 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

    Compare with previous version

  • Florian Reiss added 1 commit

    added 1 commit

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading