Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

MATHUSLA Mu-Simulation

Codacy Badge

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

ActionOptions for ./install
Build Only(none)
Build and Auto Run--run
Clean CMake Build--cmake --clean
More Options--help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

ActionShort OptionsLong Options
Event Count-e <count>--events=<count>
Particle Generator-g <generator>--gen=<generator>
Detector-d <detector>--det=<detector>
Custom Script-s <file>--script=<file>
Data Output Directory-o <dir>--out=<dir>
Number of Threads-j <count>--threads=<count>
Visualization-v--vis
Quiet Mode-q--quiet
Help-h--help

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac
/gen/select basic
/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are two general purpose generators built in, basic and range. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

DetectorStatusDetails
PrototypeCOMPLETEDTest stand for the MATHUSLA project
BoxBUILDINGLarge Detector as seen in MATHUSLA Original Schematic
FlatBUILDINGCheaper Alternative to Box
MuonMapperCOMPLETEDMeasures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Topics

Resources

Stars

7 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages