| Message: no recoil in hIonisation? | Not Logged In (login) |
|
Hi, I'm trying to simulate a beam of Mg30 on a target with Ni58 and a segmented silicondetector. The particle constructor is:
G4IonConstructor pConstructor; pConstructor.ConstructParticle(); The processe are:
pManager = G4GenericIon::GenericIon()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess);
pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1);
pManager->AddProcess(&fIonIonisation, -1, 2, 2);
if(pManager->AddProcess(new G4hIonisation(), ordInActive, 2, 2)<0)
cout<<"Couldn't add G4hIonisation process!\n";
and the particle is generated by:
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4ParticleDefinition* Mg30 = particleTable->GetIon(12, 30, 0.0); particleGun2->SetParticleDefinition(Mg30); particleGun2->SetParticlePosition(G4ThreeVector(beam_x, beam_y, beam_z)); particleGun2->SetParticleMomentumDirection(G4ThreeVector(0, 0, 1)); particleGun2->SetParticleEnergy(30*2.2*MeV);
particleGun2->GeneratePrimaryVertex(anEvent); Now I can see in the silicondetector Mg30 particles, but there are no Ni58 particles, which I should also see. Also the energy of the Mg30 deposited in the silicondetector is independent of the scattering angle (between 15 and 55 degree), which is also wrong. So what am I doing wrong, did I forget any processes? An other weird thing is that when I added the hIonisation I've suddenly got Mg30.ion which deposit a much larger energy than normally in the detector (about 65 MeV compared to 58 MeV normally), and only at small angles in a very sharp peak. So did the original peak at 58 MeV come only from multiple Scattering? And should I turn this of, since I only get one peak in the data? Thanks, Vinzenz |
| Inline Depth: | Outline Depth: | Add message: |
|
to: |