Problem 126 - Muon Pair production required process for mu+
Summary: Muon Pair production required process for mu+
Status: RESOLVED WORKSFORME
Alias: None
Product: Geant4
Classification: Unclassified
Component: processes/electromagnetic (show other problems)
Version: 2.0
Hardware: PC Linux
: P2 minor
Assignee: Michel.Maire
URL:
Depends on:
Blocks:
 
Reported: 2000-07-10 16:49 CEST by lebrun
Modified: 2000-08-10 08:58 CEST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description lebrun 2000-07-10 16:49:17 CEST
If one simply comment out the instantiation - or declaration - (and
"addManager")  of the MuPairProduction process, for mu+ and/or mu-, in the
example N02, then one gets a core dump because the energy loss table are lost.

Modified segment of : ExN02PhysicsList.cc :

   } else if( particleName == "mu+" ||
               particleName == "mu-"    ) {
    //muon
     // Construct processes for muon+
     G4VProcess* aMultipleScattering = new G4MultipleScattering();
     G4VProcess* aBremsstrahlung = new G4MuBremsstrahlung();
//     G4VProcess* aPairProduction = new G4MuPairProduction();
     G4VProcess* anIonisation = new G4MuIonisation();
      // add processes
     pmanager->AddProcess(anIonisation);
     pmanager->AddProcess(aMultipleScattering);
     pmanager->AddProcess(aBremsstrahlung);
//     pmanager->AddProcess(aPairProduction);
      // set ordering for AlongStepDoIt
      pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,  1);
      pmanager->SetProcessOrdering(anIonisation, idxAlongStep,  2);
      // set ordering for PostStepDoIt
      pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep, 1);
      pmanager->SetProcessOrdering(anIonisation, idxPostStep, 2);
      pmanager->SetProcessOrdering(aBremsstrahlung, idxPostStep, 3);
//      pmanager->SetProcessOrdering(aPairProduction, idxPostStep, 4);

	when shooting muons of ~130 MeV gives:

*********************************************************************************************************
* G4Track Information:   Particle = mu+,   Track ID = 1,   Parent ID = 0
*********************************************************************************************************

Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng
NextVolu   Process
    0   -2.5 cm     0 fm     0 fm   131 MeV     0 eV     0 fm     0
fmTargetPV            initStep

Program received signal SIGSEGV, Segmentation fault.
G4RWTPtrOrderedVector<G4PhysicsVector>::operator() (this=0x0, i=1)
    at
/local/data01/lebrun/geant4/geant4.2.0/source/global/STLInterface/g4rw/tpordvec.icc:47
47        if(rwsize<=i && i<std_pvector::size())
(gdb) quit

	(gdb) where
#0  G4RWTPtrOrderedVector<G4PhysicsVector>::operator() (this=0x0, i=1)
    at
/local/data01/lebrun/geant4/geant4.2.0/source/global/STLInterface/g4rw/tpordvec.icc:47
#1  0x80ac0b0 in G4VMuEnergyLoss::GetConstraints (this=0x84c5790,
aParticle=0x8443108,
    aMaterial=0x84935b8) at src/G4VMuEnergyLoss.cc:352
#2  0x80ac69e in G4VMuEnergyLoss::GetContinuousStepLimit (this=0x84c5790,
track=@0x8443938,
    currentMinimumStep=6.4237754657120725) at include/G4VMuEnergyLoss.icc:35
#3  0x812561a in
G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength ()
    at
/local/data01/lebrun/geant4/geant4.2.0/source/geometry/management/include/G4LogicalVolume.hh:205
#4  0x807f8c2 in G4SteppingManager::Stepping () at src/ExN02TrackerHit.cc:19
#5  0x8077842 in G4TrackingManager::ProcessOneTrack () at
src/ExN02TrackerHit.cc:19
#6  0x8065d44 in G4EventManager::ProcessOneEvent () at src/ExN02TrackerHit.cc:19
#7  0x805264b in G4RunManager::DoEventLoop () at src/ExN02TrackerHit.cc:19
#8  0x805214e in G4RunManager::BeamOn () at src/ExN02TrackerHit.cc:19
#9  0x805b6ab in G4RunMessenger::SetNewValue () at src/ExN02TrackerHit.cc:19

.....

I found this feature running an other example of mine, so it is not peculiar to
ExN02.  I also think this is a feature of 4.2.0, I was able to run without
muon induced pair production in 4.1.1.

						Paul.
Comment 1 Laszlo.Urban 2000-08-10 08:58:59 CEST
This problem appeared only, because commenting out the muon pair production
process you have decreased the number of processes which give contribution to
the continuous energy loss , but you did not reset the corresponding data member
 in the energy loss process. By default the number of processes is 3 , they are
 the ionisation,bremsstrahlung and pair production. You can leave out one or
more processes, but in this case you have to set the data member NbOfProcesses
to the correct value using the SetNbOfProcesses(G4int) function. Add the line

     anIonisation->SetNbOfProcesses(2) ;

 to your physicslist , please.

  best regards
                  Laszlo