Import Geant4 8.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:44:26 +02:00
parent 8a51e0bc40
commit 216a75eeb1
8717 changed files with 360418 additions and 141343 deletions
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyAnalisysManager.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -131,23 +135,23 @@ void HadrontherapyAnalysisManager::book()
tupFact = aFact -> createTupleFactory(*theTree);
// Create the histograms with the enrgy deposit along the X axis
h1 = histFact -> createHistogram1D("10","slice, energy", 80, 0., 80. );
h1 = histFact -> createHistogram1D("10","slice, energy", 200, 0., 200. );
h2 = histFact -> createHistogram1D("20","Secondary protons - slice, energy", 80, 0., 80. );
h2 = histFact -> createHistogram1D("20","Secondary protons - slice, energy", 200, 0., 200. );
h3 = histFact -> createHistogram1D("30","Secondary neutrons - slice, energy", 80, 0., 80. );
h3 = histFact -> createHistogram1D("30","Secondary neutrons - slice, energy", 200, 0., 200. );
h4 = histFact -> createHistogram1D("40","Secondary alpha - slice, energy", 80, 0., 80. );
h4 = histFact -> createHistogram1D("40","Secondary alpha - slice, energy", 200, 0., 200. );
h5 = histFact -> createHistogram1D("50","Secondary gamma - slice, energy", 80, 0., 80. );
h5 = histFact -> createHistogram1D("50","Secondary gamma - slice, energy", 200, 0., 200. );
h6 = histFact -> createHistogram1D("60","Secondary electron - slice, energy", 80, 0., 80. );
h6 = histFact -> createHistogram1D("60","Secondary electron - slice, energy", 200, 0., 200. );
h7 = histFact -> createHistogram1D("70","Secondary triton - slice, energy", 80, 0., 80. );
h7 = histFact -> createHistogram1D("70","Secondary triton - slice, energy", 200, 0., 200. );
h8 = histFact -> createHistogram1D("80","Secondary deuteron - slice, energy", 80, 0., 80. );
h8 = histFact -> createHistogram1D("80","Secondary deuteron - slice, energy", 200, 0., 200. );
h9 = histFact -> createHistogram1D("90","Secondary pion - slice, energy", 80, 0., 80. );
h9 = histFact -> createHistogram1D("90","Secondary pion - slice, energy", 200, 0., 200. );
h10 = histFact -> createHistogram1D("100","Energy distribution of secondary electrons", 70, 0., 70. );
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyBeamLine.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyDetectorDecay.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -51,6 +55,7 @@ void HadrontherapyDecay::ConstructProcess()
// Add Decay Process
G4Decay* theDecayProcess = new G4Decay();
theParticleIterator -> reset();
while( (*theParticleIterator)() )
{
G4ParticleDefinition* particle = theParticleIterator -> value();
@@ -63,6 +68,5 @@ void HadrontherapyDecay::ConstructProcess()
pmanager -> SetProcessOrdering(theDecayProcess, idxPostStep);
pmanager -> SetProcessOrdering(theDecayProcess, idxAtRest);
}
}
}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyDetectorConstruction.cc; Version 4.0 May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -179,7 +183,7 @@ void HadrontherapyDetectorConstruction::ConstructPhantom()
"PhantomLog",
0,0,0);
// Fixing the max step allowd in the phantom
// Fixing the max step allowed in the phantom
G4double maxStep = 0.02*cm;
phantomLogicalVolume -> SetUserLimits(new G4UserLimits(maxStep));
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyDetectorMessenger.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyElectronEEDL.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -50,23 +54,23 @@ HadrontherapyElectronEEDL::~HadrontherapyElectronEEDL()
void HadrontherapyElectronEEDL::ConstructProcess()
{
// Add EEDL processes for electrons
// Add electromagnetic processes for electrons - Low Energy Package, EEDL libraries
theParticleIterator->reset();
while( (*theParticleIterator)() )
{
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* manager = particle->GetProcessManager();
G4String particleName = particle->GetParticleName();
G4ParticleDefinition* particle = theParticleIterator -> value();
G4ProcessManager* manager = particle -> GetProcessManager();
G4String particleName = particle -> GetParticleName();
if (particleName == "e-")
{
manager->AddProcess(new G4MultipleScattering, -1, 1,1);
manager->AddProcess(new G4LowEnergyIonisation, -1, 2,2);
manager -> AddProcess(new G4MultipleScattering, -1, 1,1);
manager -> AddProcess(new G4LowEnergyIonisation, -1, 2,2);
G4LowEnergyBremsstrahlung* brem = new G4LowEnergyBremsstrahlung();
manager->AddProcess(brem,-1,-1,3);
manager->AddProcess(new G4StepLimiter(), -1,-1, 3);
manager -> AddProcess(brem,-1,-1,3);
manager -> AddProcess(new G4StepLimiter(), -1,-1, 3);
}
}
}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyElectronPenelope.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -58,9 +62,9 @@ void HadrontherapyElectronPenelope::ConstructProcess()
while( (*theParticleIterator)() )
{
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* manager = particle->GetProcessManager();
G4String particleName = particle->GetParticleName();
G4ParticleDefinition* particle = theParticleIterator -> value();
G4ProcessManager* manager = particle -> GetProcessManager();
G4String particleName = particle -> GetParticleName();
if (particleName == "e-")
{
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
// ----------------------------------------------------------------------------
@@ -51,7 +55,7 @@ void HadrontherapyElectronStandard::ConstructProcess()
{
// Add standard processes for electrons
theParticleIterator->reset();
theParticleIterator -> reset();
while( (*theParticleIterator)() )
{
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyEventAction.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyIonLowE.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -56,21 +60,31 @@ void HadrontherapyIonLowE::ConstructProcess()
while( (*theParticleIterator)() )
{
G4ParticleDefinition* particle = theParticleIterator -> value();
G4ProcessManager* manager = particle -> GetProcessManager();
G4String particleName = particle -> GetParticleName();
G4double charge = particle -> GetPDGCharge();
if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" &&
// Electromagnetic interactions for protons, pions, generic hadrons
// deuteron, triton, alpha particles, He3, ions.
if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" &&
particleName != "e-" && particleName != "mu-")
{
if((!particle -> IsShortLived()) &&
(particle -> GetParticleName() != "chargedgeantino"))
{
// ICRU49 parameterisation is the default one
// ***** Ionisation ***** //
// ICRU49 parameterisation is the default option
G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation();
// Set the nuclear stopping power
ionisation -> SetNuclearStoppingOn() ;
// ***** Multiple scattering ***** //
G4VProcess* multipleScattering = new G4MultipleScattering();
// Activate the processes
manager -> AddProcess(multipleScattering, -1,1,1);
manager -> AddProcess(ionisation, -1,2,2);
manager -> AddProcess(new G4StepLimiter(),-1,-1, 3);
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyIonLowE.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyIonLowEZiegler1985.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyIonLowE.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyIonStandard.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -60,27 +64,31 @@ void HadrontherapyIonStandard::ConstructProcess()
G4String particleName = particle -> GetParticleName();
G4double charge = particle -> GetPDGCharge();
if (particleName == "GenericIon")
if (particleName == "GenericIon"||
particleName == "alpha" ||
particleName == "He3")
{
G4ionIonisation* ionisation = new G4ionIonisation();
G4VProcess* multipleScattering = new G4MultipleScattering();
manager -> AddProcess(multipleScattering, -1,1,1);
manager -> AddProcess(ionisation, -1,2,2);
manager -> AddProcess(new G4StepLimiter(),-1,-1, 3);
}
//protons and generic hadrons
if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" &&
particleName != "e-" && particleName != "mu-" && particleName !="GenericIon")
else
{
if((!particle -> IsShortLived()) &&
(particle -> GetParticleName() != "chargedgeantino"))
//protons, triton, deuteron, pions and other hadrons
if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" &&
particleName != "e-" && particleName != "mu-")
{
G4hIonisation* ionisation = new G4hIonisation();
G4VProcess* multipleScattering = new G4MultipleScattering();
manager -> AddProcess(multipleScattering, -1,1,1);
manager -> AddProcess(ionisation, -1,2,2);
manager -> AddProcess(new G4StepLimiter(),-1,-1, 3);
if((!particle -> IsShortLived()) &&
(particle -> GetParticleName() != "chargedgeantino"))
{
G4hIonisation* ionisation = new G4hIonisation();
G4VProcess* multipleScattering = new G4MultipleScattering();
manager -> AddProcess(multipleScattering, -1,1,1);
manager -> AddProcess(ionisation, -1,2,2);
manager -> AddProcess(new G4StepLimiter(),-1,-1, 3);
}
}
}
}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyMaterial.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhantomSD.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyModulator.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyMuonStandard.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -95,5 +99,5 @@ void HadrontherapyMuonStandard::ConstructProcess()
pmanager -> AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1);
}
}
G4cout << "muon processed loaded"<<G4endl;
// G4cout << "Muon processes are active!"<<G4endl;
}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyParticles.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -53,6 +57,10 @@ HadrontherapyParticles::~HadrontherapyParticles()
void HadrontherapyParticles::ConstructParticle()
{
//
// Define all the particles involved in the experimental set-up
//
G4LeptonConstructor lepton;
lepton.ConstructParticle();
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhantomHit.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhantomROGeometry.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhantomSD.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhotonEPDL.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -50,7 +54,8 @@ HadrontherapyPhotonEPDL::~HadrontherapyPhotonEPDL()
void HadrontherapyPhotonEPDL::ConstructProcess()
{
// Add EPDL processes for photons
// Add electromagnetic processes for photons, Low Energy Package,
// model based on EPDL Libraries
theParticleIterator -> reset();
@@ -1,23 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhotonPenelope.cc; Version 4.0 May 2005
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhotonStandard.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhysicsList.cc,v 1.0
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -58,6 +62,7 @@
#include "HadrontherapyProtonPrecompoundFermi.hh"
#include "HadrontherapyProtonPrecompoundGEM.hh"
#include "HadrontherapyProtonPrecompoundGEMFermi.hh"
#include "HadrontherapyProtonBertini.hh"
#include "HadrontherapyProtonBinary.hh"
#include "HadrontherapyMuonStandard.hh"
#include "HadrontherapyDecay.hh"
@@ -74,13 +79,21 @@ HadrontherapyPhysicsList::HadrontherapyPhysicsList(): G4VModularPhysicsList(),
muonIsRegistered(false),
decayIsRegistered(false)
{
//
// The threshold of production of secondaries is fixed to 10. mm
// for all the particles, in all the experimental set-up
// The phantom is defined as a Geant4 Region. Here the cut is fixed to 0.001 * mm.
//
defaultCutValue = 10. * mm;
messenger = new HadrontherapyPhysicsListMessenger(this);
SetVerboseLevel(1);
RegisterPhysics( new HadrontherapyParticles("particles") );
// Messenger: it is possible to activate interactively physics processes and models
messenger = new HadrontherapyPhysicsListMessenger(this);
SetVerboseLevel(1);
// Register all the particles involved in the experimental set-up
RegisterPhysics( new HadrontherapyParticles("particles") );
}
HadrontherapyPhysicsList::~HadrontherapyPhysicsList()
@@ -92,13 +105,16 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name)
{
G4cout << "Adding PhysicsList component " << name << G4endl;
//
// Electromagnetic physics.
//*************************//
// Electromagnetic physics //
//*************************//
//
// The user can choose three alternative approaches:
// Standard, Low Energy based on the Livermore libraries and Low Energy Penelope
//
// ******** PHOTONS ********//
// Register standard processes for photons
if (name == "photon-standard")
{
@@ -153,6 +169,8 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name)
}
}
// ******** Electrons ********//
// Register standard processes for electrons
if (name == "electron-standard")
{
@@ -207,6 +225,7 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name)
}
}
// ******** Positrons ********//
// Register standard processes for positrons
if (name == "positron-standard")
{
@@ -240,7 +259,8 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name)
positronIsRegistered = true;
}
}
// ******** HADRONS AND IONS ********//
// Register Low Energy processes for protons and ions
// Stopping power parameterisation: ICRU49 (default model)
@@ -377,7 +397,7 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name)
//--------------------------------------------------------------------------------------------
//Begin Hadronic Precompound models
// Begin Hadronic Precompound models
//--------------------------------------------------------------------------------------------
//
// Register the hadronic physics for protons, neutrons, ions
@@ -492,7 +512,31 @@ if (name == "proton-precompound-binary")
}
//--------------------------------------------------------------------------------------------
// End Hadronic Binary models
// Begin Hadronic Bertini model
//--------------------------------------------------------------------------------------------
// Bertini model for protons, pions and neutrons
if (name == "proton-bertini")
{
if (protonHadronicIsRegistered)
{
G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name
<< " cannot be registered ---- decay List already existing"
<< G4endl;
}
else
{
G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name
<< " is registered" << G4endl;
RegisterPhysics( new HadrontherapyProtonBertini(name) );
protonHadronicIsRegistered = true;
}
}
//--------------------------------------------------------------------------------------------
// End Hadronic models
//--------------------------------------------------------------------------------------------
if (electronIsRegistered && positronIsRegistered && photonIsRegistered &&
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPhisicsListMessenger.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPositronPenelope.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// HadrontherapyPositronStandard.cc May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPositronPrimaryGeneratorAction.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -34,7 +38,6 @@
// * cirrone@lns.infn.it
// ----------------------------------------------------------------------------
#include "HadrontherapyPrimaryGeneratorAction.hh"
#include "HadrontherapyDetectorConstruction.hh"
#include "HadrontherapyPrimaryGeneratorMessenger.hh"
#include "G4Event.hh"
#include "G4ParticleGun.hh"
@@ -44,14 +47,18 @@
HadrontherapyPrimaryGeneratorAction::HadrontherapyPrimaryGeneratorAction()
{
// Define the messenger
gunMessenger = new HadrontherapyPrimaryGeneratorMessenger(this);
particleGun = new G4ParticleGun();
SetDefaultPrimaryParticle();
}
HadrontherapyPrimaryGeneratorAction::~HadrontherapyPrimaryGeneratorAction()
{
delete particleGun;
delete gunMessenger;
}
@@ -61,17 +68,22 @@ void HadrontherapyPrimaryGeneratorAction::SetDefaultPrimaryParticle()
// Default primary particle
// ****************************
// Define primary particles: protons
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* particle = particleTable->FindParticle("proton");
particleGun->SetParticleDefinition(particle);
particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.));
G4ParticleDefinition* particle = particleTable -> FindParticle("proton");
particleGun -> SetParticleDefinition(particle);
G4double defaultMeanKineticEnergy = 63.450 *MeV;
// Define the energy of primary particles:
// gaussian distribution with mean energy = 63.450 *MeV
// and sigma = 400.0 *keV
G4double defaultMeanKineticEnergy = 63.50 *MeV;
meanKineticEnergy = defaultMeanKineticEnergy;
G4double defaultsigmaEnergy = 400.0 *keV;
sigmaEnergy = defaultsigmaEnergy;
// Define the parameters of the initial position:
// the y, z coordinates have a gaussian distribution
G4double defaultX0 = -3248.59 *mm;
X0 = defaultX0;
@@ -87,6 +99,8 @@ void HadrontherapyPrimaryGeneratorAction::SetDefaultPrimaryParticle()
G4double defaultsigmaZ = 1 *mm;
sigmaZ = defaultsigmaZ;
// Define the parameters of the momentum of primary particles:
// The momentum along the y and z axis has a gaussian distribution
G4double defaultsigmaMomentumY = 0.0001;
sigmaMomentumY = defaultsigmaMomentumY;
@@ -127,6 +141,7 @@ void HadrontherapyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
particleGun -> SetParticleEnergy ( kineticEnergy );
// Set the direction of the primary particles
G4double momentumX = 1.0;
G4double momentumY = 0.0;
G4double momentumZ = 0.0;
@@ -139,35 +154,35 @@ void HadrontherapyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
momentumZ += G4RandGauss::shoot( 0., sigmaMomentumZ );
}
particleGun->SetParticleMomentumDirection(G4ThreeVector(1,momentumY,momentumZ));
particleGun -> SetParticleMomentumDirection( G4ThreeVector(momentumX,momentumY,momentumZ) );
// Generate a primary particle
particleGun -> GeneratePrimaryVertex( anEvent );
}
void HadrontherapyPrimaryGeneratorAction::SetmeanKineticEnergy (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetmeanKineticEnergy (G4double val )
{ meanKineticEnergy = val;}
void HadrontherapyPrimaryGeneratorAction::SetsigmaEnergy (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetsigmaEnergy (G4double val )
{ sigmaEnergy = val;}
void HadrontherapyPrimaryGeneratorAction::SetXposition (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetXposition (G4double val )
{ X0 = val;}
void HadrontherapyPrimaryGeneratorAction::SetYposition (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetYposition (G4double val )
{ Y0 = val;}
void HadrontherapyPrimaryGeneratorAction::SetZposition (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetZposition (G4double val )
{ Z0 = val;}
void HadrontherapyPrimaryGeneratorAction::SetsigmaY (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetsigmaY (G4double val )
{ sigmaY = val;}
void HadrontherapyPrimaryGeneratorAction::SetsigmaZ (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetsigmaZ (G4double val )
{ sigmaZ = val;}
void HadrontherapyPrimaryGeneratorAction::SetsigmaMomentumY (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetsigmaMomentumY (G4double val )
{ sigmaMomentumY = val;}
void HadrontherapyPrimaryGeneratorAction::SetsigmaMomentumZ (G4double val )
void HadrontherapyPrimaryGeneratorAction::SetsigmaMomentumZ (G4double val )
{ sigmaMomentumZ = val;}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyPrimaryGeneratorMessenger.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -37,7 +41,6 @@
#include "HadrontherapyPrimaryGeneratorMessenger.hh"
#include "HadrontherapyPrimaryGeneratorAction.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4UIcmdWithADouble.hh"
@@ -45,6 +48,10 @@ HadrontherapyPrimaryGeneratorMessenger::HadrontherapyPrimaryGeneratorMessenger(
HadrontherapyPrimaryGeneratorAction* HadrontherapyGun)
:HadrontherapyAction(HadrontherapyGun)
{
//
// Definition of the interactive commands to modify the parameters of the
// generation of primary particles
//
beamParametersDir = new G4UIdirectory("/beam/");
beamParametersDir -> SetGuidance("set parameters of beam");
@@ -62,64 +69,59 @@ HadrontherapyPrimaryGeneratorMessenger::HadrontherapyPrimaryGeneratorMessenger(
sigmaMomentumYCmd -> SetParameterName("momentum",false);
sigmaMomentumYCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaMomentumZCmd = new G4UIcmdWithADouble("/beam/momentum/sigmaZ",this);
sigmaMomentumZCmd -> SetGuidance("set sigma momentum z");
sigmaMomentumZCmd -> SetParameterName("momentum",false);
sigmaMomentumZCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
meanKineticEnergyCmd = new G4UIcmdWithADoubleAndUnit("/beam/energy/meanEnergy",this);
meanKineticEnergyCmd->SetGuidance("set mean Kinetic energy");
meanKineticEnergyCmd->SetParameterName("Energy",false);
meanKineticEnergyCmd->SetDefaultUnit("MeV");
meanKineticEnergyCmd->SetUnitCandidates("eV keV MeV GeV TeV");
meanKineticEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
meanKineticEnergyCmd -> SetGuidance("set mean Kinetic energy");
meanKineticEnergyCmd -> SetParameterName("Energy",false);
meanKineticEnergyCmd -> SetDefaultUnit("MeV");
meanKineticEnergyCmd -> SetUnitCandidates("eV keV MeV GeV TeV");
meanKineticEnergyCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaEnergyCmd = new G4UIcmdWithADoubleAndUnit("/beam/energy/sigmaEnergy",this);
sigmaEnergyCmd->SetGuidance("set sigma energy");
sigmaEnergyCmd->SetParameterName("Energy",false);
sigmaEnergyCmd->SetDefaultUnit("keV");
sigmaEnergyCmd->SetUnitCandidates("eV keV MeV GeV TeV");
sigmaEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaEnergyCmd -> SetGuidance("set sigma energy");
sigmaEnergyCmd -> SetParameterName("Energy",false);
sigmaEnergyCmd -> SetDefaultUnit("keV");
sigmaEnergyCmd -> SetUnitCandidates("eV keV MeV GeV TeV");
sigmaEnergyCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
XpositionCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Xposition",this);
XpositionCmd->SetGuidance("set x coordinate of particle");
XpositionCmd->SetParameterName("position",false);
XpositionCmd->SetDefaultUnit("mm");
XpositionCmd->SetUnitCandidates("mm cm m");
XpositionCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
XpositionCmd -> SetGuidance("set x coordinate of particle");
XpositionCmd -> SetParameterName("position",false);
XpositionCmd -> SetDefaultUnit("mm");
XpositionCmd -> SetUnitCandidates("mm cm m");
XpositionCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
YpositionCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Yposition",this);
YpositionCmd->SetGuidance("set y coordinate of particle");
YpositionCmd->SetParameterName("position",false);
YpositionCmd->SetDefaultUnit("mm");
YpositionCmd->SetUnitCandidates("mm cm m");
YpositionCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
YpositionCmd -> SetGuidance("set y coordinate of particle");
YpositionCmd -> SetParameterName("position",false);
YpositionCmd -> SetDefaultUnit("mm");
YpositionCmd -> SetUnitCandidates("mm cm m");
YpositionCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaYCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Yposition/sigmaY",this);
sigmaYCmd->SetGuidance("set sigma y");
sigmaYCmd->SetParameterName("position",false);
sigmaYCmd->SetDefaultUnit("mm");
sigmaYCmd->SetUnitCandidates("mm cm m");
sigmaYCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaYCmd -> SetGuidance("set sigma y");
sigmaYCmd -> SetParameterName("position",false);
sigmaYCmd -> SetDefaultUnit("mm");
sigmaYCmd -> SetUnitCandidates("mm cm m");
sigmaYCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
ZpositionCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Zposition",this);
ZpositionCmd->SetGuidance("set z coordinate of particle");
ZpositionCmd->SetParameterName("position",false);
ZpositionCmd->SetDefaultUnit("mm");
ZpositionCmd->SetUnitCandidates("mm cm m");
ZpositionCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
ZpositionCmd -> SetGuidance("set z coordinate of particle");
ZpositionCmd -> SetParameterName("position",false);
ZpositionCmd -> SetDefaultUnit("mm");
ZpositionCmd -> SetUnitCandidates("mm cm m");
ZpositionCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaZCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Zposition/sigmaZ",this);sigmaZCmd->SetGuidance("set sigma z");
sigmaZCmd->SetParameterName("position",false);
sigmaZCmd->SetDefaultUnit("mm");
sigmaZCmd->SetUnitCandidates("mm cm m");
sigmaZCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
sigmaZCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Zposition/sigmaZ",this);
sigmaZCmd -> SetGuidance("set sigma z");
sigmaZCmd -> SetParameterName("position",false);
sigmaZCmd -> SetDefaultUnit("mm");
sigmaZCmd -> SetUnitCandidates("mm cm m");
sigmaZCmd -> AvailableForStates(G4State_PreInit,G4State_Idle);
}
HadrontherapyPrimaryGeneratorMessenger::~HadrontherapyPrimaryGeneratorMessenger()
@@ -143,35 +145,35 @@ void HadrontherapyPrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command,G4
{
if ( command == meanKineticEnergyCmd )
{ HadrontherapyAction -> SetmeanKineticEnergy(meanKineticEnergyCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == sigmaEnergyCmd )
{ HadrontherapyAction -> SetsigmaEnergy(sigmaEnergyCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == XpositionCmd )
{ HadrontherapyAction -> SetXposition(XpositionCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == YpositionCmd )
{ HadrontherapyAction -> SetYposition(YpositionCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == ZpositionCmd )
{ HadrontherapyAction -> SetZposition(ZpositionCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == sigmaYCmd )
{ HadrontherapyAction -> SetsigmaY(sigmaYCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == sigmaZCmd )
{ HadrontherapyAction -> SetsigmaZ(sigmaZCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == sigmaMomentumYCmd )
{ HadrontherapyAction -> SetsigmaMomentumY(sigmaMomentumYCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
if ( command == sigmaMomentumZCmd )
{ HadrontherapyAction -> SetsigmaMomentumZ(sigmaMomentumZCmd
->GetNewDoubleValue(newValue));}
-> GetNewDoubleValue(newValue));}
}
@@ -0,0 +1,292 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonBertini.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
// ----------------------------------------------------------------------------
// Code developed by:
//
// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a)
//
// (a) Laboratori Nazionali del Sud
// of the National Institute for Nuclear Physics, Catania, Italy
// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy
//
// * cirrone@lns.infn.it
// ----------------------------------------------------------------------------
#include "HadrontherapyProtonBertini.hh"
#include "G4ParticleDefinition.hh"
#include "G4ProcessManager.hh"
#include "G4ProcessVector.hh"
#include "G4ParticleTypes.hh"
#include "G4ParticleTable.hh"
#include "G4Material.hh"
#include "G4LElastic.hh"
#include "G4CascadeInterface.hh"
#include "G4PionPlusInelasticProcess.hh"
#include "G4LEPionPlusInelastic.hh"
#include "G4LEPionMinusInelastic.hh"
#include "G4HEPionPlusInelastic.hh"
#include "G4HEPionMinusInelastic.hh"
#include "G4PionMinusInelasticProcess.hh"
#include "G4LEPionMinusInelastic.hh"
#include "G4HEPionMinusInelastic.hh"
#include "G4PiMinusAbsorptionAtRest.hh"
#include "G4AntiProtonInelasticProcess.hh"
#include "G4LEAntiProtonInelastic.hh"
#include "G4HEAntiProtonInelastic.hh"
#include "G4AntiProtonAnnihilationAtRest.hh"
//
// BERTINI PHYSICS LIST
//
// BERTINI FOR PROTONS, NEUTRONS AND PIONS
//
// LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV
// FOR DEUTERON, TRITON, HE3, ALPHA
//
// FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV
//
HadrontherapyProtonBertini::HadrontherapyProtonBertini(const G4String& name):
G4VPhysicsConstructor(name)
{
G4cout << "The Bertini model is set for protons, neutrons and pions !!!!" << G4endl;
// Inelastic process, energy limits
//
// The Bertini model is set for protons, neutrons and pions
// This model contains a pre-equilibrium model and a de-excitation model
// Energy limit of the Bertini model
bertiniLowLimit = 0.*MeV;
bertiniHighLimit = 300.*MeV;
// Energy limit of the neutron fission and capture
neutronLowLimit = 0.*TeV;
neutronHighLimit = 100.*TeV;
// Ions:
// The inelastic scattering is modelled with LEP model up to 100 MeV,
// then Binary Ion Model
// Energy limit of the LEP model for ions
LEPHighLimit = 100.*MeV;
// Energy limit of the binary ion model
binaryLightIonLowLimit = 80.*MeV;
binaryLightIonHighLimit = 40.*GeV;
}
HadrontherapyProtonBertini::~HadrontherapyProtonBertini()
{}
void HadrontherapyProtonBertini::ConstructProcess()
{
G4ParticleDefinition* particle = 0;
G4ProcessManager* pmanager = 0;
// LOW ENERGY ELASTIC SCATTERING
// FOR PROTON, NEUTRON, IONS
G4LElastic* elastic_model = new G4LElastic();
G4HadronElasticProcess* elastic_scattering = new G4HadronElasticProcess();
elastic_scattering -> RegisterMe(elastic_model);
// INELASTIC SCATTERING
// Bertini Model for protons, pions and neutrons
G4CascadeInterface * theBertiniModel = new G4CascadeInterface;
// Set the min and max energy for the Bertini Model
theBertiniModel -> SetMinEnergy(bertiniLowLimit);
theBertiniModel -> SetMaxEnergy(bertiniHighLimit);
// Binary Cascade for deuteron, triton, alpha particle, He3
G4BinaryLightIonReaction* theBinaryCascade = new G4BinaryLightIonReaction();
// Set the min and max energy for the Binary Cascade
theBinaryCascade -> SetMinEnergy(binaryLightIonLowLimit);
theBinaryCascade -> SetMaxEnergy(binaryLightIonHighLimit);
// TRIPATHI CROSS SECTION
// Implementation of formulas in analogy to NASA technical paper 3621 by
// Tripathi, et al. Cross-sections for ion ion scattering
G4TripathiCrossSection* TripathiCrossSection = new G4TripathiCrossSection;
// IONS SHEN CROSS SECTION
// Implementation of formulas
// Shen et al. Nuc. Phys. A 491 130 (1989)
// Total Reaction Cross Section for Heavy-Ion Collisions
G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection;
//--------------------------------------------------------------------------------------
// Proton BERTINI MODEL
particle = G4Proton::Proton();
pmanager = particle -> GetProcessManager();
// Model Registration
theIPProton.RegisterMe(theBertiniModel);
// Active the Cross-sections for proton nuclear scattering up to 20 GeV
theIPProton.AddDataSet(&thePXSec);
// Active the proton inelastic scattering
pmanager -> AddDiscreteProcess(&theIPProton);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic_scattering);
// deuteron
particle = G4Deuteron::Deuteron();
pmanager = particle -> GetProcessManager();
// Final state production model for deuteron inelastic scattering below 100 MeV
G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic;
// Set the maximum energy for LEP model
theDIModel -> SetMaxEnergy(LEPHighLimit);
// Active the Tripathi and aShen Cross Section
theIPdeuteron.AddDataSet(TripathiCrossSection);
theIPdeuteron.AddDataSet(aShen);
// Register the Parameterised Deuteron Inelastic Model and the Ion Binary Cascade Model
theIPdeuteron.RegisterMe(theDIModel);
theIPdeuteron.RegisterMe(theBinaryCascade);
// Active the deuteron elastic and inelastic scattering
pmanager -> AddDiscreteProcess(&theIPdeuteron);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic_scattering);
// triton
particle = G4Triton::Triton();
pmanager = particle -> GetProcessManager();
// Final state production model for Triton inelastic scattering below 100 MeV
G4LETritonInelastic* theTIModel = new G4LETritonInelastic;
// Set the maximum energy for LEP model
theTIModel -> SetMaxEnergy(LEPHighLimit);
// Active the Tripathi and aShen Cross Section
theIPtriton.AddDataSet(TripathiCrossSection);
theIPtriton.AddDataSet(aShen);
// Register the Triton Inelastic and Binary Cascade Model
theIPtriton.RegisterMe(theTIModel);
theIPtriton.RegisterMe(theBinaryCascade);
// Active the triton inelastic scattering using the triton inelastic and binary cascade model
pmanager -> AddDiscreteProcess(&theIPtriton);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic_scattering);
// alpha
particle = G4Alpha::Alpha();
pmanager = particle->GetProcessManager();
// Final state production model for Alpha inelastic scattering below 20 GeV
G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic;
// Set the maximum energy for LEP model
theAIModel -> SetMaxEnergy(LEPHighLimit);
// Register the Triton Inelastic and Binary Cascade Model
theIPalpha.AddDataSet(TripathiCrossSection);
theIPalpha.AddDataSet(aShen);
// Register the Alpha Inelastic and Binary Cascade Model
theIPalpha.RegisterMe(theAIModel);
theIPalpha.RegisterMe(theBinaryCascade);
// Active the alpha inelastic scattering using the alpha inelastic and binary cascade model
pmanager -> AddDiscreteProcess(&theIPalpha);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic_scattering);
// He3
// particle = G4He3::He3();
// pmanager = particle->GetProcessManager();
// // Binary Cascade inelastic scattering for ions
// G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// // Inelastic Scattering for ions
// G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// // Active the Tripathi and aShen Cross Section
// theIPHe3 -> AddDataSet(TripathiCrossSection);
// theIPHe3 -> AddDataSet(aShen);
// // Register the Alpha Binary Cascade Model
// theIPHe3 -> RegisterMe(theGenIonBC);
// // Active the Inelastic Process for He3
// pmanager -> AddDiscreteProcess(theIPHe3);
// // Active the Hadron Elastic Process
// pmanager -> AddDiscreteProcess(elastic_scattering);
// Neutron processes
particle = G4Neutron::Neutron();
pmanager = particle->GetProcessManager();
// Register the Precompound model
theIPNeutron.RegisterMe(theBertiniModel);
// Active the Cross-sections for neutron nuclear scattering from 14 MeV up to 20 GeV
theIPNeutron.AddDataSet(&theNXSec);
// Active the neutron inelastic process
pmanager -> AddDiscreteProcess(&theIPNeutron);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic_scattering);
// Pions plus processes
particle = G4PionPlus::PionPlus();
pmanager = particle -> GetProcessManager();
// Define the inelastic process for pions plus
G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic");
// Register the Low Energy Inelastic Model for pions plus
thePionPlusInelasticProcess -> RegisterMe(theBertiniModel);
// Active the inelastic process for pions plus
pmanager->AddDiscreteProcess(thePionPlusInelasticProcess);
pmanager -> AddDiscreteProcess(elastic_scattering);
// Pion Minus processes
particle = G4PionMinus::PionMinus();
pmanager = particle -> GetProcessManager();
// Define the inelastic process for pions minus
G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic");
// Register the inelastic model for pion minus
thePionMinusInelasticProcess -> RegisterMe(theBertiniModel);
// Active the inelastic process for pion minus
pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess);
// Active Absorption process for pion minus
pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault);
pmanager -> AddDiscreteProcess(elastic_scattering);
//HADRON CAPTURE
// Process for capture of neutral hadrons
G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess();
// Final state production model for capture of neutral hadrons in nuclei
G4LCapture* capture_model = new G4LCapture();
// Set the energy range for the capture model
capture_model -> SetMinEnergy(neutronLowLimit);
capture_model -> SetMaxEnergy(neutronHighLimit);
// Register the capture model
neutronCapture -> RegisterMe(capture_model);
// Active the neutron capture process
pmanager -> AddDiscreteProcess(neutronCapture);
//FISSION
// Process for induced fission
G4HadronFissionProcess* fission = new G4HadronFissionProcess();
//Final state production model for induced fission
G4LFission* fission_model = new G4LFission();
// Set the energy range for the fission model
fission_model -> SetMinEnergy(neutronLowLimit);
fission_model -> SetMaxEnergy(neutronHighLimit);
// Register the fission model
fission -> RegisterMe(fission_model);
// Active the fission process
pmanager -> AddDiscreteProcess(fission);
}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonBinary.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -61,12 +65,12 @@
// BINARY + PRECOMPOUND PHYSICS LIST
//
// BINARY + PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION) NO FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS
// BINARY + PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION) FOR PROTONS, NEUTRONS AND PIONS
//
// LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV
// FOR DEUTERON, TRITON, HE3, ALPHA
//
//FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV
// FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV
//
HadrontherapyProtonBinary::HadrontherapyProtonBinary(const G4String& name):
G4VPhysicsConstructor(name)
@@ -77,7 +81,7 @@ HadrontherapyProtonBinary::HadrontherapyProtonBinary(const G4String& name):
LEPHighLimit = 100.*MeV;
// Energy limits for protons, neutrons and pions
precompoundLowLimit = 100.*MeV;
precompoundLowLimit = 0.*MeV;
precompoundHighLimit = 300.*MeV;
neutronLowLimit = 0.*TeV;
neutronHighLimit = 100.*TeV;
@@ -250,16 +254,16 @@ void HadrontherapyProtonBinary::ConstructProcess()
/////////////////////////////////////////////////////////////////////////////
// He3
particle = G4He3::He3();
pmanager = particle->GetProcessManager();
G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
G4HadronInelasticProcess* theIPHe3 =
new G4HadronInelasticProcess("He3Inelastic",particle);
theIPHe3 -> AddDataSet(TripathiCrossSection);
theIPHe3 -> AddDataSet(aShen);
theIPHe3 -> RegisterMe(theGenIonBC);
pmanager -> AddDiscreteProcess(theIPHe3);
pmanager -> AddDiscreteProcess(elastic); //ELASTIC SCATTERING
// particle = G4He3::He3();
// pmanager = particle->GetProcessManager();
// G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// G4HadronInelasticProcess* theIPHe3 =
// new G4HadronInelasticProcess("He3Inelastic",particle);
// theIPHe3 -> AddDataSet(TripathiCrossSection);
// theIPHe3 -> AddDataSet(aShen);
// theIPHe3 -> RegisterMe(theGenIonBC);
// pmanager -> AddDiscreteProcess(theIPHe3);
// pmanager -> AddDiscreteProcess(elastic); //ELASTIC SCATTERING
}
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonPrecompound.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -51,7 +55,6 @@
#include "G4TripathiCrossSection.hh"
#include "G4IonsShenCrossSection.hh"
#include "G4HadronInelasticProcess.hh"
#include "G4BinaryLightIonReaction.hh"
#include "G4LEDeuteronInelastic.hh"
#include "G4DeuteronInelasticProcess.hh"
#include "G4TritonInelasticProcess.hh"
@@ -62,23 +65,27 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4ProtonInelasticCrossSection.hh"
#include "G4HadronCaptureProcess.hh"
#include "G4BinaryLightIonReaction.hh"
#include "G4HadronInelasticProcess.hh"
//
// PRECOMPOUND PHYSICS LIST
//
// PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION) NO FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS
// PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION) FOR PROTONS, NEUTRONS AND PIONS
//
// LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV
// FOR DEUTERON, TRITON, HE3, ALPHA
// LEP MODEL UP TO 200 MEV
//
//FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV
// FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV
//
HadrontherapyProtonPrecompound::HadrontherapyProtonPrecompound(const G4String& name):
G4VPhysicsConstructor(name)
{
// Inelastic process, energy limits
G4cout<<"****** Proton Precompound Physics List is active !!!!!! ******"
<<G4endl;
// Inelastic hadronic process: energy limits
// Protons, neutrons and pions
// Energy limit of the precompound model
// Energy limits of the precompound model
precompoundLowLimit = 0.*MeV;
precompoundHighLimit = 300.*MeV;
@@ -86,13 +93,10 @@ HadrontherapyProtonPrecompound::HadrontherapyProtonPrecompound(const G4String& n
neutronLowLimit = 0.*TeV;
neutronHighLimit = 100.*TeV;
// Ions
// Energy limit of the binary ion model
binaryLightIonLowLimit = 80.*MeV;
binaryLightIonHighLimit = 40.*GeV;
// Ions
// Energy limit of the LEP model for ions
LEPHighLimit = 100.*MeV;
LEPHighLimit = 200.*MeV;
}
HadrontherapyProtonPrecompound::~HadrontherapyProtonPrecompound()
@@ -100,21 +104,14 @@ HadrontherapyProtonPrecompound::~HadrontherapyProtonPrecompound()
void HadrontherapyProtonPrecompound::ConstructProcess()
{
G4ParticleDefinition* particle = 0;
G4ProcessManager* pmanager = 0;
G4ParticleDefinition* particle = 0;
G4ProcessManager* pmanager = 0;
// LOW ENERGY ELASTIC SCATTERING
// ELASTIC SCATTERING
// FOR PROTON, NEUTRON, IONS
G4LElastic* elastic_Model = new G4LElastic();
G4HadronElasticProcess* elastic = new G4HadronElasticProcess();
elastic -> RegisterMe(elastic_Model);
// INELASTIC SCATTERING
// Binary Cascade
G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction();
// Set the min and max energy for the Binary Cascade
theBC -> SetMinEnergy(binaryLightIonLowLimit);
theBC -> SetMaxEnergy(binaryLightIonHighLimit);
G4LElastic* elasticScattering_model = new G4LElastic();
G4HadronElasticProcess* elastic_scattering = new G4HadronElasticProcess();
elastic_scattering -> RegisterMe(elasticScattering_model);
// TRIPATHI CROSS SECTION
// Implementation of formulas in analogy to NASA technical paper 3621 by
@@ -127,148 +124,189 @@ void HadrontherapyProtonPrecompound::ConstructProcess()
// Total Reaction Cross Section for Heavy-Ion Collisions
G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection;
//--------------------------------------------------------------------------------------
//------------------------------------------//
// Activate the hadronic physics processes //
//------------------------------------------//
// PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION)
////////////
// Proton //
////////////
// Proton PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION)+ FERMI BREAK-UP
particle = G4Proton::Proton();
pmanager = particle->GetProcessManager();
pmanager = particle -> GetProcessManager();
G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel(&theHandler);
// Set the range of minimum and maximum energy value
thePreEquilib -> SetMinEnergy(precompoundLowLimit);
thePreEquilib -> SetMaxEnergy(precompoundHighLimit);
// Model Registration
theIPProton.RegisterMe(thePreEquilib);
// Active the Cross-sections for proton nuclear scattering up to 20 GeV
theIPProton.AddDataSet(&thePXSec);
// Active the proton inelastic scattering using the precompound model
pmanager -> AddDiscreteProcess(&theIPProton);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
G4PreCompoundModel* preequilibriumModel = new G4PreCompoundModel(&theHandler);
// Set the minimum and maximum energy value of the pre-equilibrium model
preequilibriumModel -> SetMinEnergy(precompoundLowLimit);
preequilibriumModel -> SetMaxEnergy(precompoundHighLimit);
// Model Registration
protonInelasticProcess.RegisterMe(preequilibriumModel);
// Activate the cross-sections for proton nuclear scattering
protonInelasticProcess.AddDataSet(&protonInelasticCrossSection);
// Activate the proton inelastic scattering using the precompound model
pmanager -> AddDiscreteProcess(&protonInelasticProcess);
// Activate the proton elastic scattering
pmanager -> AddDiscreteProcess(elastic_scattering);
/////////////
// Neutron //
/////////////
particle = G4Neutron::Neutron();
pmanager = particle -> GetProcessManager();
// Register the Precompound model
neutronInelasticProcess.RegisterMe(preequilibriumModel);
// Activate the Cross-sections for neutron nuclear scattering
neutronInelasticProcess.AddDataSet(&neutronInelasticCrossSection);
// Activate the neutron inelastic process
pmanager -> AddDiscreteProcess(&neutronInelasticProcess);
// Activate the neutron elastic scattering
pmanager -> AddDiscreteProcess(elastic_scattering);
////////////////
// Pions plus //
////////////////
particle = G4PionPlus::PionPlus();
pmanager = particle -> GetProcessManager();
// Define the inelastic process for pions plus
G4PionPlusInelasticProcess* pionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic");
pionPlusInelasticProcess -> RegisterMe(preequilibriumModel);
// Active the inelastic process for pions plus
pmanager -> AddDiscreteProcess(pionPlusInelasticProcess);
pmanager -> AddDiscreteProcess(elastic_scattering);
////////////////
// Pion Minus //
///////////////
particle = G4PionMinus::PionMinus();
pmanager = particle -> GetProcessManager();
// Define the inelastic process for pions minus
G4PionMinusInelasticProcess* pionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic");
// Register the inelastic model for pion minus
pionMinusInelasticProcess -> RegisterMe(preequilibriumModel);
// Active the inelastic process for pion minus
pmanager -> AddDiscreteProcess(pionMinusInelasticProcess);
pmanager -> AddDiscreteProcess(elastic_scattering);
///////////////
// Deuteron //
//////////////
// deuteron
particle = G4Deuteron::Deuteron();
pmanager = particle -> GetProcessManager();
// Final state production model for Deuteron inelastic scattering below 100 MeV
G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic;
// Set the maximum energy for LEP model
theDIModel -> SetMaxEnergy(LEPHighLimit);
// Active the Tripathi and aShen Cross Section
theIPdeuteron.AddDataSet(TripathiCrossSection);
theIPdeuteron.AddDataSet(aShen);
// Register the Deuteron Inelastic and Binary Cascade Model
theIPdeuteron.RegisterMe(theDIModel);
theIPdeuteron.RegisterMe(theBC);
// Active the deuteron inelastic scattering using the deuteron inelastic and binary cascade model
pmanager -> AddDiscreteProcess(&theIPdeuteron);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// Final state production model for Deuteron inelastic scattering below 100 MeV
G4LEDeuteronInelastic* deuteronLEModel = new G4LEDeuteronInelastic;
// Set the maximum energy for LEP model
deuteronLEModel -> SetMaxEnergy(LEPHighLimit);
// triton
particle = G4Triton::Triton();
pmanager = particle->GetProcessManager();
// Active the Tripathi and aShen Cross Section
deuteronInelasticProcess.AddDataSet(TripathiCrossSection);
deuteronInelasticProcess.AddDataSet(aShen);
// Register the deuteron inelastic scattering models
deuteronInelasticProcess.RegisterMe(deuteronLEModel);
// Final state production model for Triton inelastic scattering below 100 MeV
G4LETritonInelastic* theTIModel = new G4LETritonInelastic;
// Set the maximum energy for LEP model
theTIModel -> SetMaxEnergy(LEPHighLimit);
// Active the Tripathi and aShen Cross Section
theIPtriton.AddDataSet(TripathiCrossSection);
theIPtriton.AddDataSet(aShen);
// Register the Triton Inelastic and Binary Cascade Model
theIPtriton.RegisterMe(theTIModel);
theIPtriton.RegisterMe(theBC);
// Active the triton inelastic scattering using the triton inelastic and binary cascade model
pmanager -> AddDiscreteProcess(&theIPtriton);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// Active the deuteron inelastic scattering using the deuteron inelastic and binary cascade model
pmanager -> AddDiscreteProcess(&deuteronInelasticProcess);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic_scattering);
// alpha
////////////
// Triton //
////////////
particle = G4Triton::Triton();
pmanager = particle -> GetProcessManager();
// Final state production model for Triton inelastic scattering below 100 MeV
G4LETritonInelastic* tritonLEModel = new G4LETritonInelastic;
// Set the maximum energy for LEP model
tritonLEModel -> SetMaxEnergy(LEPHighLimit);
// Active the Tripathi and aShen Cross Section
tritonInelasticProcess.AddDataSet(TripathiCrossSection);
tritonInelasticProcess.AddDataSet(aShen);
// Register the triton inelastic scattering models
tritonInelasticProcess.RegisterMe(tritonLEModel);
// Active the triton inelastic scattering process
pmanager -> AddDiscreteProcess(&tritonInelasticProcess);
// Active the triton elastic scattering process
pmanager -> AddDiscreteProcess(elastic_scattering);
///////////
// Alpha //
//////////
particle = G4Alpha::Alpha();
pmanager = particle->GetProcessManager();
// Final state production model for Alpha inelastic scattering below 20 GeV
G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic;
// Set the maximum energy for LEP model
theAIModel -> SetMaxEnergy(LEPHighLimit);
// Register the Triton Inelastic and Binary Cascade Model
theIPalpha.AddDataSet(TripathiCrossSection);
theIPalpha.AddDataSet(aShen);
// Register the Alpha Inelastic and Binary Cascade Model
theIPalpha.RegisterMe(theAIModel);
theIPalpha.RegisterMe(theBC);
// Active the alpha inelastic scattering using the alpha inelastic and binary cascade model
pmanager -> AddDiscreteProcess(&theIPalpha);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
pmanager = particle -> GetProcessManager();
// Final state production model for Alpha inelastic scattering below 20 GeV
G4LEAlphaInelastic* alphaLEModel = new G4LEAlphaInelastic;
// Set the maximum energy for LEP model
alphaLEModel -> SetMaxEnergy(LEPHighLimit);
// Register the alpha inelastic scattering models
alphaInelasticProcess.AddDataSet(TripathiCrossSection);
alphaInelasticProcess.AddDataSet(aShen);
// Register the alpha inelastic scattering models
alphaInelasticProcess.RegisterMe(alphaLEModel);
// Active the alpha inelastic scattering
pmanager -> AddDiscreteProcess(&alphaInelasticProcess);
// Active the alpha elastic scattering
pmanager -> AddDiscreteProcess(elastic_scattering);
// He3
particle = G4He3::He3();
pmanager = particle->GetProcessManager();
// Binary Cascade inelastic scattering for ions
G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// Inelastic Scattering for ions
G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// Active the Tripathi and aShen Cross Section
theIPHe3 -> AddDataSet(TripathiCrossSection);
theIPHe3 -> AddDataSet(aShen);
// Register the Alpha Binary Cascade Model
theIPHe3 -> RegisterMe(theGenIonBC);
// Active the Inelastic Process for He3
pmanager -> AddDiscreteProcess(theIPHe3);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// Neutron
particle = G4Neutron::Neutron();
pmanager = particle->GetProcessManager();
// Register the Precompound model
theIPNeutron.RegisterMe(thePreEquilib);
// Active the Cross-sections for neutron nuclear scattering from 14 MeV up to 20 GeV
theIPNeutron.AddDataSet(&theNXSec);
// Active the neutron inelastic process
pmanager -> AddDiscreteProcess(&theIPNeutron);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// Pions plus
particle = G4PionPlus::PionPlus();
pmanager = particle -> GetProcessManager();
// Define the inelastic process for pions plus
G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic");
// Register the Low Energy Inelastic Model for pions plus
thePionPlusInelasticProcess -> RegisterMe(thePreEquilib);
// Active the inelastic process for pions plus
pmanager->AddDiscreteProcess(thePionPlusInelasticProcess);
pmanager -> AddDiscreteProcess(elastic);
// particle = G4He3::He3();
// G4HadronInelasticProcess* He3inelasticProcess =
//new G4HadronInelasticProcess("He3Inelastic",particle);
//G4BinaryLightIonReaction * ionBinaryCascade= new G4BinaryLightIonReaction;
//He3inelasticProcess -> AddDataSet(TripathiCrossSection);
//He3inelasticProcess -> AddDataSet(aShen);
//He3inelasticProcess -> RegisterMe(ionBinaryCascade);
//pmanager = particle -> GetProcessManager();
//pmanager -> AddDiscreteProcess(He3inelasticProcess);
//pmanager -> AddDiscreteProcess(elastic_scattering);
////////////////////
// HADRON CAPTURE //
////////////////////
// Pion Minus
particle = G4PionMinus::PionMinus();
pmanager = particle -> GetProcessManager();
// Define the inelastic process for pions minus
G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic");
// Register the inelastic model for pion minus
thePionMinusInelasticProcess -> RegisterMe(thePreEquilib);
// Active the inelastic process for pion minus
pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess);
// Active Absorption process for pion minus
pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault);
pmanager -> AddDiscreteProcess(elastic);
//HADRON CAPTURE
// Process for capture of neutral hadrons
G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess();
// Final state production model for capture of neutral hadrons in nuclei
G4LCapture* capture_model = new G4LCapture();
// Set the energy range for the capture model
capture_model -> SetMinEnergy(neutronLowLimit);
capture_model -> SetMaxEnergy(neutronHighLimit);
// Register the capture model
neutronCapture -> RegisterMe(capture_model);
// Active the neutron capture process
// Active the capture process
pmanager -> AddDiscreteProcess(neutronCapture);
//FISSION
//////////////
// FISSION //
/////////////
// Process for induced fission
G4HadronFissionProcess* fission = new G4HadronFissionProcess();
//Final state production model for induced fission
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonPrecompoundFermi.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -215,21 +219,21 @@ void HadrontherapyProtonPrecompoundFermi::ConstructProcess()
pmanager -> AddDiscreteProcess(elastic);
// He3
particle = G4He3::He3();
pmanager = particle->GetProcessManager();
// Binary Cascade inelastic scattering for ions
G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// Inelastic Scattering for ions
G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// Active the Tripathi and aShen Cross Section
theIPHe3 -> AddDataSet(TripathiCrossSection);
theIPHe3 -> AddDataSet(aShen);
// Register the Alpha Binary Cascade Model
theIPHe3 -> RegisterMe(theGenIonBC);
// Active the Inelastic Process for He3
pmanager -> AddDiscreteProcess(theIPHe3);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// particle = G4He3::He3();
// pmanager = particle->GetProcessManager();
// // Binary Cascade inelastic scattering for ions
// G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// // Inelastic Scattering for ions
// G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// // Active the Tripathi and aShen Cross Section
// theIPHe3 -> AddDataSet(TripathiCrossSection);
// theIPHe3 -> AddDataSet(aShen);
// // Register the Alpha Binary Cascade Model
// theIPHe3 -> RegisterMe(theGenIonBC);
// // Active the Inelastic Process for He3
// pmanager -> AddDiscreteProcess(theIPHe3);
// // Active the Hadron Elastic Process
// pmanager -> AddDiscreteProcess(elastic);
// Neutron
particle = G4Neutron::Neutron();
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonPrecompoundGEM.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -208,21 +212,21 @@ void HadrontherapyProtonPrecompoundGEM::ConstructProcess()
pmanager -> AddDiscreteProcess(elastic);
// He3
particle = G4He3::He3();
pmanager = particle->GetProcessManager();
// Binary Cascade inelastic scattering for ions
G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// Inelastic Scattering for ions
G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// Active the Tripathi and aShen Cross Section
theIPHe3 -> AddDataSet(TripathiCrossSection);
theIPHe3 -> AddDataSet(aShen);
// Register the Alpha Binary Cascade Model
theIPHe3 -> RegisterMe(theGenIonBC);
// Active the Inelastic Process for He3
pmanager -> AddDiscreteProcess(theIPHe3);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// particle = G4He3::He3();
// pmanager = particle->GetProcessManager();
// // Binary Cascade inelastic scattering for ions
// G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// // Inelastic Scattering for ions
// G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// // Active the Tripathi and aShen Cross Section
// theIPHe3 -> AddDataSet(TripathiCrossSection);
// theIPHe3 -> AddDataSet(aShen);
// // Register the Alpha Binary Cascade Model
// theIPHe3 -> RegisterMe(theGenIonBC);
// // Active the Inelastic Process for He3
// pmanager -> AddDiscreteProcess(theIPHe3);
// // Active the Hadron Elastic Process
// pmanager -> AddDiscreteProcess(elastic);
// Neutron
particle = G4Neutron::Neutron();
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonPrecompoundGEMFermi.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -221,21 +225,21 @@ void HadrontherapyProtonPrecompoundGEMFermi::ConstructProcess()
pmanager -> AddDiscreteProcess(elastic);
// He3
particle = G4He3::He3();
pmanager = particle->GetProcessManager();
// Binary Cascade inelastic scattering for ions
G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// Inelastic Scattering for ions
G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// Active the Tripathi and aShen Cross Section
theIPHe3 -> AddDataSet(TripathiCrossSection);
theIPHe3 -> AddDataSet(aShen);
// Register the Alpha Binary Cascade Model
theIPHe3 -> RegisterMe(theGenIonBC);
// Active the Inelastic Process for He3
pmanager -> AddDiscreteProcess(theIPHe3);
// Active the Hadron Elastic Process
pmanager -> AddDiscreteProcess(elastic);
// particle = G4He3::He3();
// pmanager = particle->GetProcessManager();
// // Binary Cascade inelastic scattering for ions
// G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction;
// // Inelastic Scattering for ions
// G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle);
// // Active the Tripathi and aShen Cross Section
// theIPHe3 -> AddDataSet(TripathiCrossSection);
// theIPHe3 -> AddDataSet(aShen);
// // Register the Alpha Binary Cascade Model
// theIPHe3 -> RegisterMe(theGenIonBC);
// // Active the Inelastic Process for He3
// pmanager -> AddDiscreteProcess(theIPHe3);
// // Active the Hadron Elastic Process
// pmanager -> AddDiscreteProcess(elastic);
// Neutron
particle = G4Neutron::Neutron();
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyRunAction.cc,v 3.0, September 2004;
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example
@@ -62,13 +66,13 @@ void HadrontherapyRunAction::BeginOfRunAction(const G4Run* aRun)
hadronic = 0;
}
void HadrontherapyRunAction::EndOfRunAction(const G4Run* aRun)
void HadrontherapyRunAction::EndOfRunAction(const G4Run*)
{
G4cout << " Summary of Run " << aRun -> GetRunID() <<" :"<< G4endl;
G4cout << "Number of electromagnetic processes of primary particles in the phantom:"
<< electromagnetic << G4endl;
G4cout << "Number of hadronic processes of primary particles in the phantom:"
<< hadronic << G4endl;
// G4cout << " Summary of Run " << aRun -> GetRunID() <<" :"<< G4endl;
//G4cout << "Number of electromagnetic processes of primary particles in the phantom:"
// << electromagnetic << G4endl;
//G4cout << "Number of hadronic processes of primary particles in the phantom:"
// << hadronic << G4endl;
}
void HadrontherapyRunAction::AddEMProcess()
{
@@ -1,24 +1,28 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HadrontherapyProtonSteppingAction.cc; May 2005
// ----------------------------------------------------------------------------
// GEANT 4 - Hadrontherapy example