Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • Project Juggler Project Juggler
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 33
    • Issues 33
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 26
    • Merge requests 26
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • EIC
  • Project JugglerProject Juggler
  • Issues
  • #74
Closed
Open
Issue created Nov 14, 2021 by Aaron Angerami@angeramiDeveloper

Calorimeter noise fix

The implementation of the calorimeter noise in the digitization is incorrect. Namely the code here: https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugDigi/src/components/CalorimeterHitDigi.cpp#L168

double    eResRel = std::sqrt(std::pow(m_normDist() * eRes[0] / std::sqrt(ahit.energyDeposit()), 2) +
                                      std::pow(m_normDist() * eRes[1], 2) +
                                      std::pow(m_normDist() * eRes[2] / (ahit.energyDeposit()), 2));

Should be either

double    eResRel =m_normDist() * std::sqrt(std::pow(eRes[0] / std::sqrt(ahit.energyDeposit()), 2) +
                                      std::pow(eRes[1], 2) +
                                      std::pow(eRes[2] / (ahit.energyDeposit()), 2));

or

double    eResRel = m_normDist() * (eRes[0] / std::sqrt(ahit.energyDeposit()) +
                  m_normDist() * eRes[1] + 
                  m_normDist() * eRes[2] / (ahit.energyDeposit());
``
That is, the three contributions to the noise are typically assumed to arise from independent Gaussian fluctuations. So they should either contribute separately (second form) or can be combined by adding in quadrature (first form).
Assignee
Assign to
Time tracking