Import Geant4 8.1.0 source tree
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user