- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试确定 Geant4 中 (n,gamma) react 中的目标核。我一直无法提取此信息。我发现它唯一存储的地方是 G4IsoParticleChange,如果启用同位素计数,它由 G4HadronicProcess 创建。
不幸的是,每次调用进程时,这些信息都会丢失(也不是以一种很好的方式,而是以内存泄漏的方式)。我找不到在粒子创建之间询问此信息的用户 Hook 。据我所知,G4UserStackingAction 是不够的,因为次级粒子都是在堆叠之前为一个步骤创建的(* 尽管写最后一句话给了我一个想法)。
谁能帮我确定在 (n,gamma) react 中捕获中子的原子核?有没有更简单的方法来获取这些信息?
谢谢
附言由于一个中子在一个步骤中只能被吸收一次,所以等到中子堆叠起来获取 IsoParticleChange 信息是否安全,或者我是否有内存泄漏的风险?
编辑得更清楚:
我想问是否有人知道如何检索作为 Geant4 中 nCapture 进程目标的核。从源代码中可以清楚地看出,如果未检索到 G4IsoParticleChange 信息,则每当调用 G4HadronicProcess 时都会发生内存泄漏。似乎没有用户 Hook 点适合在不丢失某些信息并导致所述内存泄漏的情况下获取此信息,但可以打开此信息存储。我想知道获取这些信息的正确方法是什么,或者是否有更好的方法来获取有关目标核的此类信息。
我之前从熟悉 Geant 的人那里得到了一些关于 SO 的帮助。我无法从 Slac Geant4 论坛得到回复,无法让我访问那里发帖。无论如何,该论坛似乎并不十分活跃。
谢谢
跟进:
万一有人偶然发现这个问题,我从 G4HadronicProcess 类的一位作者那里得到的答案是“这部分实现已经很多年没有维护了”和“让核心参与交互非常困难如果不编辑源代码也不是不可能。”所以我正在建立一个新的 Geant 工作区,我可以在那里做。仅供引用。
最佳答案
我终于找到了解决该问题的有效方法:我在以中子俘获结束的步骤的次级轨道 vector 中搜索原子核。这个原子核是捕获中子的原子核,Geant4 跟踪其反冲。不要忘记从该原子核中减去 1 个中子以获得您想要的结果(对于氢的捕获,您将使用此方法获得氘)。
所以在我的 SteppingAction 中,我添加:
// neutron capture
if ( aStep->GetPostStepPoint()->GetProcessDefinedStep()
&& aStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessType() == fHadronic // see G4ProcessType.hh
&& aStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessSubType() == fCapture // see G4HadronicProcessType.hh
) {
if ( aStep->GetSecondary() != 0
&& aStep->GetSecondary()->size() != 0
) {
std::vector<G4Track*>::const_iterator it;
for (it=aStep->GetSecondary()->begin(); it!=aStep->GetSecondary()->end(); it++) {
if ( !(*it)->GetCreatorProcess()
|| (*it)->GetCreatorProcess()->GetProcessSubType() != fCapture // see G4HadronicProcessType.hh
|| (*it)->GetCreatorProcess()->GetProcessType() != fHadronic // see G4ProcessType.hh
|| !(*it)->GetDynamicParticle()
|| (*it)->GetDynamicParticle()->GetParticleDefinition()->GetAtomicNumber() == 0 // keep only nucleus
|| (*it)->GetDynamicParticle()->GetParticleDefinition() == G4Neutron::NeutronDefinition() // but not the neutron (perhaps antiparticles could also be checked)
) { continue; }
myEventAction->TreatNeutronCapture(*it);
break;
}
if (it == aStep->GetSecondary()->end()) {
G4cerr << "\n#### END OF SECONDARY VECTOR REACHED AFTER NEUTRON CAPTURE ! ###\n";
myEventAction->TreatNeutronCapture(0);
}
} else { myEventAction->TreatNeutronCapture(0); }
}
如您所见,我将实际的步进处理推迟到 EventAction 的方法。这是我的 TreatNeutronCapture 方法:
void MyExperimentEventAction::TreatNeutronCapture(const G4Track* track)
{
myParticle = myMC->GetParticle(ParticleMap[track->GetParentID()]);
if (track == 0) { myParticle->SetFinalProcess(-1); } // if no nucleus is found in secondaries
else { myParticle->SetFinalProcess(track->GetDynamicParticle()->GetPDGcode()); }
}
myParticle 和 myMC 引用我自己的数据类。
关于c++ - 在Geant4中找到参与nCapture过程的核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244336/
最近我有兴趣加入一个开源的 p2p 文件共享项目。我对这个主题的了解不是那么具体,我的意思是我了解安全、网络、p2p 基础知识,但我仍然不知道从哪里开始同时了解全局和实际细节。简而言之,推荐的资源是什
自从百度发布超链接算法升级公告之后,看到很多SEO大神对于外链对排名的作用就更加讳莫如深,而作为个人站长,大家对于外链的看法各执一词。像高质量外链、外链作用、外链对排名的影响等等话题,各大论坛讨论的
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我只是想知道如何为我的应用程序激活 (RED) 东西。我在我的应用程序中添加了一个新的更新,看看是否有参与的复选标记,但没有。是否可能是 Apple 决定哪些应用“有资格”加入该计划? 提前致谢:)
在我的代码中我有这样的东西: struct SomeStruct { int test1; int test2; float test3; float test4; }; std::v
我有一个继承自 UIControl 的自定义类,用于获取触摸事件。它基本上是其他控件的集合,这些控件充当一个整体。我正在将我的应用程序从 xibs 转换为 Storyboard。除了这个之外,它基本上
我正在使用 expo 制作一个 React 应用程序,我想允许子元素出现在我的 TopicSection 元素中。我关注了this guide为了允许 JSX 元素中的子元素,并编写了以下代码。我尝试
根据 Uber 文档,应通过以下方式推荐新用户:“https://m.uber.com/sign-up?client_id=YOUR_CLIENT_ID ” 那么,有没有办法通过以下方式引用使用 oA
更新:这个问题至少通过 -XX:+UseCountedLoopSafepoints 和等于或高于 JDK 1.8.0_92 的 JVM 版本(使用 _161 测试)的组合粗略地解决了。 原创:包含 J
我有一个 Maven 项目,它编译为 webapp,具有标准 Maven war 布局。我正在尝试向同一个项目添加方面,但当部署为 Tomcat 上的 war 时,这些方面不会被触发。如果我将项目部署
现在 Facebook 会列出生日等事件的参与度,我想在我的网站上显示参与度。 有什么方法可以通过图形 API 让 friend 参与进来吗? 最佳答案 https://graph.facebook.
我正在安装 Engage! 我按照此处的安装说明进行操作:http://engagecsm.com/readme 我做的安装步骤: 添加互动!到应用程序的 Gemfile:gem 'engagecsm
对于以下实体关系结构,我正在努力弄清楚 LOAN 和 ITEM 实体之间的关系是否有效? LOAN 的弱实体使用 'loan_dateLeant' 的部分键和来自 CUSTOMER 和 ITEM 的主
我目前正在研究涉及 VBA 和 IE 的自动化流程。随着我的代码正在执行的多项操作,一切都与时俱进。问题是当我接近一个有 2 个下拉列表的部分时,在第一个下拉列表中做出某些选择后出现第二个下拉列表。
我有以下 Spring Integration 配置。我在这里所做的是dequeuing 来自主题的消息并在转换后将其发送到某个 HTTP 位置。 JMS 连接工厂 配置如下:
我正在使用 python-firebase在我的堆栈中记录点击次数和其他事件数据。它工作正常,但时不时地抛出这个堆栈跟踪: 'ConnectionError(MaxRetryError("HTTPSC
我是一名优秀的程序员,十分优秀!