Message: problem while including pion interaction in physics list Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question problem while including pion interaction in physics list 

Forum: Physics List
Date: 11 Nov, 2010
From: Tapasi Ghosh <Tapasi Ghosh>

Dear All,

I was trying to study pion(E<10 GeV) interaction inside iron absorber. I have used the following physics list

"
void IcalPrototypePhysicsList::ConstructEM()
{
  theParticleIterator->reset();
  while( (*theParticleIterator)() ){
    G4ParticleDefinition* particle = theParticleIterator->value();
    G4ProcessManager* pmanager = particle->GetProcessManager();
    G4String particleName = particle->GetParticleName();

    if (particleName == "gamma") {
G4cout<<"***************gamma******************"<<G4endl;
      // gamma         
      pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
      pmanager->AddDiscreteProcess(new G4ComptonScattering);
      pmanager->AddDiscreteProcess(new G4GammaConversion);

    } else if (particleName == "e-") {
G4cout<<"***************electron******************"<<G4endl;
      //electron
      pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
      pmanager->AddProcess(new G4eIonisation,       -1, 2,2);
      pmanager->AddProcess(new G4eBremsstrahlung,   -1, 3,3);      

    } else if (particleName == "e+") {
G4cout<<"***************positron******************"<<G4endl;
      //positron
      pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
      pmanager->AddProcess(new G4eIonisation,       -1, 2,2);
      pmanager->AddProcess(new G4eBremsstrahlung,   -1, 3,3);
      pmanager->AddProcess(new G4eplusAnnihilation,  0,-1,4);

    } else if( particleName == "mu+" || 
               particleName == "mu-"    ) {
 G4cout<<"***************muon******************"<<G4endl;
      //muon  
      pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
      pmanager->AddProcess(new G4MuIonisation,      -1, 2,2);
      pmanager->AddProcess(new G4MuBremsstrahlung,  -1, 3,3);
      pmanager->AddProcess(new G4MuPairProduction,  -1, 4,4);       

    } 
   //add by TG for including pion interaction on 09.11.2010
    else if( particleName == "pi+"){
      G4cout<<"***************pion******************"<<G4endl;
// Pi+ Physics
   pmanager = G4PionPlus::PionPlus()->GetProcessManager();

   // add processes
   G4HadronElasticProcess* theppElasticProcess 
                         = new G4HadronElasticProcess();
   G4LElastic* theppElasticModel = new G4LElastic();
   theppElasticProcess->RegisterMe(theppElasticModel);

    pmanager->AddDiscreteProcess(new G4HadronElasticProcess); // TG

   G4PionPlusInelasticProcess* thePionPlusInelasticProcess 
                         = new G4PionPlusInelasticProcess(); 

   G4LEPionPlusInelastic* thePionPlusLEPModel = new G4LEPionPlusInelastic();

    thePionPlusInelasticProcess->RegisterMe(thePionPlusLEPModel);

    //  pmanager->AddDiscreteProcess(thePionPlusInelasticProcess); //original
     pmanager->AddDiscreteProcess(new G4PionPlusInelasticProcess );

   G4VProcess* theppMultipleScattering = new G4MultipleScattering();
   G4VProcess* theppIonisation        = new G4hIonisation();
   // 
   pmanager->AddProcess(theppIonisation);
   pmanager->AddProcess(theppMultipleScattering);
   // 
   // set ordering for AlongStepDoIt
    pmanager->SetProcessOrdering(theppMultipleScattering, idxAlongStep,1);
    pmanager->SetProcessOrdering(theppIonisation,        idxAlongStep,2);
   // 
   // set ordering for PostStepDoIt
    pmanager->SetProcessOrdering(theppMultipleScattering, idxPostStep,1);
    pmanager->SetProcessOrdering(theppIonisation,        idxPostStep,2);

   else if ((!particle->IsShortLived()) &&
	       (particle->GetPDGCharge() != 0.0) && 
	       (particle->GetParticleName() != "chargedgeantino")) {
      //all others charged particles except geantino
      pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
      pmanager->AddProcess(new G4hIonisation,       -1, 2,2); 
    }
   ////////////////////////////////////
  }
}

"

The last part of the physics list I have included for pion. Now the following error is appearing during /run/beamOn

"
process=Transportation volume =GASphy  particle name=pi+
*G4HadronicProcess::ChooseHadronicInteraction: process = PionPlusInelastic, nM=0
In src/G4EnergyRangeManager.cc, line 86:
===> GetHadronicInteraction: NO MODELS STORED
In src/G4EnergyRangeManager.cc, line 86:
===> GetHadronicInteraction: NO MODELS STORED
Unrecoverable error for:
 - Particle energy[GeV] = 0.914331
 - Material = quartz
 - Particle type = pi+

*** G4Exception : 007
      issued by : G4HadronicProcess
ChooseHadronicInteraction failed.
*** Fatal Exception *** core dump ***

*** G4Exception: Aborting execution *** Aborted "

It will be really helpful for me , if someone kindly help me. As I do not know which physics list should I use? I modified the /novice/exampleNO3 and want to compare the results for muons and pions.

Thanking you. WIth best regards. Tapasi

 Add Message Add Message
to: "problem while including pion interaction in physics list"

 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 ]