Message: Re: Spallation events identification Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Spallation events identification 

Forum: Hadronic Processes
Re: Question Spallation events identification (Stefania stucci)
Re: None Re: Spallation events identification (Michael H. Kelsey)
Re: None Re: Spallation events identification (Stefania stucci)
Re: None Re: Spallation events identification (Michael H. Kelsey)
Date: Mar 02, 21:36
From: Stefania stucci <Stefania stucci>

Hi, still me. 
I noticed that by using this code: 

if (aStep->GetTrack()->GetParentID()!=0) {
        particle= aStep->GetTrack()->GetDefinition();
        if (particle->GetParticleType() == "nucleus") {     
            G4int A = particle->GetAtomicMass();
            analysisManager->FillH1(1, A);
        }        
    }

instead of 

for (size_t lp=0; lp<(*secondary).size(); lp++) {
            particle = (*secondary)[lp]->GetDefinition();
            G4String name   = particle->GetParticleName();
            if (particle->GetParticleType() == "nucleus") {
       G4int A = particle->GetAtomicMass();
       analysisManager->FillNtupleDColumn(1, A);       
          }       
    }

gives me two different numbers, in particular the first method gives me a larger number of ions. Following event by event I noticed that the first method is counting a larger number of deuterons than actually geant4 produces as secondary. Do you know why there is this double counting? What’s wrong with the first method? 

thanks so much 
stefania
 

On 3/1/19, 12:21 PM, "Mike Kelsey" <kelsey@slac.stanford.edu> wrote:

    Stefania stucci writes:
    > I guess i can use this method, am i right? G4String processName
    > =aStep->GetPostStepPoint()->GetProcessDefinedStep()>GetProcessName();
    
    Yes, but from what you said below, you don't even need to look at the
    process (or do string comparisons).
    
    > Also, i am actually not looking at neutrons, but for single event upset
    > in GaN we want to look for ions.
    
    That makes it somewhat simpler, in fact.  The only way to get an ion as a
    secondary particle is through a nuclear interaction, so testing for the
    process is kind of redundant.  
    
    In your SteppingAction, you can look to see if any of the tracks are ions,
    either with a string comparison, or with a dynamic cast:
    
        if (<secondary>->GetDefinition()->GetParticleType() == "nucleus")
    
    or
    
        if (dynamic_cast<G4Ions*>(<secondary>->GetDefinition()))
    
    This also takes care of the case where the nucleus absorbs the incident
    particle and just gets a kick.  
    
    There may be cases where the target nucleus absorbs the projectile and emits
    a light-ion fragment (alpha particle, He3, etc.).  In that case, you'd see
    two secondaries both pass the above tests (the fragment and the residual
    nucleus).
    
          -- Mike Kelsey

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: Spallation events identification   (michel maire - Mar 04, 03:00)
 Add Message Add Message
to: "Re: Spallation events identification"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]