Skip to content

E/p cut for e/pi separation #1962

@tonnysoyyo

Description

@tonnysoyyo

Is your feature request related to a problem? Please describe.
Currently, EICrecon lacks a native C++ implementation of the simple E/p for electron-pion separation in the BIC. The idea is to perform event-by-event E/p preselection within the reconstruction chain.

Describe the solution you'd like
Introduce a new CalorimeterEoverPCut factory and algorithm in C++ that:

  1. Consumes EcalBarrelScFiClusters and their MC associations.
  2. Computes E/p per cluster, using the highest‐weight MC association to get the true momentum.
  3. Applies a configurable threshold ecut (and optional max_layer depth) read from JANA parameters.
  4. Outputs an edm4hep::ParticleIDCollection marking passing clusters as electrons with likelihood = E/p.
  5. Is registered in BEMC.cc under a version guard, so it runs in every barrel‐reco pass.

This embeds the preselection directly into the plugin, allowing downstream factories (e.g. ONNX‐based PID) to consume only prefiltered clusters.

Describe alternatives you've considered
Skipping preselection entirely and let a future ML model handle it all.

Additional context
The new factory follows the pattern of CalorimeterParticleIDPreML / PostML in EICrecon

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions