Geant4系列讲座四.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
因此得到: 每一等分立体角为: 累加后得到: 对于任意散射角 θs有 因此 均匀划分散射角的判定条件: 因此,进行空间均匀划分的数学判定条件为: 由Geant4的Step中容易得到粒子动量的矢量信息,采用夹角余玄表示夹角更为容易,对于矢量a和b,其夹角的余玄可以表示为 因此散射角划分可以方便的表示为: 其中r是散射光子的方向,r0是入射光子的方向 同样,把方位角也用余玄表示,但是方位角取值在[0,2Pi]之间,其余玄不单调,此时就要分情况讨论,根据所处不同象限确定。 提纲 一、SensitiveDetector 二、G4MultiFunctionalDetector 三、Vector Method 四、Debug 方法介绍 五、文件输出技巧 六、散射实验编程算法技巧 G4Vhit代表一次碰撞。它可以看作是sensitive detector区域内粒子物理作用的“快照”(snapshot)。可以通过G4Step对象保存粒子信息。G4Vhit是基类,实际应用中必须由用户派生,它有两个虚拟函数, Draw() Print() (个人理解是,在Sensitvie detector里头一些碰撞感兴趣,通过Draw()可以将感兴趣的碰撞分离draw出!同理Print()做输出) 一、SensitiveDetector G4VsensitiveDetector类模拟探测器。其原理是在粒子输运过程中通过Step创建一系列hit对象。G4VsensitiveDetector类的ProcessHits()方法使用G4Step对象作为输入。G4VsensitiveDetector类又三个主要的虚拟函数: G4bool ProcessHits(G4Step*,G4TouchableHistory*) Void Initialize(G4HCofThisEvent*) Void EndOfEvent(G4HCofThisEvent*) 当粒子输运到sensitive detector的指针指到对应的G4LogicalVolume时,G4SteppingManager调用该方法。 该方法又两个参数,头一个参数传递的是当前Step指针,通过当前Step指针可以得到当前Step粒子信息; 第二个参数传递的是G4TouchableHistory对象指针。在ReadOfGeometry中使用 G4bool ProcessHits(G4Step*,G4TouchableHistory*) Void Initialize(G4HCofThisEvent*) 每一次Event开始时调用该方法,此方法传递的参数为G4HcofThisEvent类指针,Event的Hit可以存放其中(个人理解是类似指针数组的东西,Hit就是存放的内容,而G4HCofThisEvent就是一个指向Hit的指针数组,通过这些指针就能找到对应的Hit)。 Void EndOfEvent(G4HCofThisEvent*) Event结束时调用该方法,此方法的参数也为G4HCofThisEvent类指针,可以用来做输出。注意,如果这里输出,那么意味着每一Event完毕都会有个输出,具体输出内容视程序而定。 比如每次Event在sensitive detector中产生多次碰撞,要记录每次损失能量大于40keV的碰撞,那么就必须在Hit中编程,记录损失能大于40keV的碰撞(多个Hit对象)然后用G4HCofThisEvent“组装”起来。 G4SDManager* SDman = G4SDManager::GetSDMpointer(); G4String trackerChamberSDname = ExN02/TrackerChamberSD; ExN02TrackerSD* aTrackerSD = new ExN02TrackerSD( trackerChamberSDname ); SDman-AddNewDetector( aTrackerSD ); logicChamber-SetSensitiveDetector( aTrackerSD ); 以例子N02为例: 在:ExN02DetectorConstruction.cc的Construct()方法中对SDManger实例化,并通过LogcialVolume指定SensitiveDetector #预处理命令 class ExN02TrackerHit : public G4VHit { public: ExN02TrackerHit(); ~ExN02TrackerHit(); ExN02TrackerHit(const ExN02TrackerHit);

文档评论(0)

三四五 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档