Gate学习(4) 指令学习1
一、control目录下指令
ls /control #查看control下指令
输出结果如下图
1. **macroPath**
- 命令:`/control/macroPath /path/to/macros:/usr/local/gate/macros`
- 说明:这个命令用于设置Gate在搜索宏文件时的路径列表,多个路径之间用冒号分隔。这允许用户在不同的目录中存放宏文件,并通过一个命令访问它们。
2. **execute**
- 命令:`/control/execute myMacro.mac`
- 说明:此命令用于执行一个名为`myMacro.mac`的宏文件,该文件包含一系列预定义的Gate命令,可以一次性执行这些命令,而不必逐一输入。
3. **loop**
- 命令:`/control/loop 5 myMacro.mac`
- 说明:`loop`命令用于重复执行一个宏文件多次。在这个例子中,`myMacro.mac`宏文件将被执行5次,这在需要批量处理或重复任务时非常有用。
4. **foreach**
- 命令:`/control/foreach [1,2,3] myMacro.mac`
- 说明:`foreach`命令用于对一个列表中的每个元素执行一个宏文件。在这个例子中,`myMacro.mac`将分别使用参数1、2、3执行,这允许用户对不同的参数值进行批量操作。
5. **suppressAbortion**
- 命令:`/control/suppressAbortion`
- 说明:此命令用于抑制程序因异常而终止。在调试或测试时,这可以防止程序在遇到错误时立即退出,允许用户查看错误信息或进行进一步的调试。
6. **verbose**
- 命令:`/control/verbose`
- 说明:`verbose`命令用于增加命令的详细输出。当此命令被激活时,所有后续的命令执行都会在屏幕上显示,这有助于用户跟踪程序的执行过程和状态。
7. **useDoublePrecision**
- 命令:`/control/useDoublePrecision`
- 说明:此命令用于设置在打印参数值时使用双精度格式。这对于需要高精度数值输出的科学计算和数据分析非常有用。
8. **saveHistory**
- 命令:`/control/saveHistory commandHistory.txt`
- 说明:`saveHistory`命令用于将用户在Gate会话中执行的所有命令保存到一个文件中。这有助于用户记录和回顾他们的操作历史,便于复查和复现结果。
9. **stopSavingHistory**
- 命令:`/control/stopSavingHistory`
- 说明:此命令用于停止将命令历史保存到文件。如果用户不希望继续记录他们的操作,可以使用此命令来停止历史记录。
10. **alias**
- 命令:`/control/alias list /gate/actor/stat/save`
- 说明:`alias`命令用于为一个或多个命令创建一个简短的别名。在这个例子中,`list`被设置为`/gate/actor/stat/save`命令的别名,使得用户可以通过输入`list`来快速执行统计数据的保存操作。
11. **unalias**
- 命令:`/control/unalias list`
- 说明:此命令用于删除一个已经设置的别名。在这个例子中,如果之前创建了一个名为`list`的别名,这个命令将删除它,使得`list`不再代表任何命令。
12. **listAlias**
- 命令:`/control/listAlias`
- 说明:`listAlias`命令用于显示当前所有已设置的别名。这有助于用户查看和回顾所有自定义的别名,确保他们记得每个别名代表的命令。
13. **getEnv**
- 命令:`/control/getEnv PATH`
- 说明:`getEnv`命令用于获取操作系统环境变量的值,并将其设置为一个别名。在这个例子中,`PATH`环境变量的值被获取并设置为一个别名,允许用户在Gate中使用`PATH`来引用这个环境变量。
14. **getVal**
- 命令:`/control/getVal /gate/version`
- 说明:`getVal`命令用于获取一个Gate命令的当前值,并将其设置为一个别名。在这个例子中,Gate的版本号被获取并设置为一个别名,用户可以通过这个别名快速访问版本信息。
15. **echo**
- 命令:`/control/echo The simulation is running.`
- 说明:`echo`命令用于在屏幕上显示一条消息或参数值。这个命令在调试或需要向用户显示某些信息时非常有用。
16. **shell**
- 命令:`/control/shell ls -l`
- 说明:`shell`命令用于执行一个操作系统的shell命令。在这个例子中,`ls -l`命令被执行,显示当前目录下的文件列表。
17. **manual**
- 命令:`/control/manual`
- 说明:`manual`命令用于显示所有子目录和命令的手册。这有助于用户了解Gate中所有可用的命令和它们的用途。
18. **createHTML**
- 命令:`/control/createHTML`
- 说明:`createHTML`命令用于生成所有子目录和命令的HTML文档。这有助于用户创建一个本地的文档库,方便离线查阅。
19. **maximumStoredHistory**
- 命令:`/control/maximumStoredHistory 1000`
- 说明:`maximumStoredHistory`命令用于设置存储命令历史的最大数量。在这个例子中,命令历史的最大存储量被设置为1000条,防止历史记录无限增长。
20. **if**
- 命令:`/control/if { [ /gate/version ge 8.0 ] } { /control/execute newFeatures.mac }`
- 说明:`if`命令用于在表达式为真时执行一个宏文件。在这个例子中,如果Gate的版本号大于或等于8.0,将执行`newFeatures.mac`宏文件。
21. **doif**
- 命令:`/control/doif { [ /gate/version ge 8.0 ] } /gate/actor/addActor newActor`
- 说明:`doif`命令用于在表达式为真时执行一个UI命令。在这个例子中,如果Gate的版本号大于或等于8.0,将添加一个名为`newActor`的新演员。
二、 lunits目录下指令
ls /units
1. **查看可用单位**
- 命令:`/units`
- 说明:此命令用于管理和查看Gate中使用的单位系统。通过执行此命令,用户可以获取Gate中所有可用的单位及其相关信息。
2. **获取特定单位信息**
- 命令:`/units/<unit_name>`
- 说明:用户可以通过指定单位名称来获取该单位的详细信息。例如,`/units/cm`可以获取厘米单位的详细信息。
3. **转换单位**
- 命令:`/units/convert <value> <from_unit> <to_unit>`
- 说明:此命令用于将一个数值从一个单位转换到另一个单位。例如,`/units/convert 100 cm mm`将100厘米转换为毫米。
4. **列出所有单位**
- 命令:`/units/list`
- 说明:此命令用于列出Gate中定义的所有单位。这有助于用户了解Gate支持的所有单位类型。
5. **设置默认单位**
- 命令:`/units/setDefault <unit_name>`
- 说明:用户可以通过此命令设置默认的单位。例如,`/units/setDefault mm`将毫米设置为默认长度单位。
三、profiler目录下的指令
ls /profiler
Sub-directories:
1. **/profiler/output/**
- 控制性能分析器的输出模式。在这个子目录下,您可以设置性能分析结果的输出格式和详细程度。
2. **/profiler/run/**
- 在 G4Run(GEANT4 运行级别)控制性能分析器。这里可以设置与整个运行相关的性能分析选项。
3. **/profiler/event/**
- 在 G4Event(GEANT4 事件级别)控制性能分析器。这里可以设置与单个事件相关的性能分析选项。
4. **/profiler/track/**
- 在 G4Track(GEANT4 轨迹级别)控制性能分析器。这里可以设置与粒子轨迹相关的性能分析选项。
5. **/profiler/step/**
- 在 G4Step(GEANT4 步进级别)控制性能分析器。这里可以设置与粒子步进相关的性能分析选项。
6. **/profiler/user/**
- 在用户代码中控制性能分析器。这里可以设置与用户自定义代码相关的性能分析选项。
Commands:
1. **tree**
- 命令:`/profiler/tree`
- 说明:此命令用于以调用栈层次结构的形式显示性能分析结果,这有助于理解函数之间的调用关系。
2. **flat**
- 命令:`/profiler/flat`
- 说明:此命令用于以平面调用栈的形式显示性能分析结果,这有助于快速查看所有函数的执行时间,而不关注它们的调用顺序。
3. **timeline**
- 命令:`/profiler/timeline`
- 说明:此命令用于显示性能分析结果,不合并在同一调用栈位置上的重复条目。可以与 `tree` 或 `flat` 命令结合使用,以提供更详细的时间线视图。
4. **per_thread**
- 命令:`/profiler/per_thread`
- 说明:此命令用于为每个线程单独显示性能分析结果。默认情况下,结果可能会被聚合显示。
5. **per_event**
- 命令:`/profiler/per_event`
- 说明:此命令用于为每个 G4Event单独显示性能分析结果。默认情况下,结果可能会被聚合显示。
`/profiler/run/`
这个路径指向性能分析器在G4Run级别的控制命令。G4Run级别指的是GEANT4模拟中的一个完整的运行周期,通常包含多个事件(G4Event)。
1. **enable**
- 命令:`/profiler/run/enable`
- 说明:此命令用于启用G4Run级别的性能分析。启用后,性能分析器将记录每个G4Run的度量数据,允许用户分析整个模拟运行的性能。
2. **components**
- 命令:`/profiler/run/components`
- 说明:此命令用于设置在每个G4Run中记录的度量类型。`timemory-avail -s`是一个相关命令,用于列出所有可用的度量类型。用户可以根据需要选择记录哪些度量类型,例如CPU时间、内存使用等。