MC模拟简介
蒙特卡罗模拟,因摩纳哥著名的赌场而得名。它能够帮助人们从数学上表述物理、化学、工程、经济学以及环境动力学中一些非常复杂的相互作用。
-
蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。
-
基本原理及思想
当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。
MC资源
1. GENIE Neutrino Monte Carlo,用于中微子模拟
GENIE is a suite of products (Generator, Comparisons, Tuning) for the experimental neutrino community.
It is supported and developed by an international collaboration of scientists. The well-known Generator implements a modern framework for neutrino Monte Carlos and includes state-of-the-art physics modules. The GENIE physics model is universal and comprehensive: It handles all neutrinos and targets, and all processes relevant from MeV to PeV energy scales. The Generator includes several tools (flux drivers, detector geometry navigators, specialized event generation apps, event reweighting engines) to simulate complex experimental setups in full detail and to support generator-related analysis tasks. The GENIE Generator is used by several neutrino experiments and its predictions serve as standard reference points for the neutrino community. The Comparisons product includes extensive curated archives of neutrino, charged-lepton and hadron-nucleus scattering data, as well as software to produce a comprehensive set of data/MC comparisons. Finally, the Tuning product implements a generator tuning framework and includes applications implementing the GENIE tuning procedure.
网址为点这里
2. RAT (is an Analysis Tool), Public Edition
RAT is a simulation and analysis package built with GEANT4, ROOT, and C++, originally developed by S. Seibert for the Braidwood Collaboration. Versions of RAT are now being used and developed by several particle physics experiments.
RAT combines simulation and analysis into a single framework, which allows analysis code to trivially access the same detector geometry and physics parameters used in the detailed simulation.
RAT follows the "AMARA" principle: As Microphysical as Reasonably Achievable. Each and every photon is tracked through an arbitrarily detailed detector geometry, using standard GEANT4 or custom physics processes. PMTs are fully modeled, and detected photons may be propagated to a simulation of front-end electronics and DAQ.
This generic version is intended as a starting point for collaborations looking for an easy-to-learn, extensible detector simulation and analysis package that works out of the box. Once acquainted with RAT, it is easy to customize the geometry elements, physics details, data structure, analysis tools, etc., to suit your experiment's needs.
3. gemc(GEant4 Monte-Carlo)
3.1 Why gemc?
geant4 is a c++ framework to simulate the passage of particles through matter.
GEMC aims at making available all the powerful geant4 features w/o any prior knowledge of c++ or geant4. It provides:
- application independent geometry description
- easy interface to build / run experiments
- cad/gdml imports
3.2 Overview
gemc makes easy things trivial and hard things possible.
Users can build or import from cad complex setups with minimal programming knowledge. See for example how to build a TOF with few lines of code or how to import TOF from cad.
Experiments can be loaded using a combination of these factories:
- MYSQL
- TEXT
- GDML
- CAD (STL, PLY, OBJ formats)
- C++ Plugin
3.3 Simulations are application independent
Once the user defined setup is loaded, gemc translates it in geant4. This includes:
- geometry
- materials
- mirrors
- physics list
- digitization
- electromagnetic fields
All particles are transported through matters and produce radiation, hits, secondaries. gemc then collects the geant4 results and produce the output specified by the user.
3.4 Open source
gemc is free and open source.
Please visit the contributing to gemc page if you’re interested in the code development.
If you have any bug/code optimization to report, new ideas, features request, please open a code issue / feature request in github.