Skip to content
Snippets Groups Projects

Allow the usage of "direct" extrapolation for Fast Electron like offline/HLT

Allow to use direct extrapolation for Fast Electron like offline/HLT.

Can be enabled by setting useCaloInfoInExtrap to true

Gaudi::Property<bool> m_useCaloInfoInExtrap{
        this, "useCaloInfoInExtrap", false,
        "use knowledge of the cluster in extrapolation"};

Perhaps some expanations are in order.

In offline/HLT (they are the same code ) over the last couple of years we moved to a "direct" extrapolation to the known sampling (known since we target a specific cluster not something "arbitrary" so we have a "constrain").

More specifically the "caloExtension" method call it A (that is used in the Fast Electron Re Algo) does :

  1. An extrapolation all the way to the exit of the calo (so quite a bit of distance we do not need, EMB3 and full hadronic ...)
  2. While doing "navigation" as does not target a specific surface, but need to find where it goes.
  3. Doing muon material effect (in principle the electron has most probably showered somewhere soon after entry so we do not track a "single particle")

Although none of the above are "wrong"...

The problem we have is more like "please extrapolate directly to a surface somewhere in the middle of the second sampling given this cluster".

  • So no need to go all the way out and then use just one intersection.
  • No need to do navigation to figure where we go
  • No need to do multiple scattering in the full calo volume.

Since a couple of years we can do just this (we could also do it 6-8 years ago but lets say the ability was lost at some point between ...) So call that caloExtension method B make a surface and target it "directly"...

  • I can have very well have nuked this implementation ... (i.e will not run will nuke the ouput beyond recognition)
  • Even if not since we match in a window I kind of doubt we will have binary equility so some counts will change somewhere.
  • One naively would prb expect something like +/-1 in the relevant "steps" (like some edge effect or extrapolations getting lost for low pt tracks in the older way)

Anyhow @damazio @eegidiop this is what I meant this can be done much faster and like offline/HLT.

Ping also @safarzad and @sutt (as asking me what we do to match calo is one of his "usual" ;) )

I do not have the full "machinery" for this part of out code. By faster here I have seen more 2x-3x in offline/HLT. And offline/HLT use this caloExtension method so ...

Edited by Christos Anastopoulos

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
  • Christos Anastopoulos marked this merge request as draft

    marked this merge request as draft

  • This merge request affects 1 package:

    • Trigger/TrigAlgorithms/TrigEgammaRec

    This merge request affects 4 files:

    • Trigger/TrigAlgorithms/TrigEgammaRec/CMakeLists.txt
    • Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaFastElectronConfig.py
    • Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaFastElectronReAlgo.cxx
    • Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaFastElectronReAlgo.h
  • Christos Anastopoulos changed the description

    changed the description

  • :x: CI Result FAILURE (hash df5bc3be)

    Athena
    externals :white_check_mark:
    cmake :white_check_mark:
    make :white_check_mark:
    tests :o:

    Full details available on this CI monitor view. Check the JIRA CI status board for known problems
    :white_check_mark: Athena: number of compilation errors 0, warnings 0
    :pencil: For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 67400]

  • Christos Anastopoulos changed the description

    changed the description

  • Christos Anastopoulos changed the description

    changed the description

  • This looks very interesting, and in fact seems to increase slightly the counts which may presumabluy increase the efficiency. To test this properly, we would need this in the release, but in case it changes the performance in undesirable ways would there be any way to control using this behaviour or the original behaviour with a flag ? Or would the changes be too extensive ?

    Cheers Mark

  • nope is not too extensive as basically is calling m_tool->method( without cluster info) vs m_tool->method(with cluster info) .

    So can add back the old . You want a flag I guess I can name it "useCaloInfoInExtrap" .

    I use the EMCaloExtension config that has a bit different Extrapolator config than the muon one (not sure why that was picked...) but this might not be so relevant for this call or I can modify .

    As a historical note @damazio had complained many years ago for the then "new" method being slow. Formally what I do here is what was happening also in the past, stopped happening, and now is done again in offline/HLT (common) so is a "new old " method. I just did not realize that this possible cpu improvement can not be picked automatically in fast electron Rec as is not "common" code.

    Edited by Christos Anastopoulos
  • btw [!48585 (merged)]

    image

    is what I mean much faster, egamma Rec Builder is the offline / HLT where we extrapolate tracks to clusters to do the "pre-electrons". I guess you can see why I expect 2-3x faster is possible

    Edited by Christos Anastopoulos
  • added 1 commit

    • c06b38b3 - Add the next extrapolation strategy as optional, default false

    Compare with previous version

  • Jenkins please retry a build

  • This merge request affects 1 package:

    • Trigger/TrigAlgorithms/TrigEgammaRec

    This merge request affects 4 files:

    • Trigger/TrigAlgorithms/TrigEgammaRec/CMakeLists.txt
    • Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaFastElectronConfig.py
    • Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaFastElectronReAlgo.cxx
    • Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaFastElectronReAlgo.h
  • Excallent, thanks Christos if we can have the new code disabled by default, then we should consider adding this to the release already, and then request a reprocessing and then switch the default once the checks have been completed. I think this might be a very useful change.

    Cheers Mark

  • I need to see the CI as I use the EMCaloExtensionTool rather the "default" (which is designed for muons I think although I hope we are not picking landau e loss ... ).

    If something still changes (not very likely if I recall the diff) I might know where it comes (Extrapolator configs are not "simple"). In which case I will need to do something a bit "specific" in the cfg.

    Assuming I did not mis-copy the old code .... of course ... so lets wait the CI

    Edited by Christos Anastopoulos
  • :white_check_mark: CI Result SUCCESS (hash c06b38b3)

    Athena
    externals :white_check_mark:
    cmake :white_check_mark:
    make :white_check_mark:
    tests :white_check_mark:

    Full details available on this CI monitor view. Check the JIRA CI status board for known problems
    :white_check_mark: Athena: number of compilation errors 0, warnings 0
    :pencil: For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 67412]

  • Christos Anastopoulos marked this merge request as ready

    marked this merge request as ready

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