|
沙发

楼主 |
发表于 2015-4-8 09:55:29
|
只看该作者
你好,我看了N07的粒子了,可是我要的信息,找不到 Particle filte
上面是你的问题
下面是N07中particle filter的段代码
可以只收集光子,电子等等
G4SDParticleFilter* gammaFilter = new G4SDParticleFilter
(filterName="gammaFilter",particleName="gamma");
G4SDParticleFilter* electronFilter = new G4SDParticleFilter
(filterName="electronFilter",particleName="e-");
G4SDParticleFilter* positronFilter = new G4SDParticleFilter
(filterName="positronFilter",particleName="e+");
G4SDParticleFilter* epFilter = new G4SDParticleFilter
(filterName="epFilter");
epFilter->add(particleName="e-");
epFilter->add(particleName="e+");
G4VPrimitiveScorer* primitive;
primitive = new G4PSEnergyDeposit("eDep",j);
det->RegisterPrimitive(primitive);
primitive = new G4PSNofSecondary("nGamma",j);
primitive->SetFilter(gammaFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSNofSecondary("nElectron",j);
primitive->SetFilter(electronFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSNofSecondary("nPositron",j);
primitive->SetFilter(positronFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSMinKinEAtGeneration("minEkinGamma",j);
primitive->SetFilter(gammaFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSMinKinEAtGeneration("minEkinElectron",j);
primitive->SetFilter(electronFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSMinKinEAtGeneration("minEkinPositron",j);
primitive->SetFilter(positronFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSTrackLength("trackLength",j);
primitive->SetFilter(epFilter);
det->RegisterPrimitive(primitive);
primitive = new G4PSNofStep("nStep",j);
primitive->SetFilter(epFilter);
det->RegisterPrimitive(primitive); |
|