Skip to content
Snippets Groups Projects

Phys/DaVinciTrackScaler:Momentum scaling: take run number from ODIN

Merged Vanya Belyaev requested to merge vanya-momentum-scaling-v10 into master

Momentum scaling: take run number from ODIN

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
  • For reference: this MR was created due to the discussion in the thread "Usage of TrackScaleState for Turbo stream" on lhcb-davinci and lhcb-trigger-software.

    In that thread, @ibelyaev said that the /Event/DAQ node is killed when DaVinci().RootInTES is set, as is usually done when running over µDSTs. Does that mean this patch won't work for µDSTs? If so, we could try one location first and fall back to another on failure?

    I had a very brief look to try to find where the change was from, from the ODIN location to Rec/Header, but couldn't find it.

  • Author Developer

    patch works for TURBO micro-DST as well as for regular micro-DST.

  • Can I ask how it can work for µDSTS, if what you say is true that the /Event/DAQ location is normally killed when RootInTES and InputType are set correctly?

    If LHCb::ODINLocation::Default is /Event/DAQ/ODIN, and /Event/DAQ is killed, I'd have thought the request for the location would fail.

  • Author Developer

    The actual flow is a bit more complicated: for regular uDST it kills /Event/DAQ location (that just points to unaccessible parent DST) , and then puts a soft link from '/Event/ROOT-IN-TES/DAQ' to '/Event/DAQ'. As a result, one have a valid objects in valid '/Event/DAQ' directory

  • Author Developer

    oh, i am wrong.... the RootInTES is propagated to the algorithm and it picks up ODIN from '/Event/ROOT-IN-TES/DAQ/ODIN'

  • Author Developer

    anyhow it works both for uDST and for TURBO - just see the exmaples MomScale.py and Turbo.py in /afs/cern.ch/user/i/ibelyaev/BenderDev_HEAD directory

  • I don't doubt your tests work, and I will try them soon, but I don't understand why given your explanation. (Sorry for being slow.)

    Turbo files only have /Event/DAQ/ODIN, no /Event/Turbo/DAQ/ODIN (there's no /Event/Turbo/DAQ at all). So if /Event/DAQ is always killed by the µDST node killer, and then /Event/Turbo/DAQ is linked to to /Event/DAQ, /Event/DAQ/ODIN won't exist, because /Event/DAQ/ODIN doesn't exist.

    I'm testing this with a 2016 Turbo file:

    /lhcb/LHCb/Collision16/CHARMTWOBODY.MDST/00053760/0000/00053760_00000706_1.charmtwobody.mdst
  • (also your /afs/cern.ch/user/i/ibelyaev/BenderDev_HEAD directory doesn't seem to exist)

  • Author Developer

    /afs/cern.ch/user/i/ibelyaev/cmtuser/BenderDev_HEAD 

    

  • Author Developer

    Alex, probaly I was a bit unclear. With my fix for RootInTES='/Event/Turbo', '/Event/DAQ' is removed from the list of nodes to be killed.

  • Author Developer

    @apearce Alex, for your file, the configuration is even a little bit simpler (probably it is a difference between Turbo/2015 and Turbo /2016)

    scaler.Input = 'Tracks'

    see /afs/cern.ch/user/i/ibelyaev/cmtuser/BenderDev_HEAD /Turbo2.py

  • Author Developer

    @apearce btw, whereI can find a nomenclature for TURBO-streams ? (it need to be automatized in Bender)

  • Ah OK I see; with /Event/DAQ only killed for non-Turbo files this fix makes a lot more sense. Thanks for your patience 😄

    In which case, this MR looks good to me 👍


    The streams are defined in TurboStreamProd.streams.

    Edited by Alex Pearce
  • Eduardo Rodrigues Status changed to merged

    Status changed to merged

  • Mentioned in commit d09b23c6

Please register or sign in to reply
Loading