Message: LivermoreModel Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question LivermoreModel  

Forum: Physics List
Date: 26 Jul, 2011
From: <Mike>

Dear All,

I am using in my PhysicsList the LivermoreModel. I hope that my code is correct (see below). During a run I want to have a look at the processes (photo, compton, ionisation, brems, fluorecense), which occure and what kind of particles and secondaries are involved and produced.

Contained in my PhysicsList:

ExPhysicsList::ExPhysicsList() :  G4VUserPhysicsList()
{
 .
 .
 defaultCutValue = 0.0001*mm;
 .
  SetVerboseLevel(2);
}
 .
 .
 .
 .
    if (particleName == "gamma") {
      // Construct processes for gamma
      G4PhotoElectricEffect* photoelectric = new G4PhotoElectricEffect();
      G4LivermorePhotoElectricModel* livermorephotoelectricmodel = new G4LivermorePhotoElectricModel();
      photoelectric->SetModel(livermorephotoelectricmodel);
      livermorephotoelectricmodel->ActivateAuger(true);

      G4ComptonScattering* comptonscattering = new G4ComptonScattering();
      G4LivermoreComptonModel* livermorecomptonmodel = new G4LivermoreComptonModel();
      comptonscattering->SetModel(livermorecomptonmodel);

      G4GammaConversion* gammaConversion = new G4GammaConversion();
      G4LivermoreGammaConversionModel* livermoregammaConversionmodel = new G4LivermoreGammaConversionModel();
      gammaConversion->SetModel(livermoregammaConversionmodel);

      G4RayleighScattering* rayleigh = new G4RayleighScattering();
      G4LivermoreRayleighModel* livermorerayleighmodel = new G4LivermoreRayleighModel();
      rayleigh->SetModel(livermorerayleighmodel);

      pmanager->AddDiscreteProcess(photoelectric);
      pmanager->AddDiscreteProcess(comptonscattering);
      pmanager->AddDiscreteProcess(gammaConversion);
      pmanager->AddDiscreteProcess(rayleigh);

    }
    else if (particleName == "e-") {
      // Construct processes for electron
      G4eMultipleScattering* eMultipleScattering = new G4eMultipleScattering();
      eMultipleScattering->SetStepLimitType(fUseDistanceToBoundary);

      G4eIonisation* eIonisation = new G4eIonisation();
      G4LivermoreIonisationModel* LivermoreIonisationModel = new G4LivermoreIonisationModel();
      eIonisation->SetEmModel(LivermoreIonisationModel);
      LivermoreIonisationModel->ActivateAuger(true);

      G4eBremsstrahlung* eBremsstrahlung = new G4eBremsstrahlung();
      G4LivermoreBremsstrahlungModel* livermoreBremsstrahlungModel = new G4LivermoreBremsstrahlungModel();
      eBremsstrahlung->SetEmModel(livermoreBremsstrahlungModel);

      pmanager->AddProcess(eMultipleScattering, -1, 1, 1);
      pmanager->AddProcess(eIonisation, -1, 2, 2);
      pmanager->AddProcess(eBremsstrahlung, -1, 3, 3); 

      }

The information I need is contained in the G4LivermoreIonisationModel.cc
.
.
.
 if (verboseLevel > 0)
    {
      G4cout << "Livermore Ionisation model is initialized " << G4endl
	     << "Energy range: "
	     << LowEnergyLimit() / keV << " keV - "
	     << HighEnergyLimit() / GeV << " GeV"
	     << G4endl;
    }
.
.
.
.
if (verboseLevel > 1)
    {
      G4cout << "-----------------------------------------------------------" << G4endl;
      G4cout << "Energy balance from G4LivermoreIonisation" << G4endl;
      G4cout << "Incoming primary energy: " << kineticEnergy/keV << " keV" << G4endl;
      G4cout << "-----------------------------------------------------------" << G4endl;
      G4cout << "Outgoing primary energy: " << finalKinEnergy/keV << " keV" << G4endl;
      G4cout << "Delta ray " << energyDelta/keV << " keV" << G4endl;
      G4cout << "Fluorescence: " << (bindingEnergy-theEnergyDeposit)/keV << " keV" << G4endl;
      G4cout << "Local energy deposit " << theEnergyDeposit/keV << " keV" << G4endl;
      G4cout << "Total final state: " << (finalKinEnergy+energyDelta+bindingEnergy+
					  theEnergyDeposit)/keV << " keV" << G4endl;
      G4cout << "-----------------------------------------------------------" << G4endl;
    }
.
.
.

and in G4LivermoreIonisationModel.cc
.
.
.
if(verboseLevel>0) {
    G4cout << "Livermore PhotoElectric is constructed " << G4endl
	   << "Energy range: "
	   << lowEnergyLimit / eV << " eV - "
	   << highEnergyLimit / GeV << " GeV"
	   << G4endl;
  }
.
.
.

By setting the verboseLevel on 2 in the PhysicsList this information should be diplayed after starting the executable. But this is not the case. I get only some information on the display if I set /tracking/verbose 1 ore bigger,

*********************************************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 35,   Parent ID = 2
*********************************************************************************************************

Step#      X         Y         Z        KineE    dEStep   StepLeng  TrakLeng    Volume     Process
    0   1.34 mm    947 um   4.54 mm   2.91 keV     0 eV      0 fm      0 fm   Detector     initStep
    1   1.34 mm    947 um   4.54 mm      0 eV   2.91 keV   216 nm    216 nm   Detector     eIoni

*********************************************************************************************************

but this is not the information listed in G4LivermoreIonisationModel.cc and G4LivermoreIonisationModel.cc.

I am interested in the information of the processes where fluorescence photons and auger electrons are involved.

Is my code in PhysicsList wrong? Does s.o. know why the information does not show up on the display after starting the executable?

Thanks for your help.

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

1 None: Re: LivermoreModel   (=?UTF-8?Q?Nicholas_Collin_Paul_de_Glouce=C5=BFter?= - 27 Jul, 2011)
(_ Ok: Re: LivermoreModel   (Mike - 28 Jul, 2011)
 Add Message Add Message
to: "LivermoreModel "

 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 ]