八千里路云和月

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  62 随笔 :: 0 文章 :: 0 评论 :: 37899 阅读

geant4 一些问题


图形界面显示的问题

报错: 

1 libGL error: No matching fbConfigs or visuals found 
2 libGL error: failed to load driver: swrast
  • 是显卡的问题,目前没有解决方法,但也没有影响。

可视化界面中粒子径迹颜色含义

  • 电荷+,蓝色;不带电,绿色;电荷负,红色。
  • gamma,绿色;电子,红色;正电子,蓝色;中子,黄色;质子,蓝绿色。

trackingAction是用来做什么的?

  • trackingAction和EventAvtion、steppingAction、runAction是四个在G4中需要继承的基类,但是steppingAction和trackingAction可以不去继承,如果使用了灵敏探测器,那么则不需要从steppingAction、trackingAction中提取信息。

如何添加 stepAction ?

  1. 在代码中添加 steppingAction.hh 与 steppingAction.cc 文件。
  2. 在 ActionInitialization.cc 中,把 steppingAction 写入到 runManager 中。
    复制代码
     1 void ActionInitialization::Build() const
     2 {
     3   RootIO* rootIO = new RootIO(saveFlag);
     4   EventAction* eventAction = new EventAction();
     5 
     6   SetUserAction(new PrimaryGeneratorAction());
     7   SetUserAction(new RunAction(rootIO));
     8   SetUserAction(eventAction);
     9   SetUserAction(new SteppingAction(new DetectorConstruction(),
    10                                    eventAction,
    11                                    rootIO));
    12 }
    复制代码

     

如何获取 particleName ?

  •  aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->GetParticleName() 
  •  theTrack->GetDefinition()->GetParticleName() 
  •  track->GetParticleDefinition()->GetParticleName() 

 

解决一个警告的报错

In file included from /opt/root61206/include/TDirectory.h:24:0,
                 from /opt/root61206/include/TDirectoryFile.h:24,
                 from /opt/root61206/include/TFile.h:26,
                 from /media/DATA2T/han/Simulation/source/Si/src/EventAction.cc:19:
/opt/root61206/include/TBuffer.h: In member function ‘virtual void TBuffer::ReadStdString(std::string&)’:
/opt/root61206/include/TBuffer.h:287:54: warning: declaration of ‘s’ shadows a global declaration [-Wshadow]
    virtual inline void ReadStdString(std::string &s) { ReadStdString(&s); }
  • 是由于 G4SystemOfUnits.hh 头文件导致的,把不需要该头文件的位置注释掉即可,比如 RunAction,EventAction 类。
  • 除了在 DetectorConsitruction 和 PrimaryGeneratorAction 类中,其他地方都可以不需要 G4SystemOfUnits.hh 头文件。
  • 类似的问题可以参考 https://root-forum.cern.ch/t/silence-warning-messages-during-a-geant4-project-compilation/20525/12

     

 

posted on   hanX3  阅读(794)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示