Simulation: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:
{{Expert}}
{{Expert}}
==Introduction==
==Introduction==
The simulation of particles in the detector are used for many purposes.  Standard model physics is simulated to estimate the backgrounds we can expect. Conversion electrons are simulated to study the efficiency for detecting new physics processes.  Other simulations might tell us if a detector component will receive a survivable radiation dose.  Still others might be used to optimize detector design or reconstruction algorithms.
Simulations start with a generator step.  This step creates the initial particles to simulate, for example, protons approaching the primary target or cosmic rays approaching the top of the detector.  Once the initial particles are set in motion, the details of the particle interactions with material are simulated by the [http://geant4.web.cern.ch/geant4/ geant] package, which has been used widely in HEP for years and is the industry standard.  Geant steps particles forward in time and at each steps allows for particles to scatter, range out, decay or interact with the material and produce more particles to trace.  The processes are drawn from physics models using [[RandomBasic||random numbers]] to to determine quantities which are only known statistically, such as scattering angles, which of several processes occurs, and decay times.  The careful use random numbers seeds insures that the events are statistically independent. In this way, the code builds up each event consisting of many particles traced through the material in as much detail as is needed by the user's analysis. 
==Practical techniques==
Detailed simulation can be computationally expensive.  The collaboration may need to run grid jobs for months to create enough statistics - it all depends on the needs of the project.  Since there may be many demands on a simulation, several techniques have been developed to create and use simulation efficiently, not doing more computing than needed.
* '''[[Staging]]'''
** simulation may be stopped and started again, for various practical reasons
** Examples: stop simulation just outside the detectors, write it out
* '''[[Mixing]]''
**simulate different parts of an event, for example a conversion electron and everything else, simulated up to a certain point, and mix these simulations together to one event with an electron and all the standard model noise. 
**Example: simulate all standard model physics in a event and a conversion electron separately, then mix them
* '''[[TimeSim|time simulation]]'''
**The decay of particles may be turned off, or delayed
** Example: stop simulation when muons stop in the target - decay/interact them in later jobs
* '''Resampling''' 
**Take the output of a stage and simulate it many times with different random seeds. 
**Example, a fairly small set of stopped muons can be used over and over again.  This works as long as the variations in the events are significant.  In the example of stopped muons, each resampling decays a muon with the electron launched into a different direction.  This leads to very different result for hits in the detector even though the same stopped muon was used.
*Filtering
**Only write events which pass some criteria
**Examples: require high-momentum e-, or some activity in tracker before saving a cosmic ray event
*Dropping
**Do not write out all data products
**Example: drop MC digi truth information, drop the digis after tracks are made
*Multiple streams
**Write some events to one output file, some to another
**Example: events w/stopped muons to one file, rest to another
*Variants
**Run one stage with variations in the parameters
**Example: repeating background measurements with different shielding
* Compression
**Compress particle lists, removing unneeded entries
**Example: Compress large EM showers into smaller summary products; remove particles that do not leave any trace in a detector
==Geometry==
==Geometry==
===virtual detectors===
===virtual detectors===
===persistence===
===persistence===
==Geant==
==Geant==
===Stepping===
===Physics lists===
===Stacking===
===Stacking===
===Stacking===
==Products==
==Products==
Line 19: Line 53:
===Filtering===
===Filtering===
==Output Modules==
==Output Modules==
* '''[[Mixing]]''' simulate different parts of an event, for example a conversion electron and everything else, simulated up to a certain point, and mix these simulations together to one event with an electron and all the standard model noise.  This mixing must occur before the digis are simulated.
* '''Resampling'''  Take the output of a stage and simulate it many times with different random seeds.  For example, a fairly small set of stopped muons can be used over and over again.  This works as long as the variations in the events are significant.  In the example of stopped muons, each resampling decays a muon with the electron launched into a different direction.  This leads to very different result for hits in the detector even though the same stopped muon was used.
*Filtering
**Only write events which pass some criteria
**Example: require high-momentum e-, or activity in tracker
*Dropping
**Do not write out all the parts of all data products
**Example: skip neutrinos, or low-energy, or early in microbunch
*Multiple streams
**Write some events to one output file, some to another
**Example: events w/stopped muons to one file, rest to another
*Variants
**Run one stage with variations in the parameters
**Example: background measurements with different shielding
* Compression

Revision as of 20:54, 24 April 2017

Construction.jpeg This page is a draft, please help complete it!

Expert.jpeg This page page needs expert review!

Introduction

The simulation of particles in the detector are used for many purposes. Standard model physics is simulated to estimate the backgrounds we can expect. Conversion electrons are simulated to study the efficiency for detecting new physics processes. Other simulations might tell us if a detector component will receive a survivable radiation dose. Still others might be used to optimize detector design or reconstruction algorithms.

Simulations start with a generator step. This step creates the initial particles to simulate, for example, protons approaching the primary target or cosmic rays approaching the top of the detector. Once the initial particles are set in motion, the details of the particle interactions with material are simulated by the geant package, which has been used widely in HEP for years and is the industry standard. Geant steps particles forward in time and at each steps allows for particles to scatter, range out, decay or interact with the material and produce more particles to trace. The processes are drawn from physics models using |random numbers to to determine quantities which are only known statistically, such as scattering angles, which of several processes occurs, and decay times. The careful use random numbers seeds insures that the events are statistically independent. In this way, the code builds up each event consisting of many particles traced through the material in as much detail as is needed by the user's analysis.

Practical techniques

Detailed simulation can be computationally expensive. The collaboration may need to run grid jobs for months to create enough statistics - it all depends on the needs of the project. Since there may be many demands on a simulation, several techniques have been developed to create and use simulation efficiently, not doing more computing than needed.

  • Staging
    • simulation may be stopped and started again, for various practical reasons
    • Examples: stop simulation just outside the detectors, write it out
  • 'Mixing
    • simulate different parts of an event, for example a conversion electron and everything else, simulated up to a certain point, and mix these simulations together to one event with an electron and all the standard model noise.
    • Example: simulate all standard model physics in a event and a conversion electron separately, then mix them
  • time simulation
    • The decay of particles may be turned off, or delayed
    • Example: stop simulation when muons stop in the target - decay/interact them in later jobs
  • Resampling
    • Take the output of a stage and simulate it many times with different random seeds.
    • Example, a fairly small set of stopped muons can be used over and over again. This works as long as the variations in the events are significant. In the example of stopped muons, each resampling decays a muon with the electron launched into a different direction. This leads to very different result for hits in the detector even though the same stopped muon was used.
  • Filtering
    • Only write events which pass some criteria
    • Examples: require high-momentum e-, or some activity in tracker before saving a cosmic ray event
  • Dropping
    • Do not write out all data products
    • Example: drop MC digi truth information, drop the digis after tracks are made
  • Multiple streams
    • Write some events to one output file, some to another
    • Example: events w/stopped muons to one file, rest to another
  • Variants
    • Run one stage with variations in the parameters
    • Example: repeating background measurements with different shielding
  • Compression
    • Compress particle lists, removing unneeded entries
    • Example: Compress large EM showers into smaller summary products; remove particles that do not leave any trace in a detector

Geometry

virtual detectors

persistence

Geant

Physics lists

Stacking

Stacking

Products

GenParticle

SimParticle

StepPointMC

PointTrajectory

StatusG4

Mu2eG4

Cuts

Collections

Filtering

Output Modules