Import Geant4 7.0.0 source tree
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
$Id: History,v 1.1 2004/12/13 16:38:53 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
Hadronic physics-list History
|
||||
-----------------------------
|
||||
This file should be used by the G4 example coordinator to briefly
|
||||
summarize all major modifications introduced in the code and keep
|
||||
track of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
13.12.2004, G.Cosmo - phys-lists-V06-02-00
|
||||
- Imported hadronic lists and electromagnetic lists from top-level.
|
||||
- Created.
|
||||
@@ -0,0 +1,34 @@
|
||||
$Id: History,v 1.1 2004/12/13 16:38:53 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
electromagnetic_lists History file
|
||||
----------------------------------
|
||||
|
||||
This file should be used by the G4 example coordinator to briefly
|
||||
summarize all major modifications introduced in the code and keep
|
||||
track of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
13-12-04 G.Cosmo (emphys-V06-02-03)
|
||||
- Moved from top-level to new structure.
|
||||
|
||||
06-12-04 V.Ivanchenko (emphys-V06-02-02)
|
||||
- Return back muon builder from 6.2 for the 7.0
|
||||
|
||||
06-12-04 V.Ivanchenko (emphys-V06-02-01)
|
||||
- Fix bug in SetCuts between runs
|
||||
|
||||
28-11-04 V.Ivanchenko (emphys-V06-02-00)
|
||||
- for muons instantiate processes only once
|
||||
- use ionIonisation for GenericIon, alpha, He3
|
||||
|
||||
28-05-04 V.Ivanchenko (emphys-V06-01-00)
|
||||
- first tag
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
$Id: README,v 1.1 2004/12/13 16:38:53 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
Electromagnetic PhysicsList
|
||||
---------------------------
|
||||
|
||||
The example of physics list for standard electromagnetic physics
|
||||
package is presented in the subdirectory
|
||||
|
||||
electromagnetic/standard
|
||||
|
||||
The corresponding files are PhysicsList.cc, .hh
|
||||
Physics list is equipped by the messenger, which allows to set
|
||||
cuts and to define modules of physics to be used.
|
||||
The following modules can be activated:
|
||||
|
||||
1. "standard" - (alternative) standard EM physics (current version)
|
||||
2. "standard70" - (alternative) standard EM physics (development version)
|
||||
3. "g4v52" - (alternative) standard EM physics (version G4 5.2p02)
|
||||
4. "high_energy" - add high energy processes
|
||||
5. "step_limit" - add step limit for charged particles
|
||||
6. "decay" - add list of default decays
|
||||
|
||||
To activate a specific module the UI command can be used:
|
||||
"/testem/phys/addPhysics title"
|
||||
By default "standard" module is loaded.
|
||||
|
||||
The PhysicsList options can be defined via G4EmProcessOptions
|
||||
class, the example of the usage is in the PhysicsList class
|
||||
|
||||
It is NOT assumed that files from this subdirectory will be
|
||||
compiled directly. User can copy or link these files to
|
||||
his/her application, to modify this example according to the
|
||||
particular application.
|
||||
|
||||
It is assumed that user will add modules to this PhysicsList.
|
||||
|
||||
This PhysicsList approach is used in tests of the standard
|
||||
electromagnetic package. Similar PhysicsLists can be found out
|
||||
in advance examples.
|
||||
|
||||
The direct test of this PhysicsList is performed in the example
|
||||
examples/extended/electromagnetic/TestEm2, TestEm9
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: DecaysBuilder.cc,v 1.1 2004/12/13 16:38:53 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: DecayBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DecaysBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4Decay.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
DecaysBuilder::DecaysBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
DecaysBuilder::~DecaysBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void DecaysBuilder::ConstructParticle()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void DecaysBuilder::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
|
||||
G4Decay* fDecayProcess = new G4Decay();
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if (fDecayProcess->IsApplicable(*particle)) {
|
||||
|
||||
// pmanager ->AddProcess(fDecayProcess);
|
||||
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
//pmanager ->SetProcessOrdering(fDecayProcess, idxPostStep);
|
||||
//pmanager ->SetProcessOrdering(fDecayProcess, idxAtRest);
|
||||
pmanager->AddProcess(fDecayProcess, 1,-1, 5);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: DecaysBuilder.hh,v 1.1 2004/12/13 16:38:53 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef DecaysBuilder_h
|
||||
#define DecaysBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class DecaysBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
DecaysBuilder(const G4String& name = "decays");
|
||||
virtual ~DecaysBuilder();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
DecaysBuilder & operator=(const DecaysBuilder &right);
|
||||
DecaysBuilder(const DecaysBuilder&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmHadronBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmHadronBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmHadronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MultipleScattering.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmHadronBuilder::G4EmHadronBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmHadronBuilder::~G4EmHadronBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmHadronBuilder::ConstructParticle()
|
||||
{
|
||||
G4Electron::Electron();
|
||||
G4Proton::Proton();
|
||||
G4GenericIon::GenericIon();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmHadronBuilder::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes
|
||||
theParticleIterator->reset();
|
||||
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
|
||||
if(particle->GetPDGMass() > 110.*MeV) {
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "GenericIon" || particleName == "alpha" || particleName == "He3") {
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2,2);
|
||||
|
||||
} else if ((!particle->IsShortLived()) &&
|
||||
(particle->GetPDGCharge() != 0.0) &&
|
||||
(particle->GetParticleName() != "chargedgeantino")) {
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering,-1,1,1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1,2,2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmHadronBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmHadronBuilder_h
|
||||
#define G4EmHadronBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmHadronBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmHadronBuilder(const G4String& name = "EM_stand_had");
|
||||
virtual ~G4EmHadronBuilder();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmHadronBuilder & operator=(const G4EmHadronBuilder &right);
|
||||
G4EmHadronBuilder(const G4EmHadronBuilder&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmHadronBuilder52.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmHadronBuilder52
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmHadronBuilder52.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MultipleScattering52.hh"
|
||||
|
||||
#include "G4hIonisation52.hh"
|
||||
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmHadronBuilder52::G4EmHadronBuilder52(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmHadronBuilder52::~G4EmHadronBuilder52()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmHadronBuilder52::ConstructParticle()
|
||||
{
|
||||
G4Electron::Electron();
|
||||
G4Proton::Proton();
|
||||
G4GenericIon::GenericIon();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmHadronBuilder52::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes
|
||||
theParticleIterator->reset();
|
||||
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
|
||||
if(particle->GetPDGMass() > 110.*MeV) {
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
|
||||
if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hIonisation52, -1, 1, 1);
|
||||
|
||||
} else if ((!particle->IsShortLived()) &&
|
||||
(particle->GetPDGCharge() != 0.0) &&
|
||||
(particle->GetParticleName() != "chargedgeantino")) {
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering52,-1,1,1);
|
||||
pmanager->AddProcess(new G4hIonisation52, -1,2,2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmHadronBuilder52.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmHadronBuilder52_h
|
||||
#define G4EmHadronBuilder52_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmHadronBuilder52 : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmHadronBuilder52(const G4String& name = "EM_stand_had");
|
||||
virtual ~G4EmHadronBuilder52();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmHadronBuilder52 & operator=(const G4EmHadronBuilder52 &right);
|
||||
G4EmHadronBuilder52(const G4EmHadronBuilder52&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmHighEnergyBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmHighEnergyBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmHighEnergyBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4AnnihiToMuPair.hh"
|
||||
#include "G4GammaConversionToMuons.hh"
|
||||
#include "G4eeToHadrons.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmHighEnergyBuilder::G4EmHighEnergyBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmHighEnergyBuilder::~G4EmHighEnergyBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmHighEnergyBuilder::ConstructParticle()
|
||||
{
|
||||
// Minimal set of particles
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmHighEnergyBuilder::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes for gamma
|
||||
G4ParticleDefinition* particle = G4Gamma::Gamma();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
pmanager->AddDiscreteProcess( new G4GammaConversionToMuons() );
|
||||
|
||||
// Add standard EM Processes for e+
|
||||
particle = G4Positron::Positron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
G4AnnihiToMuPair* eplusmumu = new G4AnnihiToMuPair();
|
||||
pmanager->AddDiscreteProcess( eplusmumu );
|
||||
|
||||
G4eeToHadrons* eplushadr = new G4eeToHadrons();
|
||||
pmanager->AddDiscreteProcess( eplushadr );
|
||||
|
||||
// Built-in biasing factor for cross secsions
|
||||
eplusmumu->SetCrossSecFactor(1.0);
|
||||
eplushadr->SetCrossSecFactor(1.0);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmHighEnergyBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmHighEnergyBuilder_h
|
||||
#define G4EmHighEnergyBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmHighEnergyBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmHighEnergyBuilder(const G4String& name = "EM_stan_HE");
|
||||
virtual ~G4EmHighEnergyBuilder();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmHighEnergyBuilder & operator=(const G4EmHighEnergyBuilder &right);
|
||||
G4EmHighEnergyBuilder(const G4EmHighEnergyBuilder&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmMuonBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmMuonBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmMuonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MultipleScattering.hh"
|
||||
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmMuonBuilder::G4EmMuonBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmMuonBuilder::~G4EmMuonBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmMuonBuilder::ConstructParticle()
|
||||
{
|
||||
// Minimal set of particles
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmMuonBuilder::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes for mu+
|
||||
const G4ParticleDefinition* particle = G4MuonPlus::MuonPlus();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2,2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1,3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-1,4);
|
||||
|
||||
|
||||
// Add standard EM Processes for mu-
|
||||
particle = G4MuonMinus::MuonMinus();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2,2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1,3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-1,4);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmMuonBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmMuonBuilder_h
|
||||
#define G4EmMuonBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmMuonBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmMuonBuilder(const G4String& name = "EM_stan_muons");
|
||||
virtual ~G4EmMuonBuilder();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmMuonBuilder & operator=(const G4EmMuonBuilder &right);
|
||||
G4EmMuonBuilder(const G4EmMuonBuilder&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,105 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmMuonBuilder52.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmMuonBuilder52
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmMuonBuilder52.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MultipleScattering52.hh"
|
||||
|
||||
#include "G4MuIonisation52.hh"
|
||||
#include "G4MuBremsstrahlung52.hh"
|
||||
#include "G4MuPairProduction52.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmMuonBuilder52::G4EmMuonBuilder52(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmMuonBuilder52::~G4EmMuonBuilder52()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmMuonBuilder52::ConstructParticle()
|
||||
{
|
||||
// Minimal set of particles
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmMuonBuilder52::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes for mu+
|
||||
const G4ParticleDefinition* particle = G4MuonPlus::MuonPlus();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1);
|
||||
pmanager->AddProcess(new G4MuIonisation52, -1, 2,2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3);
|
||||
pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4);
|
||||
|
||||
|
||||
// Add standard EM Processes for mu-
|
||||
particle = G4MuonMinus::MuonMinus();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1);
|
||||
pmanager->AddProcess(new G4MuIonisation52, -1, 2,2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3);
|
||||
pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmMuonBuilder52.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmMuonBuilder52_h
|
||||
#define G4EmMuonBuilder52_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmMuonBuilder52 : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmMuonBuilder52(const G4String& name = "EM_stan_muons");
|
||||
virtual ~G4EmMuonBuilder52();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmMuonBuilder52 & operator=(const G4EmMuonBuilder52 &right);
|
||||
G4EmMuonBuilder52(const G4EmMuonBuilder52&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmQEDBuilder.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmQEDBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmQEDBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4MultipleScattering.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmQEDBuilder::G4EmQEDBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmQEDBuilder::~G4EmQEDBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmQEDBuilder::ConstructParticle()
|
||||
{
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmQEDBuilder::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes for gamma
|
||||
G4ParticleDefinition* particle = G4Gamma::Gamma();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() );
|
||||
pmanager->AddDiscreteProcess( new G4ComptonScattering() );
|
||||
pmanager->AddDiscreteProcess( new G4GammaConversion() );
|
||||
|
||||
// Add standard EM Processes for e-
|
||||
particle = G4Electron::Electron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3);
|
||||
|
||||
// Add standard EM Processes for e+
|
||||
particle = G4Positron::Positron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmQEDBuilder.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmQEDBuilder_h
|
||||
#define G4EmQEDBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmQEDBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmQEDBuilder(const G4String& name = "EM_stan_QED");
|
||||
virtual ~G4EmQEDBuilder();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmQEDBuilder & operator=(const G4EmQEDBuilder &right);
|
||||
G4EmQEDBuilder(const G4EmQEDBuilder&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmQEDBuilder52.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmQEDBuilder52
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmQEDBuilder52.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4MultipleScattering52.hh"
|
||||
|
||||
#include "G4eIonisation52.hh"
|
||||
#include "G4eBremsstrahlung52.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmQEDBuilder52::G4EmQEDBuilder52(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmQEDBuilder52::~G4EmQEDBuilder52()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmQEDBuilder52::ConstructParticle()
|
||||
{
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmQEDBuilder52::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes for gamma
|
||||
G4ParticleDefinition* particle = G4Gamma::Gamma();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() );
|
||||
pmanager->AddDiscreteProcess( new G4ComptonScattering() );
|
||||
pmanager->AddDiscreteProcess( new G4GammaConversion() );
|
||||
|
||||
// Add standard EM Processes for e-
|
||||
particle = G4Electron::Electron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1);
|
||||
pmanager->AddProcess(new G4eIonisation52, -1, 2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3);
|
||||
|
||||
// Add standard EM Processes for e+
|
||||
particle = G4Positron::Positron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1);
|
||||
pmanager->AddProcess(new G4eIonisation52, -1, 2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmQEDBuilder52.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmQEDBuilder52_h
|
||||
#define G4EmQEDBuilder52_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmQEDBuilder52 : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmQEDBuilder52(const G4String& name = "EM_stan_QED");
|
||||
virtual ~G4EmQEDBuilder52();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmQEDBuilder52 & operator=(const G4EmQEDBuilder52 &right);
|
||||
G4EmQEDBuilder52(const G4EmQEDBuilder52&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmQEDBuilder70.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4EmQEDBuilder70
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4EmQEDBuilder70.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4MultipleScattering.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation70.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmQEDBuilder70::G4EmQEDBuilder70(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmQEDBuilder70::~G4EmQEDBuilder70()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmQEDBuilder70::ConstructParticle()
|
||||
{
|
||||
G4Gamma::Gamma();
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmQEDBuilder70::ConstructProcess()
|
||||
{
|
||||
// Add standard EM Processes for gamma
|
||||
G4ParticleDefinition* particle = G4Gamma::Gamma();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() );
|
||||
pmanager->AddDiscreteProcess( new G4ComptonScattering() );
|
||||
pmanager->AddDiscreteProcess( new G4GammaConversion() );
|
||||
|
||||
// Add standard EM Processes for e-
|
||||
particle = G4Electron::Electron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3);
|
||||
|
||||
// Add standard EM Processes for e+
|
||||
particle = G4Positron::Positron();
|
||||
pmanager = particle->GetProcessManager();
|
||||
|
||||
pmanager->AddProcess(new G4MultipleScattering, -1, 1,1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation70, 0,-1,4);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmQEDBuilder70.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4EmQEDBuilder70_h
|
||||
#define G4EmQEDBuilder70_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmQEDBuilder70 : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmQEDBuilder70(const G4String& name = "EM_stan_QED");
|
||||
virtual ~G4EmQEDBuilder70();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4EmQEDBuilder70 & operator=(const G4EmQEDBuilder70 &right);
|
||||
G4EmQEDBuilder70(const G4EmQEDBuilder70&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4StepLimiterBuilder.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4StepLimiterBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 24.11.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4StepLimiterBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4StepLimiterPerRegion.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4StepLimiterBuilder::G4StepLimiterBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
stepMax = new G4StepLimiterPerRegion();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4StepLimiterBuilder::~G4StepLimiterBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4StepLimiterBuilder::ConstructParticle()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4StepLimiterBuilder::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if (stepMax->IsApplicable(*particle) && !particle->IsShortLived()) {
|
||||
|
||||
pmanager->AddProcess(stepMax, -1,-1,6);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4StepLimiterBuilder.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4StepLimiterBuilder_h
|
||||
#define G4StepLimiterBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4StepLimiterPerRegion;
|
||||
|
||||
class G4StepLimiterBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4StepLimiterBuilder(const G4String& name = "stepLimiter");
|
||||
virtual ~G4StepLimiterBuilder();
|
||||
|
||||
public:
|
||||
// This method is dummy for physics
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4StepLimiterBuilder & operator=(const G4StepLimiterBuilder &right);
|
||||
G4StepLimiterBuilder(const G4StepLimiterBuilder&);
|
||||
|
||||
G4StepLimiterPerRegion* stepMax;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StepLimiterMessenger.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4StepLimiterMessenger.hh"
|
||||
|
||||
#include "G4StepLimiterPerRegion.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4StepLimiterMessenger::G4StepLimiterMessenger(G4StepLimiterPerRegion* stepM)
|
||||
:stepLimiter(stepM)
|
||||
{
|
||||
stepMaxCmd = new G4UIcmdWithADoubleAndUnit("/testem/stepMax",this);
|
||||
stepMaxCmd->SetGuidance("Set max allowed step length for the default region");
|
||||
stepMaxCmd->SetParameterName("mxStep",false);
|
||||
stepMaxCmd->SetRange("mxStep>0.");
|
||||
stepMaxCmd->SetUnitCategory("Length");
|
||||
stepMaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4StepLimiterMessenger::~G4StepLimiterMessenger()
|
||||
{
|
||||
delete stepMaxCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4StepLimiterMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
|
||||
{
|
||||
if (command == stepMaxCmd)
|
||||
{ stepLimiter->SetMaxStep(stepMaxCmd->GetNewDoubleValue(newValue));}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StepLimiterMessenger.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4StepLimiterMessenger_h
|
||||
#define G4StepLimiterMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class G4StepLimiterPerRegion;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4StepLimiterMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
G4StepLimiterMessenger(G4StepLimiterPerRegion*);
|
||||
~G4StepLimiterMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
G4StepLimiterPerRegion* stepLimiter;
|
||||
G4UIcmdWithADoubleAndUnit* stepMaxCmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StepLimiterPerRegion.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4StepLimiterPerRegion.hh"
|
||||
#include "G4StepLimiterMessenger.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4StepLimiterPerRegion::G4StepLimiterPerRegion(const G4String& processName)
|
||||
: G4VDiscreteProcess(processName),
|
||||
MaxChargedStep(DBL_MAX)
|
||||
{
|
||||
pMess = new G4StepLimiterMessenger(this);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4StepLimiterPerRegion::~G4StepLimiterPerRegion()
|
||||
{
|
||||
delete pMess;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4bool G4StepLimiterPerRegion::IsApplicable(const G4ParticleDefinition& particle)
|
||||
{
|
||||
return (particle.GetPDGCharge() != 0. && !(particle.IsShortLived()));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4StepLimiterPerRegion::SetMaxStep(G4double step)
|
||||
{
|
||||
MaxChargedStep = step;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4double G4StepLimiterPerRegion::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track&,
|
||||
G4double,
|
||||
G4ForceCondition* condition )
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
ProposedStep = MaxChargedStep;
|
||||
|
||||
return ProposedStep;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VParticleChange* G4StepLimiterPerRegion::PostStepDoIt(const G4Track& aTrack, const G4Step&)
|
||||
{
|
||||
aParticleChange.Initialize(aTrack);
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef StepMax_h
|
||||
#define StepMax_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
class G4StepLimiterMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4StepLimiterPerRegion : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
G4StepLimiterPerRegion(const G4String& processName = "UserMaxStep");
|
||||
~G4StepLimiterPerRegion();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
void SetMaxStep(G4double);
|
||||
|
||||
G4double GetMaxStep() {return MaxChargedStep;};
|
||||
|
||||
G4double PostStepGetPhysicalInteractionLength( const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
|
||||
|
||||
G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*)
|
||||
{return 0.;}; // it is not needed here !
|
||||
|
||||
private:
|
||||
|
||||
G4StepLimiterPerRegion & operator=(const G4StepLimiterPerRegion &right);
|
||||
G4StepLimiterPerRegion(const G4StepLimiterPerRegion&);
|
||||
|
||||
G4double MaxChargedStep;
|
||||
G4double ProposedStep;
|
||||
|
||||
G4StepLimiterMessenger* pMess;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ParticlesBuilder.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: ParticleBuilder
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "ParticlesBuilder.hh"
|
||||
|
||||
// Bosons
|
||||
#include "G4ChargedGeantino.hh"
|
||||
#include "G4Geantino.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4OpticalPhoton.hh"
|
||||
|
||||
// leptons
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4NeutrinoMu.hh"
|
||||
#include "G4AntiNeutrinoMu.hh"
|
||||
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
|
||||
// Mesons
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4PionZero.hh"
|
||||
#include "G4Eta.hh"
|
||||
#include "G4EtaPrime.hh"
|
||||
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4KaonZero.hh"
|
||||
#include "G4AntiKaonZero.hh"
|
||||
#include "G4KaonZeroLong.hh"
|
||||
#include "G4KaonZeroShort.hh"
|
||||
|
||||
// Baryons
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4Neutron.hh"
|
||||
#include "G4AntiNeutron.hh"
|
||||
|
||||
// Nuclei
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//#include "IonC12.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ParticlesBuilder::ParticlesBuilder(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ParticlesBuilder::~ParticlesBuilder()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ParticlesBuilder::ConstructParticle()
|
||||
{
|
||||
|
||||
// pseudo-particles
|
||||
G4Geantino::GeantinoDefinition();
|
||||
G4ChargedGeantino::ChargedGeantinoDefinition();
|
||||
|
||||
// gamma
|
||||
G4Gamma::GammaDefinition();
|
||||
|
||||
// optical photon
|
||||
G4OpticalPhoton::OpticalPhotonDefinition();
|
||||
|
||||
// leptons
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4MuonPlus::MuonPlusDefinition();
|
||||
G4MuonMinus::MuonMinusDefinition();
|
||||
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
G4NeutrinoMu::NeutrinoMuDefinition();
|
||||
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
|
||||
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4PionZero::PionZeroDefinition();
|
||||
G4Eta::EtaDefinition();
|
||||
G4EtaPrime::EtaPrimeDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
G4KaonZero::KaonZeroDefinition();
|
||||
G4AntiKaonZero::AntiKaonZeroDefinition();
|
||||
G4KaonZeroLong::KaonZeroLongDefinition();
|
||||
G4KaonZeroShort::KaonZeroShortDefinition();
|
||||
|
||||
// barions
|
||||
G4Proton::ProtonDefinition();
|
||||
G4AntiProton::AntiProtonDefinition();
|
||||
G4Neutron::NeutronDefinition();
|
||||
G4AntiNeutron::AntiNeutronDefinition();
|
||||
|
||||
// ions
|
||||
G4Deuteron::DeuteronDefinition();
|
||||
G4Triton::TritonDefinition();
|
||||
G4He3::He3Definition();
|
||||
G4Alpha::AlphaDefinition();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
// IonC12::IonDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ParticlesBuilder.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef ParticlesBuilder_h
|
||||
#define ParticlesBuilder_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class ParticlesBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
ParticlesBuilder(const G4String& name = "particles");
|
||||
virtual ~ParticlesBuilder();
|
||||
|
||||
public:
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method is dummy.
|
||||
virtual void ConstructProcess() {};
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,208 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsList.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: PhysicsList
|
||||
//
|
||||
// Author: V.Ivanchenko 03.05.2004
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PhysicsList.hh"
|
||||
#include "PhysicsListMessenger.hh"
|
||||
|
||||
#include "ParticlesBuilder.hh"
|
||||
#include "G4EmQEDBuilder.hh"
|
||||
#include "G4EmMuonBuilder.hh"
|
||||
#include "G4EmHadronBuilder.hh"
|
||||
#include "G4EmHighEnergyBuilder.hh"
|
||||
#include "G4EmQEDBuilder52.hh"
|
||||
#include "G4EmQEDBuilder70.hh"
|
||||
#include "G4EmMuonBuilder52.hh"
|
||||
#include "G4EmHadronBuilder52.hh"
|
||||
#include "G4StepLimiterBuilder.hh"
|
||||
#include "DecaysBuilder.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmProcessOptions.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsList::PhysicsList()
|
||||
: G4VModularPhysicsList()
|
||||
{
|
||||
emBuilderIsRegisted = false;
|
||||
decayIsRegisted = false;
|
||||
stepLimiterIsRegisted = false;
|
||||
heIsRegisted = false;
|
||||
verbose = 0;
|
||||
// G4LossTableManager::Instance()->SetVerbose(0);
|
||||
defaultCutValue = 1.*mm;
|
||||
cutForGamma = defaultCutValue;
|
||||
cutForElectron = defaultCutValue;
|
||||
cutForPositron = defaultCutValue;
|
||||
|
||||
pMessenger = new PhysicsListMessenger(this);
|
||||
|
||||
// Add Physics builders
|
||||
RegisterPhysics(new ParticlesBuilder());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsList::~PhysicsList()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::ConstructParticle()
|
||||
{
|
||||
if(verbose > 0)
|
||||
G4cout << "Construte Particles" << G4endl;
|
||||
G4VModularPhysicsList::ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::ConstructProcess()
|
||||
{
|
||||
if(verbose > 0)
|
||||
G4cout << "Construte Processes" << G4endl;
|
||||
if(!emBuilderIsRegisted) AddPhysicsList("standard");
|
||||
G4VModularPhysicsList::ConstructProcess();
|
||||
|
||||
// Define energy interval for loss processes
|
||||
G4EmProcessOptions emOptions;
|
||||
emOptions.SetMinEnergy(0.1*keV);
|
||||
emOptions.SetMaxEnergy(100.*GeV);
|
||||
emOptions.SetDEDXBinning(90);
|
||||
emOptions.SetLambdaBinning(90);
|
||||
emOptions.SetBuildPreciseRange(false);
|
||||
//emOptions.SetVerbose(0);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::AddPhysicsList(const G4String& name)
|
||||
{
|
||||
if(verbose > 0) {
|
||||
G4cout << "Add Physics <" << name
|
||||
<< "> emBuilderIsRegisted= " << emBuilderIsRegisted
|
||||
<< G4endl;
|
||||
}
|
||||
if ((name == "standard") && !emBuilderIsRegisted) {
|
||||
RegisterPhysics(new G4EmQEDBuilder());
|
||||
RegisterPhysics(new G4EmMuonBuilder());
|
||||
RegisterPhysics(new G4EmHadronBuilder());
|
||||
emBuilderIsRegisted = true;
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl;
|
||||
|
||||
} else if (name == "g4v52" && !emBuilderIsRegisted) {
|
||||
RegisterPhysics(new G4EmQEDBuilder52());
|
||||
RegisterPhysics(new G4EmMuonBuilder52());
|
||||
RegisterPhysics(new G4EmHadronBuilder52());
|
||||
emBuilderIsRegisted = true;
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl;
|
||||
|
||||
} else if (name == "standard70" && !emBuilderIsRegisted) {
|
||||
RegisterPhysics(new G4EmQEDBuilder70());
|
||||
RegisterPhysics(new G4EmMuonBuilder());
|
||||
RegisterPhysics(new G4EmHadronBuilder());
|
||||
emBuilderIsRegisted = true;
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl;
|
||||
|
||||
} else if (name == "step_limit" && !stepLimiterIsRegisted) {
|
||||
RegisterPhysics(new G4StepLimiterBuilder());
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl;
|
||||
|
||||
} else if (name == "decay" && !decayIsRegisted) {
|
||||
RegisterPhysics(new DecaysBuilder());
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl;
|
||||
|
||||
} else if (name == "high_energy" && !heIsRegisted) {
|
||||
RegisterPhysics(new G4EmHighEnergyBuilder());
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl;
|
||||
|
||||
} else {
|
||||
G4cout << "PhysicsList::AddPhysicsList <" << name << ">"
|
||||
<< " fail - module is already regitered or is unknown " << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::SetCuts()
|
||||
{
|
||||
|
||||
SetCutValue(cutForGamma, "gamma");
|
||||
SetCutValue(cutForElectron, "e-");
|
||||
SetCutValue(cutForPositron, "e+");
|
||||
|
||||
if (verbose>0) DumpCutValuesTable();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::SetVerbose(G4int val)
|
||||
{
|
||||
verbose = val;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::SetCutForGamma(G4double cut)
|
||||
{
|
||||
cutForGamma = cut;
|
||||
SetParticleCuts(cutForGamma, G4Gamma::Gamma());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::SetCutForElectron(G4double cut)
|
||||
{
|
||||
cutForElectron = cut;
|
||||
SetParticleCuts(cutForElectron, G4Electron::Electron());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::SetCutForPositron(G4double cut)
|
||||
{
|
||||
cutForPositron = cut;
|
||||
SetParticleCuts(cutForPositron, G4Positron::Positron());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsList.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef PhysicsList_h
|
||||
#define PhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class PhysicsListMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
PhysicsList();
|
||||
~PhysicsList();
|
||||
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
void SetCuts();
|
||||
|
||||
void SetCutForGamma(G4double);
|
||||
void SetCutForElectron(G4double);
|
||||
void SetCutForPositron(G4double);
|
||||
|
||||
void AddPhysicsList(const G4String&);
|
||||
void SetVerbose(G4int val);
|
||||
|
||||
private:
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForPositron;
|
||||
G4int verbose;
|
||||
G4bool emBuilderIsRegisted;
|
||||
G4bool decayIsRegisted;
|
||||
G4bool stepLimiterIsRegisted;
|
||||
G4bool heIsRegisted;
|
||||
|
||||
PhysicsListMessenger* pMessenger;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsListMessenger.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PhysicsListMessenger.hh"
|
||||
|
||||
#include "PhysicsList.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
|
||||
:pPhysicsList(pPhys)
|
||||
{
|
||||
physDir = new G4UIdirectory("/testem/phys/");
|
||||
physDir->SetGuidance("physics list commands");
|
||||
|
||||
gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this);
|
||||
gammaCutCmd->SetGuidance("Set gamma cut.");
|
||||
gammaCutCmd->SetParameterName("Gcut",false);
|
||||
gammaCutCmd->SetUnitCategory("Length");
|
||||
gammaCutCmd->SetRange("Gcut>0.0");
|
||||
gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
electCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setECut",this);
|
||||
electCutCmd->SetGuidance("Set electron cut.");
|
||||
electCutCmd->SetParameterName("Ecut",false);
|
||||
electCutCmd->SetUnitCategory("Length");
|
||||
electCutCmd->SetRange("Ecut>0.0");
|
||||
electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
protoCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this);
|
||||
protoCutCmd->SetGuidance("Set positron cut.");
|
||||
protoCutCmd->SetParameterName("Pcut",false);
|
||||
protoCutCmd->SetUnitCategory("Length");
|
||||
protoCutCmd->SetRange("Pcut>0.0");
|
||||
protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
allCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setCuts",this);
|
||||
allCutCmd->SetGuidance("Set cut for all.");
|
||||
allCutCmd->SetParameterName("cut",false);
|
||||
allCutCmd->SetUnitCategory("Length");
|
||||
allCutCmd->SetRange("cut>0.0");
|
||||
allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
pListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this);
|
||||
pListCmd->SetGuidance("Add modula physics list.");
|
||||
pListCmd->SetParameterName("PList",false);
|
||||
pListCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
verbCmd = new G4UIcmdWithAnInteger("/testem/phys/verbose",this);
|
||||
verbCmd->SetGuidance("Set verbose level for processes");
|
||||
verbCmd->SetParameterName("pVerb",false);
|
||||
verbCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsListMessenger::~PhysicsListMessenger()
|
||||
{
|
||||
delete gammaCutCmd;
|
||||
delete electCutCmd;
|
||||
delete protoCutCmd;
|
||||
delete allCutCmd;
|
||||
delete pListCmd;
|
||||
delete verbCmd;
|
||||
delete physDir;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsListMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
{
|
||||
if( command == gammaCutCmd )
|
||||
{ pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if( command == electCutCmd )
|
||||
{ pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if( command == protoCutCmd )
|
||||
{ pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if( command == allCutCmd )
|
||||
{
|
||||
G4double cut = allCutCmd->GetNewDoubleValue(newValue);
|
||||
pPhysicsList->SetCutForGamma(cut);
|
||||
pPhysicsList->SetCutForElectron(cut);
|
||||
pPhysicsList->SetCutForPositron(cut);
|
||||
}
|
||||
|
||||
if( command == verbCmd )
|
||||
{ G4LossTableManager::Instance()->SetVerbose(verbCmd->GetNewIntValue(newValue));}
|
||||
|
||||
if( command == pListCmd )
|
||||
{ pPhysicsList->AddPhysicsList(newValue);}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsListMessenger.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef PhysicsListMessenger_h
|
||||
#define PhysicsListMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class PhysicsList;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
PhysicsListMessenger(PhysicsList* );
|
||||
~PhysicsListMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
PhysicsList* pPhysicsList;
|
||||
|
||||
G4UIdirectory* physDir;
|
||||
G4UIcmdWithADoubleAndUnit* gammaCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* electCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* protoCutCmd;
|
||||
G4UIcmdWithADoubleAndUnit* allCutCmd;
|
||||
G4UIcmdWithAnInteger* verbCmd;
|
||||
G4UIcmdWithAString* pListCmd;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
name := FTFC
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TTFTFC_h
|
||||
#define TTFTFC_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TFTFC: public T
|
||||
{
|
||||
public:
|
||||
TFTFC();
|
||||
virtual ~TFTFC();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
};
|
||||
#include "FTFC.icc"
|
||||
|
||||
typedef TFTFC<G4VModularPhysicsList> FTFC;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsFTFC.hh"
|
||||
#include "HadronPhysicsFTFC.hh"
|
||||
|
||||
template<class T> TFTFC<T>::TFTFC(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: FTFC 2.8"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsFTFC("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TFTFC<T>::~TFTFC()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TFTFC<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "FTFC::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsFTFC_h
|
||||
#define HadronPhysicsFTFC_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LEPPiKBuilder.hh"
|
||||
#include "G4FTFCPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LEPProtonBuilder.hh"
|
||||
#include "G4FTFCProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LEPNeutronBuilder.hh"
|
||||
#include "G4FTFCNeutronBuilder.hh"
|
||||
|
||||
class HadronPhysicsFTFC : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsFTFC(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsFTFC();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LEPNeutronBuilder theLEPNeutron;
|
||||
G4FTFCNeutronBuilder theFTFCNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LEPPiKBuilder theLEPPiK;
|
||||
G4FTFCPiKBuilder theFTFCPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LEPProtonBuilder theLEPPro;
|
||||
G4FTFCProtonBuilder theFTFCPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The FTFC physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../FTFC.tar">here</a> to down-load the source code of FTFC
|
||||
Version 2.7
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3
|
||||
<hr><br>
|
||||
The FTFC physics list models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsFTFC.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsFTFC::HadronPhysicsFTFC(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theFTFCNeutron);
|
||||
theNeutrons.RegisterMe(&theLEPNeutron);
|
||||
theLEPNeutron.SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro.RegisterMe(&theFTFCPro);
|
||||
thePro.RegisterMe(&theLEPPro);
|
||||
theLEPPro.SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK.RegisterMe(&theFTFCPiK);
|
||||
thePiK.RegisterMe(&theLEPPiK);
|
||||
theLEPPiK.SetMaxEnergy(25*GeV);
|
||||
}
|
||||
|
||||
HadronPhysicsFTFC::~HadronPhysicsFTFC() {}
|
||||
|
||||
void HadronPhysicsFTFC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsFTFC::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,52 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=CENTER BGCOLOR="#FFF222">
|
||||
<h1><br>
|
||||
The @@@ physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP.tar">here</a> to down-load the source code of @@@ Version @.@
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 1.2
|
||||
<hr><br>
|
||||
The LHEP physics list models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,2 @@
|
||||
name := FTFP
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TFTFP_h
|
||||
#define TFTFP_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TFTFP: public T
|
||||
{
|
||||
public:
|
||||
TFTFP();
|
||||
virtual ~TFTFP();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
};
|
||||
#include "FTFP.icc"
|
||||
typedef TFTFP<G4VModularPhysicsList> FTFP;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsFTFP.hh"
|
||||
|
||||
template<class T> TFTFP<T>::TFTFP(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: FTFP 2.8"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsFTFP("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TFTFP<T>::~TFTFP()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TFTFP<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "FTFP::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsFTFP_h
|
||||
#define HadronPhysicsFTFP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LEPPiKBuilder.hh"
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LEPProtonBuilder.hh"
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LEPNeutronBuilder.hh"
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
|
||||
class HadronPhysicsFTFP : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsFTFP(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsFTFP();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LEPNeutronBuilder theLEPNeutron;
|
||||
G4FTFPNeutronBuilder theFTFPNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LEPPiKBuilder theLEPPiK;
|
||||
G4FTFPPiKBuilder theFTFPPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LEPProtonBuilder theLEPPro;
|
||||
G4FTFPProtonBuilder theFTFPPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The FTFP physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../FTFP.tar">here</a> to down-load the source code of FTFP
|
||||
Version 2.7
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3
|
||||
<hr><br>
|
||||
The FTFP physics list's models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsFTFP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsFTFP::HadronPhysicsFTFP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theFTFPNeutron);
|
||||
theNeutrons.RegisterMe(&theLEPNeutron);
|
||||
theLEPNeutron.SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro.RegisterMe(&theFTFPPro);
|
||||
thePro.RegisterMe(&theLEPPro);
|
||||
theLEPPro.SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK.RegisterMe(&theFTFPPiK);
|
||||
thePiK.RegisterMe(&theLEPPiK);
|
||||
theLEPPiK.SetMaxEnergy(25*GeV);
|
||||
}
|
||||
|
||||
HadronPhysicsFTFP::~HadronPhysicsFTFP() {}
|
||||
|
||||
void HadronPhysicsFTFP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsFTFP::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,15 @@
|
||||
# $Id: GNUmakefile,v 1.1 2004/12/13 16:38:57 gcosmo Exp $
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
SUBDIR1 = FTFC FTFP LBE LHEP LHEP_GN LHEP_HP LHEP_LEAD LHEP_LEAD_HP LHEP_PRECO QGSP_BERT
|
||||
SUBDIR2 = LHEP_PRECO_HP Packaging QGSC QGSC_LEAD QGSC_LEAD_HP QGSP QGSP_GN QGSP_HP LHEP_BERT LHEP_BERT_HP LHEP_BIC LHEP_BIC_HP QGSP_BIC
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all:
|
||||
@for dir in $(SUBDIR1); do (cd $$dir && $(MAKE)); done;:
|
||||
@for dir in $(SUBDIR2); do (cd $$dir && $(MAKE)); done;:
|
||||
|
||||
clean:
|
||||
@for dir in $(SUBDIR1); do (cd $$dir && $(MAKE) clean); done;:
|
||||
@for dir in $(SUBDIR2); do (cd $$dir && $(MAKE) clean); done;:
|
||||
@@ -0,0 +1,87 @@
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for physics list user.
|
||||
# JPW. Fri Jul 25 10:39:58 CEST 2003
|
||||
# --------------------------------------------------------------
|
||||
|
||||
name := MyMagicExecutable
|
||||
|
||||
G4TARGET := $(name)
|
||||
G4EXLIB := true
|
||||
|
||||
ifndef G4INSTALL
|
||||
G4INSTALL = ../..
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
#
|
||||
# define G4LISTS_BASE, if you have your own physics lists area installed point
|
||||
# G4LISTS_BASE to the directory, that contains the subdirectory 'hadronic'.
|
||||
#
|
||||
ifndef G4LISTS_BASE
|
||||
EXTRALIBS += -L$(G4LIB)/plists/$(G4SYSTEM)
|
||||
G4LISTS_BASE = $(G4INSTALL)/physics_lists
|
||||
else
|
||||
EXTRALIBS += -L$(G4LISTS_BASE)/hadronic/plists/lib/$(G4SYSTEM)
|
||||
endif
|
||||
|
||||
#
|
||||
# Select your physics lists to link against.
|
||||
#
|
||||
# EXTRALIBS += -lFTFC
|
||||
# EXTRALIBS += -lFTFP
|
||||
# EXTRALIBS += -lLBE
|
||||
# EXTRALIBS += -lLHEP
|
||||
# EXTRALIBS += -lLHEP_GN
|
||||
# EXTRALIBS += -lLHEP_HP
|
||||
# EXTRALIBS += -lLHEP_LEAD
|
||||
# EXTRALIBS += -lLHEP_BERT_HP
|
||||
# EXTRALIBS += -lLHEP_BIC_HP
|
||||
# EXTRALIBS += -lLHEP_LEAD_HP
|
||||
# EXTRALIBS += -lLHEP_PRECO
|
||||
# EXTRALIBS += -lQGSP_BERT
|
||||
# EXTRALIBS += -lLHEP_PRECO_HP
|
||||
# EXTRALIBS += -lQGSC
|
||||
# EXTRALIBS += -lQGSC_LEAD
|
||||
# EXTRALIBS += -lQGSC_LEAD_HP
|
||||
# EXTRALIBS += -lQGSP
|
||||
# EXTRALIBS += -lQGSP_GN
|
||||
# EXTRALIBS += -lQGSP_HP
|
||||
# EXTRALIBS += -lLHEP_BERT
|
||||
# EXTRALIBS += -lLHEP_BIC
|
||||
# EXTRALIBS += -lQGSP_BIC
|
||||
# EXTRALIBS += -lPackaging
|
||||
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFC/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LBE/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_GN/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_HP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT_HP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC_HP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD_HP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO_HP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/Packaging/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD_HP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BERT/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BIC/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_GN/include
|
||||
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_HP/include
|
||||
|
||||
.PHONY: all
|
||||
|
||||
all: lib bin
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS))
|
||||
CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O))
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
$Id: History,v 1.2 2004/12/13 16:55:01 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
Hadronic physics-list History
|
||||
-----------------------------
|
||||
This file should be used by the G4 example coordinator to briefly
|
||||
summarize all major modifications introduced in the code and keep
|
||||
track of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
13.12.2004, G.Cosmo - ghad-lists-V06-02-03
|
||||
- Imported lists from top-level directory.
|
||||
|
||||
10.12.2004, G.Cosmo - ghad-lists-V06-02-02
|
||||
- Removed debug printout in G4HadronQEDBuilder.hh.
|
||||
|
||||
07.12.2004, M.Kossov - ghad-lists-V06-02-01
|
||||
- Added to build missing LHEP_BERT_HP & LHEP_BIC_HP lists.
|
||||
- Implemented migration to G4VParticleChange.
|
||||
|
||||
14.07.2004, G.Cosmo - ghad-lists-V06-02-00
|
||||
- Corrected example GNUmakefile to remove unnecessary addition of
|
||||
kernel libraries from EXTRALIBS.
|
||||
|
||||
25.04.2004, G.Cosmo - ghad-lists-V06-00-00
|
||||
- Updated lists to package 4.1 (H.P.Wellisch).
|
||||
|
||||
05.12.2003, G.Cosmo - ghad-lists-V05-02-01
|
||||
- Changed LISTS_BASE to G4LISTS_BASE.
|
||||
|
||||
04.12.2003, G.Cosmo - ghad-lists-V05-02-00
|
||||
- Corrected installation setup to point to default build area if
|
||||
LISTS_BASE is not defined.
|
||||
|
||||
03.12.2003, H.P.Wellisch
|
||||
- Imported hadronic physics lists from development branch.
|
||||
- Created.
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LBE
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,112 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Underground Dark Matter Detector Advanced Example
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// Underground Advanced
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// PhysicsList header
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#ifndef TLBE_h
|
||||
#define TLBE_h 1
|
||||
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
template<class T>
|
||||
class TLBE: public T
|
||||
{
|
||||
public:
|
||||
TLBE();
|
||||
~TLBE();
|
||||
// virtual ~TLBE();
|
||||
|
||||
|
||||
public:
|
||||
virtual void SetCuts();
|
||||
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
|
||||
protected:
|
||||
// Construct particle and physics
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
// these methods Construct physics processes and register them
|
||||
virtual void ConstructGeneral();
|
||||
virtual void ConstructEM();
|
||||
virtual void ConstructHad();
|
||||
virtual void ConstructOp();
|
||||
|
||||
|
||||
/*
|
||||
// these methods Construct all particles in each category
|
||||
virtual void ConstructAllBosons();
|
||||
virtual void ConstructAllLeptons();
|
||||
virtual void ConstructAllMesons();
|
||||
virtual void ConstructAllBaryons();
|
||||
virtual void ConstructAllIons();
|
||||
virtual void ConstructAllShortLiveds();
|
||||
*/
|
||||
|
||||
virtual void AddTransportation();
|
||||
|
||||
private:
|
||||
G4int VerboseLevel;
|
||||
G4int OpVerbLevel;
|
||||
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForPositron;
|
||||
G4double cutForProton;
|
||||
G4double cutForAlpha;
|
||||
G4double cutForGenericIon;
|
||||
|
||||
// these methods Construct particles
|
||||
void ConstructMyBosons();
|
||||
void ConstructMyLeptons();
|
||||
void ConstructMyMesons();
|
||||
void ConstructMyBaryons();
|
||||
void ConstructMyIons();
|
||||
void ConstructMyShortLiveds();
|
||||
|
||||
};
|
||||
#include "LBE.icc"
|
||||
typedef TLBE<G4VModularPhysicsList> LBE;
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,823 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Underground Dark Matter Detector Advanced Example
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// Underground Advanced
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// PhysicsList program
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
// 14-02-03 Fix bugs in msc and hIon instanciation + cut per region
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4DataQuestionaire.hh"
|
||||
|
||||
|
||||
// Constructor /////////////////////////////////////////////////////////////
|
||||
template<class T> TLBE<T>::TLBE() : G4VUserPhysicsList()
|
||||
{
|
||||
|
||||
G4DataQuestionaire it(photon, lowenergy, neutron, radioactive);
|
||||
G4cout << "You are using the simulation engine: LBE 5.3"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
defaultCutValue = 1.0*micrometer; //
|
||||
cutForGamma = defaultCutValue;
|
||||
cutForElectron = 1.0*nanometer;
|
||||
cutForPositron = defaultCutValue;
|
||||
cutForProton = defaultCutValue;
|
||||
cutForAlpha = 1.0*nanometer;
|
||||
cutForGenericIon = 1.0*nanometer;
|
||||
|
||||
VerboseLevel = 1;
|
||||
OpVerbLevel = 0;
|
||||
|
||||
SetVerboseLevel(VerboseLevel);
|
||||
}
|
||||
|
||||
|
||||
// Destructor //////////////////////////////////////////////////////////////
|
||||
template<class T> TLBE<T>::~TLBE()
|
||||
{;}
|
||||
|
||||
|
||||
// Construct Particles /////////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructParticle()
|
||||
{
|
||||
|
||||
// In this method, static member functions should be called
|
||||
// for all particles which you want to use.
|
||||
// This ensures that objects of these particle types will be
|
||||
// created in the program.
|
||||
|
||||
ConstructMyBosons();
|
||||
ConstructMyLeptons();
|
||||
ConstructMyMesons();
|
||||
ConstructMyBaryons();
|
||||
ConstructMyIons();
|
||||
ConstructMyShortLiveds();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// construct Bosons://///////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructMyBosons()
|
||||
{
|
||||
// pseudo-particles
|
||||
G4Geantino::GeantinoDefinition();
|
||||
G4ChargedGeantino::ChargedGeantinoDefinition();
|
||||
|
||||
// gamma
|
||||
G4Gamma::GammaDefinition();
|
||||
|
||||
//OpticalPhotons
|
||||
G4OpticalPhoton::OpticalPhotonDefinition();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// construct Leptons://///////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructMyLeptons()
|
||||
{
|
||||
// leptons
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4MuonPlus::MuonPlusDefinition();
|
||||
G4MuonMinus::MuonMinusDefinition();
|
||||
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
G4NeutrinoMu::NeutrinoMuDefinition();
|
||||
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
|
||||
}
|
||||
|
||||
|
||||
// construct Mesons://///////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructMyMesons()
|
||||
{
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4PionZero::PionZeroDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
G4Eta::EtaDefinition();
|
||||
G4EtaPrime::EtaPrimeDefinition();
|
||||
G4KaonZero::KaonZeroDefinition();
|
||||
G4AntiKaonZero::AntiKaonZeroDefinition();
|
||||
G4KaonZeroLong::KaonZeroLongDefinition();
|
||||
G4KaonZeroShort::KaonZeroShortDefinition();
|
||||
}
|
||||
|
||||
|
||||
// construct Baryons://///////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructMyBaryons()
|
||||
{
|
||||
// barions
|
||||
G4Proton::ProtonDefinition();
|
||||
G4AntiProton::AntiProtonDefinition();
|
||||
G4Neutron::NeutronDefinition();
|
||||
G4AntiNeutron::AntiNeutronDefinition();
|
||||
}
|
||||
|
||||
|
||||
// construct Ions://///////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructMyIons()
|
||||
{
|
||||
// Ions
|
||||
G4Deuteron::DeuteronDefinition();
|
||||
G4Triton::TritonDefinition();
|
||||
G4He3::He3Definition();
|
||||
G4Alpha::AlphaDefinition();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
}
|
||||
|
||||
// construct Shortliveds://///////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructMyShortLiveds()
|
||||
{
|
||||
// ShortLiveds
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Construct Processes //////////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::ConstructProcess()
|
||||
{
|
||||
|
||||
AddTransportation();
|
||||
|
||||
ConstructEM();
|
||||
|
||||
ConstructOp();
|
||||
|
||||
ConstructHad();
|
||||
|
||||
ConstructGeneral();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Transportation ///////////////////////////////////////////////////////////
|
||||
#include "MaxTimeCuts.hh"
|
||||
#include "MinEkineCuts.hh"
|
||||
|
||||
template<class T> void TLBE<T>::AddTransportation() {
|
||||
|
||||
G4VUserPhysicsList::AddTransportation();
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
// time cuts for ONLY neutrons:
|
||||
if(particleName == "neutron")
|
||||
pmanager->AddDiscreteProcess(new MaxTimeCuts());
|
||||
// Energy cuts to kill charged (embedded in method) particles:
|
||||
pmanager->AddDiscreteProcess(new MinEkineCuts());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Electromagnetic Processes ////////////////////////////////////////////////
|
||||
// all charged particles
|
||||
#include "G4MultipleScattering.hh"
|
||||
|
||||
// gamma
|
||||
#include "G4LowEnergyRayleigh.hh"
|
||||
#include "G4LowEnergyPhotoElectric.hh"
|
||||
#include "G4LowEnergyCompton.hh"
|
||||
#include "G4LowEnergyGammaConversion.hh"
|
||||
|
||||
|
||||
// e-
|
||||
#include "G4LowEnergyIonisation.hh"
|
||||
#include "G4LowEnergyBremsstrahlung.hh"
|
||||
|
||||
// e+
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
|
||||
// alpha and GenericIon and deuterons, triton, He3:
|
||||
#include "G4hLowEnergyIonisation.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
// hLowEnergyIonisation uses Ziegler 1988 as the default
|
||||
|
||||
|
||||
//muon:
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
#include "G4MuonMinusCaptureAtRest.hh"
|
||||
|
||||
//OTHERS:
|
||||
//#include "G4hIonisation.hh" // standard hadron ionisation
|
||||
|
||||
template<class T> void TLBE<T>::ConstructEM() {
|
||||
|
||||
// processes:
|
||||
|
||||
G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric();
|
||||
G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation();
|
||||
G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung();
|
||||
|
||||
// note LowEIon uses proton as basis for its data-base, therefore
|
||||
// cannot specify different LowEnergyIonisation models for different
|
||||
// particles, but can change model globally for Ion, Alpha and Proton.
|
||||
|
||||
|
||||
//fluorescence apply specific cut for fluorescence from photons, electrons
|
||||
//and bremsstrahlung photons:
|
||||
G4double fluorcut = 250*eV;
|
||||
lowePhot->SetCutForLowEnSecPhotons(fluorcut);
|
||||
loweIon->SetCutForLowEnSecPhotons(fluorcut);
|
||||
loweBrem->SetCutForLowEnSecPhotons(fluorcut);
|
||||
|
||||
// setting tables explicitly for electronic stopping power
|
||||
// ahadronLowEIon->SetElectronicStoppingPowerModel
|
||||
// (G4GenericIon::GenericIonDefinition(), "ICRU_R49p") ;
|
||||
// ahadronLowEIon->SetElectronicStoppingPowerModel
|
||||
// (G4Proton::ProtonDefinition(), "ICRU_R49p") ;
|
||||
|
||||
// Switch off the Barkas and Bloch corrections
|
||||
// ahadronLowEIon->SetBarkasOff();
|
||||
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
G4String particleType = particle->GetParticleType();
|
||||
G4double charge = particle->GetPDGCharge();
|
||||
|
||||
if (particleName == "gamma")
|
||||
{
|
||||
//gamma
|
||||
pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh());
|
||||
pmanager->AddDiscreteProcess(lowePhot);
|
||||
pmanager->AddDiscreteProcess(new G4LowEnergyCompton());
|
||||
pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion());
|
||||
}
|
||||
else if (particleName == "e-")
|
||||
{
|
||||
//electron
|
||||
// process ordering: AddProcess(name, at rest, along step, post step)
|
||||
// -1 = not implemented, then ordering
|
||||
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
|
||||
pmanager->AddProcess(aMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(loweIon, -1, 2, 2);
|
||||
pmanager->AddProcess(loweBrem, -1,-1, 3);
|
||||
}
|
||||
else if (particleName == "e+")
|
||||
{
|
||||
//positron
|
||||
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
|
||||
pmanager->AddProcess(aMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation(), -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung(), -1,-1, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation(),0,-1, 4);
|
||||
}
|
||||
else if( particleName == "mu+" ||
|
||||
particleName == "mu-" )
|
||||
{
|
||||
//muon
|
||||
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
|
||||
pmanager->AddProcess(aMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung(), -1,-1, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction(), -1,-1, 4);
|
||||
if( particleName == "mu-" )
|
||||
pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1);
|
||||
}
|
||||
else if (particleName == "proton" ||
|
||||
particleName == "alpha" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "triton" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon" ||
|
||||
(particleType == "nucleus" && charge != 0))
|
||||
{
|
||||
// OBJECT may be dynamically created as either a GenericIon or nucleus
|
||||
// G4Nucleus exists and therefore has particle type nucleus
|
||||
// genericIon:
|
||||
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
|
||||
G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
|
||||
pmanager->AddProcess(aMultipleScattering,-1,1,1);
|
||||
pmanager->AddProcess(ahadronLowEIon,-1,2,2);
|
||||
// ahadronLowEIon->SetNuclearStoppingOff() ;
|
||||
// ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ;
|
||||
// ahadronLowEIon->SetNuclearStoppingOn() ;
|
||||
|
||||
//fluorescence switch off for hadrons (for now) PIXE:
|
||||
ahadronLowEIon->SetFluorescence(false);
|
||||
}
|
||||
else if ((!particle->IsShortLived()) &&
|
||||
(charge != 0.0) &&
|
||||
(particle->GetParticleName() != "chargedgeantino"))
|
||||
{
|
||||
//all others charged particles except geantino
|
||||
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
|
||||
G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
|
||||
pmanager->AddProcess(aMultipleScattering,-1,1,1);
|
||||
pmanager->AddProcess(ahadronLowEIon, -1,2,2);
|
||||
// pmanager->AddProcess(new G4hIonisation(), -1,2,2);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Optical Processes ////////////////////////////////////////////////////////
|
||||
#include "G4Scintillation.hh"
|
||||
#include "G4OpAbsorption.hh"
|
||||
//#include "G4OpRayleigh.hh"
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
|
||||
template<class T> void TLBE<T>::ConstructOp()
|
||||
{
|
||||
// default scintillation process
|
||||
G4Scintillation* theScintProcessDef = new G4Scintillation("Scintillation");
|
||||
// theScintProcessDef->DumpPhysicsTable();
|
||||
theScintProcessDef->SetTrackSecondariesFirst(true);
|
||||
theScintProcessDef->SetScintillationYieldFactor(1.0); //
|
||||
theScintProcessDef->SetScintillationExcitationRatio(0.0); //
|
||||
theScintProcessDef->SetVerboseLevel(OpVerbLevel);
|
||||
|
||||
// scintillation process for alpha:
|
||||
G4Scintillation* theScintProcessAlpha = new G4Scintillation("Scintillation");
|
||||
// theScintProcessNuc->DumpPhysicsTable();
|
||||
theScintProcessAlpha->SetTrackSecondariesFirst(true);
|
||||
theScintProcessAlpha->SetScintillationYieldFactor(1.1);
|
||||
theScintProcessAlpha->SetScintillationExcitationRatio(1.0);
|
||||
theScintProcessAlpha->SetVerboseLevel(OpVerbLevel);
|
||||
|
||||
// scintillation process for heavy nuclei
|
||||
G4Scintillation* theScintProcessNuc = new G4Scintillation("Scintillation");
|
||||
// theScintProcessNuc->DumpPhysicsTable();
|
||||
theScintProcessNuc->SetTrackSecondariesFirst(true);
|
||||
theScintProcessNuc->SetScintillationYieldFactor(0.2);
|
||||
theScintProcessNuc->SetScintillationExcitationRatio(1.0);
|
||||
theScintProcessNuc->SetVerboseLevel(OpVerbLevel);
|
||||
|
||||
// optical processes
|
||||
G4OpAbsorption* theAbsorptionProcess = new G4OpAbsorption();
|
||||
// G4OpRayleigh* theRayleighScatteringProcess = new G4OpRayleigh();
|
||||
G4OpBoundaryProcess* theBoundaryProcess = new G4OpBoundaryProcess();
|
||||
// theAbsorptionProcess->DumpPhysicsTable();
|
||||
// theRayleighScatteringProcess->DumpPhysicsTable();
|
||||
theAbsorptionProcess->SetVerboseLevel(OpVerbLevel);
|
||||
// theRayleighScatteringProcess->SetVerboseLevel(OpVerbLevel);
|
||||
theBoundaryProcess->SetVerboseLevel(OpVerbLevel);
|
||||
G4OpticalSurfaceModel themodel = unified;
|
||||
theBoundaryProcess->SetModel(themodel);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
if (theScintProcessDef->IsApplicable(*particle)) {
|
||||
// if(particle->GetPDGMass() > 5.0*GeV)
|
||||
if(particle->GetParticleName() == "GenericIon") {
|
||||
pmanager->AddProcess(theScintProcessNuc); // AtRestDiscrete
|
||||
pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxAtRest);
|
||||
pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxPostStep);
|
||||
}
|
||||
else if(particle->GetParticleName() == "alpha") {
|
||||
pmanager->AddProcess(theScintProcessAlpha);
|
||||
pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxAtRest);
|
||||
pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxPostStep);
|
||||
}
|
||||
else {
|
||||
pmanager->AddProcess(theScintProcessDef);
|
||||
pmanager->SetProcessOrderingToLast(theScintProcessDef,idxAtRest);
|
||||
pmanager->SetProcessOrderingToLast(theScintProcessDef,idxPostStep);
|
||||
}
|
||||
}
|
||||
|
||||
if (particleName == "opticalphoton") {
|
||||
pmanager->AddDiscreteProcess(theAbsorptionProcess);
|
||||
// pmanager->AddDiscreteProcess(theRayleighScatteringProcess);
|
||||
pmanager->AddDiscreteProcess(theBoundaryProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Hadronic processes ////////////////////////////////////////////////////////
|
||||
|
||||
// Elastic processes:
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
|
||||
// Inelastic processes:
|
||||
#include "G4PionPlusInelasticProcess.hh"
|
||||
#include "G4PionMinusInelasticProcess.hh"
|
||||
#include "G4KaonPlusInelasticProcess.hh"
|
||||
#include "G4KaonZeroSInelasticProcess.hh"
|
||||
#include "G4KaonZeroLInelasticProcess.hh"
|
||||
#include "G4KaonMinusInelasticProcess.hh"
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4AntiProtonInelasticProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4AntiNeutronInelasticProcess.hh"
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
|
||||
// Low-energy Models: < 20GeV
|
||||
#include "G4LElastic.hh"
|
||||
#include "G4LEPionPlusInelastic.hh"
|
||||
#include "G4LEPionMinusInelastic.hh"
|
||||
#include "G4LEKaonPlusInelastic.hh"
|
||||
#include "G4LEKaonZeroSInelastic.hh"
|
||||
#include "G4LEKaonZeroLInelastic.hh"
|
||||
#include "G4LEKaonMinusInelastic.hh"
|
||||
#include "G4LEProtonInelastic.hh"
|
||||
#include "G4LEAntiProtonInelastic.hh"
|
||||
#include "G4LENeutronInelastic.hh"
|
||||
#include "G4LEAntiNeutronInelastic.hh"
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
|
||||
// High-energy Models: >20 GeV
|
||||
#include "G4HEPionPlusInelastic.hh"
|
||||
#include "G4HEPionMinusInelastic.hh"
|
||||
#include "G4HEKaonPlusInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEKaonMinusInelastic.hh"
|
||||
#include "G4HEProtonInelastic.hh"
|
||||
#include "G4HEAntiProtonInelastic.hh"
|
||||
#include "G4HENeutronInelastic.hh"
|
||||
#include "G4HEAntiNeutronInelastic.hh"
|
||||
|
||||
// Neutron high-precision models: <20 MeV
|
||||
#include "G4NeutronHPElastic.hh"
|
||||
#include "G4NeutronHPElasticData.hh"
|
||||
#include "G4NeutronHPCapture.hh"
|
||||
#include "G4NeutronHPCaptureData.hh"
|
||||
#include "G4NeutronHPInelastic.hh"
|
||||
#include "G4NeutronHPInelasticData.hh"
|
||||
#include "G4LCapture.hh"
|
||||
|
||||
// Stopping processes
|
||||
#include "G4PiMinusAbsorptionAtRest.hh"
|
||||
#include "G4KaonMinusAbsorptionAtRest.hh"
|
||||
#include "G4AntiProtonAnnihilationAtRest.hh"
|
||||
#include "G4AntiNeutronAnnihilationAtRest.hh"
|
||||
|
||||
|
||||
// ConstructHad()
|
||||
// Makes discrete physics processes for the hadrons, at present limited
|
||||
// to those particles with GHEISHA interactions (INTRC > 0).
|
||||
// The processes are: Elastic scattering and Inelastic scattering.
|
||||
// F.W.Jones 09-JUL-1998
|
||||
template<class T> void TLBE<T>::ConstructHad()
|
||||
{
|
||||
G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess;
|
||||
G4LElastic* theElasticModel = new G4LElastic;
|
||||
theElasticProcess->RegisterMe(theElasticModel);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while ((*theParticleIterator)())
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "pi+")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4PionPlusInelasticProcess* theInelasticProcess =
|
||||
new G4PionPlusInelasticProcess("inelastic");
|
||||
G4LEPionPlusInelastic* theLEInelasticModel =
|
||||
new G4LEPionPlusInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEPionPlusInelastic* theHEInelasticModel =
|
||||
new G4HEPionPlusInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "pi-")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4PionMinusInelasticProcess* theInelasticProcess =
|
||||
new G4PionMinusInelasticProcess("inelastic");
|
||||
G4LEPionMinusInelastic* theLEInelasticModel =
|
||||
new G4LEPionMinusInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEPionMinusInelastic* theHEInelasticModel =
|
||||
new G4HEPionMinusInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
G4String prcNam;
|
||||
pmanager->AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault);
|
||||
}
|
||||
|
||||
else if (particleName == "kaon+")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4KaonPlusInelasticProcess* theInelasticProcess =
|
||||
new G4KaonPlusInelasticProcess("inelastic");
|
||||
G4LEKaonPlusInelastic* theLEInelasticModel =
|
||||
new G4LEKaonPlusInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEKaonPlusInelastic* theHEInelasticModel =
|
||||
new G4HEKaonPlusInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "kaon0S")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4KaonZeroSInelasticProcess* theInelasticProcess =
|
||||
new G4KaonZeroSInelasticProcess("inelastic");
|
||||
G4LEKaonZeroSInelastic* theLEInelasticModel =
|
||||
new G4LEKaonZeroSInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEKaonZeroInelastic* theHEInelasticModel =
|
||||
new G4HEKaonZeroInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "kaon0L")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4KaonZeroLInelasticProcess* theInelasticProcess =
|
||||
new G4KaonZeroLInelasticProcess("inelastic");
|
||||
G4LEKaonZeroLInelastic* theLEInelasticModel =
|
||||
new G4LEKaonZeroLInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEKaonZeroInelastic* theHEInelasticModel =
|
||||
new G4HEKaonZeroInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "kaon-")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4KaonMinusInelasticProcess* theInelasticProcess =
|
||||
new G4KaonMinusInelasticProcess("inelastic");
|
||||
G4LEKaonMinusInelastic* theLEInelasticModel =
|
||||
new G4LEKaonMinusInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEKaonMinusInelastic* theHEInelasticModel =
|
||||
new G4HEKaonMinusInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
pmanager->AddRestProcess(new G4KaonMinusAbsorptionAtRest, ordDefault);
|
||||
}
|
||||
|
||||
else if (particleName == "proton")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4ProtonInelasticProcess* theInelasticProcess =
|
||||
new G4ProtonInelasticProcess("inelastic");
|
||||
G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "anti_proton")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4AntiProtonInelasticProcess* theInelasticProcess =
|
||||
new G4AntiProtonInelasticProcess("inelastic");
|
||||
G4LEAntiProtonInelastic* theLEInelasticModel =
|
||||
new G4LEAntiProtonInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEAntiProtonInelastic* theHEInelasticModel =
|
||||
new G4HEAntiProtonInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "neutron") {
|
||||
// elastic scattering
|
||||
G4HadronElasticProcess* theNeutronElasticProcess =
|
||||
new G4HadronElasticProcess;
|
||||
G4LElastic* theElasticModel1 = new G4LElastic;
|
||||
G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic;
|
||||
theNeutronElasticProcess->RegisterMe(theElasticModel1);
|
||||
theElasticModel1->SetMinEnergy(19*MeV);
|
||||
theNeutronElasticProcess->RegisterMe(theElasticNeutron);
|
||||
G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData;
|
||||
theNeutronElasticProcess->AddDataSet(theNeutronData);
|
||||
pmanager->AddDiscreteProcess(theNeutronElasticProcess);
|
||||
// inelastic scattering
|
||||
G4NeutronInelasticProcess* theInelasticProcess =
|
||||
new G4NeutronInelasticProcess("inelastic");
|
||||
G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic;
|
||||
theInelasticModel->SetMinEnergy(19*MeV);
|
||||
theInelasticProcess->RegisterMe(theInelasticModel);
|
||||
G4NeutronHPInelastic * theLENeutronInelasticModel =
|
||||
new G4NeutronHPInelastic;
|
||||
theInelasticProcess->RegisterMe(theLENeutronInelasticModel);
|
||||
G4NeutronHPInelasticData * theNeutronData1 =
|
||||
new G4NeutronHPInelasticData;
|
||||
theInelasticProcess->AddDataSet(theNeutronData1);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
// capture
|
||||
G4HadronCaptureProcess* theCaptureProcess =
|
||||
new G4HadronCaptureProcess;
|
||||
G4LCapture* theCaptureModel = new G4LCapture;
|
||||
theCaptureModel->SetMinEnergy(19*MeV);
|
||||
theCaptureProcess->RegisterMe(theCaptureModel);
|
||||
G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture;
|
||||
theCaptureProcess->RegisterMe(theLENeutronCaptureModel);
|
||||
G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData;
|
||||
theCaptureProcess->AddDataSet(theNeutronData3);
|
||||
pmanager->AddDiscreteProcess(theCaptureProcess);
|
||||
// G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager();
|
||||
// pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1);
|
||||
}
|
||||
else if (particleName == "anti_neutron")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4AntiNeutronInelasticProcess* theInelasticProcess =
|
||||
new G4AntiNeutronInelasticProcess("inelastic");
|
||||
G4LEAntiNeutronInelastic* theLEInelasticModel =
|
||||
new G4LEAntiNeutronInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
G4HEAntiNeutronInelastic* theHEInelasticModel =
|
||||
new G4HEAntiNeutronInelastic;
|
||||
theInelasticProcess->RegisterMe(theHEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "deuteron")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4DeuteronInelasticProcess* theInelasticProcess =
|
||||
new G4DeuteronInelasticProcess("inelastic");
|
||||
G4LEDeuteronInelastic* theLEInelasticModel =
|
||||
new G4LEDeuteronInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "triton")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4TritonInelasticProcess* theInelasticProcess =
|
||||
new G4TritonInelasticProcess("inelastic");
|
||||
G4LETritonInelastic* theLEInelasticModel =
|
||||
new G4LETritonInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
else if (particleName == "alpha")
|
||||
{
|
||||
pmanager->AddDiscreteProcess(theElasticProcess);
|
||||
G4AlphaInelasticProcess* theInelasticProcess =
|
||||
new G4AlphaInelasticProcess("inelastic");
|
||||
G4LEAlphaInelastic* theLEInelasticModel =
|
||||
new G4LEAlphaInelastic;
|
||||
theInelasticProcess->RegisterMe(theLEInelasticModel);
|
||||
pmanager->AddDiscreteProcess(theInelasticProcess);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Decays ///////////////////////////////////////////////////////////////////
|
||||
#include "G4Decay.hh"
|
||||
#include "G4RadioactiveDecay.hh"
|
||||
#include "G4IonTable.hh"
|
||||
#include "G4Ions.hh"
|
||||
|
||||
template<class T> void TLBE<T>::ConstructGeneral() {
|
||||
|
||||
// Add Decay Process
|
||||
G4Decay* theDecayProcess = new G4Decay();
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if (theDecayProcess->IsApplicable(*particle))
|
||||
{
|
||||
pmanager ->AddProcess(theDecayProcess);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
|
||||
pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
|
||||
}
|
||||
}
|
||||
|
||||
// Declare radioactive decay to the GenericIon in the IonTable.
|
||||
const G4IonTable *theIonTable =
|
||||
G4ParticleTable::GetParticleTable()->GetIonTable();
|
||||
G4RadioactiveDecay *theRadioactiveDecay = new G4RadioactiveDecay();
|
||||
|
||||
for (G4int i=0; i<theIonTable->Entries(); i++)
|
||||
{
|
||||
G4String particleName = theIonTable->GetParticle(i)->GetParticleName();
|
||||
G4String particleType = theIonTable->GetParticle(i)->GetParticleType();
|
||||
|
||||
if (particleName == "GenericIon")
|
||||
{
|
||||
G4ProcessManager* pmanager =
|
||||
theIonTable->GetParticle(i)->GetProcessManager();
|
||||
pmanager->SetVerboseLevel(VerboseLevel);
|
||||
pmanager ->AddProcess(theRadioactiveDecay);
|
||||
pmanager ->SetProcessOrdering(theRadioactiveDecay, idxPostStep);
|
||||
pmanager ->SetProcessOrdering(theRadioactiveDecay, idxAtRest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Cuts /////////////////////////////////////////////////////////////////////
|
||||
template<class T> void TLBE<T>::SetCuts()
|
||||
{
|
||||
|
||||
if (verboseLevel >1)
|
||||
G4cout << "LBE::SetCuts:";
|
||||
|
||||
if (verboseLevel>0){
|
||||
G4cout << "LBE::SetCuts:";
|
||||
G4cout << "CutLength : "
|
||||
<< G4BestUnit(defaultCutValue,"Length") << G4endl;
|
||||
}
|
||||
|
||||
//special for low energy physics
|
||||
G4double lowlimit=250*eV;
|
||||
G4ProductionCutsTable * aPCTable = G4ProductionCutsTable::GetProductionCutsTable();
|
||||
aPCTable->SetEnergyRange(lowlimit,100*GeV);
|
||||
|
||||
// set cut values for gamma at first and for e- second and next for e+,
|
||||
// because some processes for e+/e- need cut values for gamma
|
||||
SetCutValue(cutForGamma, "gamma");
|
||||
SetCutValue(cutForElectron, "e-");
|
||||
SetCutValue(cutForPositron, "e+");
|
||||
|
||||
// SetCutValue(cutForProton, "proton");
|
||||
// SetCutValue(cutForProton, "anti_proton");
|
||||
// SetCutValue(cutForAlpha, "alpha");
|
||||
// SetCutValue(cutForGenericIon, "GenericIon");
|
||||
|
||||
// SetCutValueForOthers(defaultCutValue);
|
||||
|
||||
if (verboseLevel>0) DumpCutValuesTable();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Underground Dark Matter Detector Advanced Example
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// Underground Advanced
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// MaxTimeCuts header
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#ifndef MaxTimeCuts_h
|
||||
#define MaxTimeCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "SpecialCuts.hh"
|
||||
|
||||
|
||||
class MaxTimeCuts : public SpecialCuts
|
||||
{
|
||||
public:
|
||||
|
||||
MaxTimeCuts(const G4String& processName ="MaxTimeCuts" );
|
||||
|
||||
virtual ~MaxTimeCuts();
|
||||
|
||||
// PostStep GPIL
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
MaxTimeCuts(MaxTimeCuts&);
|
||||
MaxTimeCuts& operator=(const MaxTimeCuts& right);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: MinEkineCuts.hh,v 1.1 2004/12/13 16:50:57 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// 14 Aug. 1998 H.Kurashige
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef MinEkineCuts_h
|
||||
#define MinEkineCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "SpecialCuts.hh"
|
||||
|
||||
|
||||
class MinEkineCuts : public SpecialCuts
|
||||
{
|
||||
public:
|
||||
|
||||
MinEkineCuts(const G4String& processName ="MinEkineCuts" );
|
||||
|
||||
virtual ~MinEkineCuts();
|
||||
|
||||
// PostStep GPIL
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
MinEkineCuts(MinEkineCuts&);
|
||||
MinEkineCuts& operator=(const MinEkineCuts& right);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Underground Dark Matter Detector Advanced Example
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// Underground Advanced
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// SpecialCuts header
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#ifndef SpecialCuts_h
|
||||
#define SpecialCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VProcess.hh"
|
||||
|
||||
|
||||
class SpecialCuts : public G4VProcess
|
||||
{
|
||||
public:
|
||||
|
||||
SpecialCuts(const G4String& processName ="SpecialCut" );
|
||||
|
||||
virtual ~SpecialCuts();
|
||||
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(
|
||||
const G4Track& ,
|
||||
const G4Step&
|
||||
);
|
||||
|
||||
// no operation in AtRestGPIL
|
||||
virtual G4double AtRestGetPhysicalInteractionLength(
|
||||
const G4Track& ,
|
||||
G4ForceCondition*
|
||||
){ return -1.0; };
|
||||
|
||||
// no operation in AtRestDoIt
|
||||
virtual G4VParticleChange* AtRestDoIt(
|
||||
const G4Track& ,
|
||||
const G4Step&
|
||||
){return NULL;};
|
||||
|
||||
// no operation in AlongStepGPIL
|
||||
virtual G4double AlongStepGetPhysicalInteractionLength(
|
||||
const G4Track&,
|
||||
G4double ,
|
||||
G4double ,
|
||||
G4double& ,
|
||||
G4GPILSelection*
|
||||
){ return -1.0; };
|
||||
|
||||
// no operation in AlongStepDoIt
|
||||
virtual G4VParticleChange* AlongStepDoIt(
|
||||
const G4Track& ,
|
||||
const G4Step&
|
||||
) {return NULL;};
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
SpecialCuts& operator=(const SpecialCuts&){return *this;};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The LBE physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LBE.tar">here</a> to down-load the source code of LBE
|
||||
Version 5.2
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3
|
||||
<hr><br>
|
||||
The LBE physics list's models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,95 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// MaxTimeCuts program
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "MaxTimeCuts.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
|
||||
|
||||
MaxTimeCuts::MaxTimeCuts(const G4String& aName)
|
||||
: SpecialCuts(aName)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
SetProcessType(fUserDefined);
|
||||
}
|
||||
|
||||
MaxTimeCuts::~MaxTimeCuts()
|
||||
{}
|
||||
|
||||
MaxTimeCuts::MaxTimeCuts(MaxTimeCuts& ) : SpecialCuts()
|
||||
{}
|
||||
|
||||
|
||||
G4double MaxTimeCuts::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& aTrack,
|
||||
G4double ,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
|
||||
G4double proposedStep = DBL_MAX;
|
||||
// get the pointer to UserLimits
|
||||
G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
|
||||
const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
|
||||
|
||||
// can apply cuts for specific particles - use if(particleDef):
|
||||
// G4ParticleDefinition* aParticleDef = aTrack.GetDefinition();
|
||||
|
||||
// G4cout << " Time: " << pUserLimits->GetUserMaxTime(aTrack) << G4endl;
|
||||
|
||||
if (pUserLimits) {
|
||||
G4double temp = DBL_MAX;
|
||||
//max time limit
|
||||
G4double dTime= (pUserLimits->GetUserMaxTime(aTrack) - aTrack.GetGlobalTime());
|
||||
if (dTime < 0. ) {
|
||||
proposedStep = 0.;
|
||||
} else {
|
||||
G4double beta = (aParticle->GetTotalMomentum())/(aParticle->GetTotalEnergy());
|
||||
temp = beta*c_light*dTime;
|
||||
if (proposedStep > temp) proposedStep = temp;
|
||||
}
|
||||
|
||||
}
|
||||
return proposedStep;
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// --------------------------------------------------------------
|
||||
// 15 April 1998 M.Maire
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "MinEkineCuts.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
|
||||
MinEkineCuts::MinEkineCuts(const G4String& aName)
|
||||
: SpecialCuts(aName)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
SetProcessType(fUserDefined);
|
||||
}
|
||||
|
||||
MinEkineCuts::~MinEkineCuts()
|
||||
{}
|
||||
|
||||
MinEkineCuts::MinEkineCuts(MinEkineCuts& ) : SpecialCuts()
|
||||
{}
|
||||
|
||||
|
||||
G4double MinEkineCuts::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& aTrack,
|
||||
G4double ,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
|
||||
G4double proposedStep = DBL_MAX;
|
||||
// get the pointer to UserLimits
|
||||
G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
|
||||
const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
|
||||
G4ParticleDefinition* aParticleDef = aTrack.GetDefinition();
|
||||
|
||||
if (pUserLimits && aParticleDef->GetPDGCharge() != 0.0) {
|
||||
//min kinetic energy
|
||||
G4double temp = DBL_MAX;
|
||||
G4double eKine = aParticle->GetKineticEnergy();
|
||||
G4Material* aMaterial = aTrack.GetMaterial();
|
||||
G4double eMin = pUserLimits->GetUserMinEkine(aTrack);
|
||||
|
||||
G4double rangeNow = DBL_MAX;
|
||||
|
||||
rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial);
|
||||
|
||||
if (eKine < eMin ) {
|
||||
proposedStep = 0.;
|
||||
} else {
|
||||
// charged particles only
|
||||
G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial);
|
||||
temp = rangeNow - rangeMin;
|
||||
if (proposedStep > temp) proposedStep = temp;
|
||||
}
|
||||
}
|
||||
return proposedStep;
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// SpecialCuts program
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "SpecialCuts.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
SpecialCuts::SpecialCuts(const G4String& aName)
|
||||
: G4VProcess(aName)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
SpecialCuts::~SpecialCuts()
|
||||
{
|
||||
}
|
||||
|
||||
G4VParticleChange* SpecialCuts::PostStepDoIt(
|
||||
const G4Track& aTrack,
|
||||
const G4Step&
|
||||
)
|
||||
//
|
||||
// Stop the current particle, if requested by G4UserLimits
|
||||
//
|
||||
{
|
||||
aParticleChange.Initialize(aTrack);
|
||||
aParticleChange.ProposeEnergy(0.) ;
|
||||
aParticleChange.ProposeLocalEnergyDeposit (aTrack.GetKineticEnergy()) ;
|
||||
aParticleChange.ProposeTrackStatus(fStopButAlive);
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
G4double SpecialCuts::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& /* track*/,
|
||||
G4double /* previousStepSize */,
|
||||
G4ForceCondition* /* condition */
|
||||
)
|
||||
{
|
||||
return DBL_MAX;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_h
|
||||
#define HadronPhysicsLHEP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
#include "G4PiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LHEPProtonBuilder theLHEPPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_h
|
||||
#define TLHEP_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TLHEP: public T
|
||||
{
|
||||
public:
|
||||
TLHEP();
|
||||
virtual ~TLHEP();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
};
|
||||
#include "LHEP.icc"
|
||||
typedef TLHEP<G4VModularPhysicsList> LHEP;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP.hh"
|
||||
|
||||
template<class T> TLHEP<T>::TLHEP(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: LHEP 3.7"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP<T>::~TLHEP()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,79 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The LHEP physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP.tar">here</a> to down-load the source code of
|
||||
LHEP Version 3.6
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3
|
||||
<hr><br>
|
||||
The LHEP physics list models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
The cross-section used by the LHEP list are the default geant4 cross-sections.
|
||||
No special data sets are applied to keep performance at its maximum.
|
||||
Verification plots for these cross-sections can be found
|
||||
<a href="../lists/QGSC.tar">here</a>.
|
||||
|
||||
<li>
|
||||
The model used for elastic scattering is the G4LElastic model. It models the
|
||||
scattering angle based on a two slope parametrization.
|
||||
Verification plots for this can be found
|
||||
<a href="../lists/QGSC.tar">here</a>.
|
||||
<li>
|
||||
The models used for inelastic scattering are the LEP and HEP parametrized
|
||||
models. The modeling parametrizes the final states individual inelastic reactions, so you will not see
|
||||
resonances, and the detailed secondary angular distributions for O(100MeV) reactions may not be described
|
||||
perfectly. The average quantities will be well described.
|
||||
Verification plots for this can be found
|
||||
<a href="../lists/QGSC.tar">here</a>.
|
||||
<li>
|
||||
The models used for hadronic interactions of
|
||||
stopping particles are a direct re-write from geant3.21.
|
||||
In the case of mu- absorption, the particles from the electromagnetic
|
||||
cascading prior to capture are taken into account in addition. Capture is in
|
||||
competition with decay, and effects of the electromagnetic
|
||||
binding on mu- decay have been added.
|
||||
Verification plots can be found
|
||||
<a href="../lists/QGSC.tar">here</a>.
|
||||
<li>
|
||||
The electromagnetic physics used is the 'standard' geant4
|
||||
electromagnetic physics. A production threshold of 0.7mm is applied.
|
||||
Please refere to the pages of the electromagnetic working group for
|
||||
verification results of these processes.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP::HadronPhysicsLHEP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
thePro.RegisterMe(&theLHEPPro);
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP::~HadronPhysicsLHEP() {}
|
||||
|
||||
void HadronPhysicsLHEP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,52 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=CENTER BGCOLOR="#FFF222">
|
||||
<h1><br>
|
||||
The @@@ physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP.tar">here</a> to down-load the source code of @@@ Version @.@
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 1.2
|
||||
<hr><br>
|
||||
The LHEP physics list models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP_BERT
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_BERT_h
|
||||
#define HadronPhysicsLHEP_BERT_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4BertiniProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP_BERT : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP_BERT(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP_BERT();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
G4BertiniNeutronBuilder theBertiniNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
G4BertiniPiKBuilder theBertiniPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LHEPProtonBuilder theLHEPPro;
|
||||
G4BertiniProtonBuilder theBertiniPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_BERT_h
|
||||
#define TLHEP_BERT_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template <class T>
|
||||
class TLHEP_BERT: public T
|
||||
{
|
||||
public:
|
||||
TLHEP_BERT();
|
||||
virtual ~TLHEP_BERT();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
|
||||
};
|
||||
#include "LHEP_BERT.icc"
|
||||
typedef TLHEP_BERT<G4VModularPhysicsList> LHEP_BERT;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP_BERT.hh"
|
||||
|
||||
template<class T> TLHEP_BERT<T>::TLHEP_BERT(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: LHEP_BERT 1.1"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP_BERT("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP_BERT<T>::~TLHEP_BERT()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP_BERT<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP_BERT::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The LHEP_BERT physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP_BERT.tar">here</a> to down-load the source code of LHEP_BERT
|
||||
Version 1.0
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3.
|
||||
<hr><br>
|
||||
The LHEP_BERT physics list's models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BERT.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BERT::HadronPhysicsLHEP_BERT(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
theNeutrons.RegisterMe(&theBertiniNeutron);
|
||||
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
|
||||
theBertiniNeutron.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePro.RegisterMe(&theLHEPPro);
|
||||
thePro.RegisterMe(&theBertiniPro);
|
||||
theLHEPPro.SetMinEnergy(9.5*GeV);
|
||||
theBertiniPro.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
thePiK.RegisterMe(&theBertiniPiK);
|
||||
theLHEPPiK.SetMinPionEnergy(9.5*GeV);
|
||||
theBertiniPiK.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT() {}
|
||||
|
||||
void HadronPhysicsLHEP_BERT::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BERT::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP_BERT_HP
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_BERT_HP_h
|
||||
#define HadronPhysicsLHEP_BERT_HP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4BertiniProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
#include "G4NeutronHPBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP_BERT_HP : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP_BERT_HP(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP_BERT_HP();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
G4BertiniNeutronBuilder theBertiniNeutron;
|
||||
G4NeutronHPBuilder theHPNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LHEPProtonBuilder theLHEPPro;
|
||||
G4BertiniProtonBuilder theBertiniPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_BERT_HP_h
|
||||
#define TLHEP_BERT_HP_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TLHEP_BERT_HP: public T
|
||||
{
|
||||
public:
|
||||
TLHEP_BERT_HP();
|
||||
virtual ~TLHEP_BERT_HP();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
};
|
||||
#include "LHEP_BERT_HP.icc"
|
||||
typedef TLHEP_BERT_HP<G4VModularPhysicsList> LHEP_BERT_HP;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP_BERT_HP.hh"
|
||||
|
||||
template<class T> TLHEP_BERT_HP<T>::TLHEP_BERT_HP(): T()
|
||||
{
|
||||
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: LHEP_BERT_HP 1.1"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP_BERT_HP("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP_BERT_HP<T>::~TLHEP_BERT_HP()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP_BERT_HP<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP_BERT_HP::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BERT_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BERT_HP::HadronPhysicsLHEP_BERT_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
theNeutrons.RegisterMe(&theBertiniNeutron);
|
||||
theNeutrons.RegisterMe(&theHPNeutron);
|
||||
theLHEPNeutron.SetMinEnergy(19.9*MeV);
|
||||
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
|
||||
theBertiniNeutron.SetMaxEnergy(9.9*GeV);
|
||||
theBertiniNeutron.SetMinEnergy(19.9*MeV);
|
||||
|
||||
thePro.RegisterMe(&theLHEPPro);
|
||||
thePro.RegisterMe(&theBertiniPro);
|
||||
theLHEPPro.SetMinEnergy(9.5*GeV);
|
||||
theBertiniPro.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP() {}
|
||||
|
||||
void HadronPhysicsLHEP_BERT_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BERT_HP::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP_BIC
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_BIC_h
|
||||
#define HadronPhysicsLHEP_BIC_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP_BIC : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP_BIC(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP_BIC();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
G4BinaryNeutronBuilder theBinaryNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LHEPProtonBuilder theLHEPPro;
|
||||
G4BinaryProtonBuilder theBinaryPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_BIC_h
|
||||
#define TLHEP_BIC_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TLHEP_BIC: public T
|
||||
{
|
||||
public:
|
||||
TLHEP_BIC();
|
||||
virtual ~TLHEP_BIC();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
};
|
||||
#include "LHEP_BIC.icc"
|
||||
typedef TLHEP_BIC<G4VModularPhysicsList> LHEP_BIC;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP_BIC.hh"
|
||||
|
||||
template<class T> TLHEP_BIC<T>::TLHEP_BIC(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: LHEP_BIC 1.1"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP_BIC("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP_BIC<T>::~TLHEP_BIC()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP_BIC<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP_BIC::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The LHEP_BIC physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP_BIC.tar">here</a> to down-load the source code of LHEP_BIC
|
||||
Version 1.0
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3.
|
||||
<hr><br>
|
||||
The LHEP_BIC physics list's models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BIC.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BIC::HadronPhysicsLHEP_BIC(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
theNeutrons.RegisterMe(&theBinaryNeutron);
|
||||
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
|
||||
theBinaryNeutron.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePro.RegisterMe(&theLHEPPro);
|
||||
thePro.RegisterMe(&theBinaryPro);
|
||||
theLHEPPro.SetMinEnergy(9.5*GeV);
|
||||
theBinaryPro.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC() {}
|
||||
|
||||
void HadronPhysicsLHEP_BIC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BIC::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP_BIC_HP
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_BIC_HP_h
|
||||
#define HadronPhysicsLHEP_BIC_HP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4NeutronHPBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP_BIC_HP : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP_BIC_HP(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP_BIC_HP();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
G4BinaryNeutronBuilder theBinaryNeutron;
|
||||
G4NeutronHPBuilder theHPNeutron;
|
||||
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
|
||||
G4ProtonBuilder thePro;
|
||||
G4LHEPProtonBuilder theLHEPPro;
|
||||
G4BinaryProtonBuilder theBinaryPro;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_BIC_HP_h
|
||||
#define TLHEP_BIC_HP_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TLHEP_BIC_HP: public T
|
||||
{
|
||||
public:
|
||||
TLHEP_BIC_HP();
|
||||
virtual ~TLHEP_BIC_HP();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
|
||||
};
|
||||
#include "LHEP_BIC_HP.icc"
|
||||
typedef TLHEP_BIC_HP<G4VModularPhysicsList> LHEP_BIC_HP;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EMPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP_BIC_HP.hh"
|
||||
|
||||
template<class T> TLHEP_BIC_HP<T>::TLHEP_BIC_HP(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: LHEP_BIC_HP 1.1"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP_BIC_HP("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP_BIC_HP<T>::~TLHEP_BIC_HP()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP_BIC_HP<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP_BIC::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BIC_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BIC_HP::HadronPhysicsLHEP_BIC_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
theNeutrons.RegisterMe(&theBinaryNeutron);
|
||||
theNeutrons.RegisterMe(&theHPNeutron);
|
||||
theLHEPNeutron.SetMinEnergy(19.9*MeV);
|
||||
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
|
||||
theBinaryNeutron.SetMaxEnergy(9.9*GeV);
|
||||
theBinaryNeutron.SetMinEnergy(19.9*MeV);
|
||||
|
||||
thePro.RegisterMe(&theLHEPPro);
|
||||
thePro.RegisterMe(&theBinaryPro);
|
||||
theLHEPPro.SetMinEnergy(9.5*GeV);
|
||||
theBinaryPro.SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP() {}
|
||||
|
||||
void HadronPhysicsLHEP_BIC_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BIC_HP::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePro.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP_GN
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_GN_h
|
||||
#define HadronPhysicsLHEP_GN_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4NeutronBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP_GN : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP_GN(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP_GN();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPProtonBuilder theLHEPProton;
|
||||
G4ProtonBuilder theProton;
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_GN_h
|
||||
#define TLHEP_GN_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TLHEP_GN: public T
|
||||
{
|
||||
public:
|
||||
TLHEP_GN();
|
||||
virtual ~TLHEP_GN();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
|
||||
};
|
||||
#include "LHEP_GN.icc"
|
||||
typedef TLHEP_GN<G4VModularPhysicsList> LHEP_GN;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EM_GNPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP_GN.hh"
|
||||
|
||||
template<class T> TLHEP_GN<T>::TLHEP_GN(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
G4DataQuestionaire it(photon);
|
||||
G4cout << "You are using the simulation engine: LHEP_GN 2.5"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EM_GNPhysics("standard EM plus gamma nuclear"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP_GN("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP_GN<T>::~TLHEP_GN()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP_GN<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP_GN::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The LHEP_GN physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP_GN.tar">here</a> to down-load the source code of LHEP_GN
|
||||
Version 2.4
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3
|
||||
<hr><br>
|
||||
The LHEP_GN physics list's models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP_GN.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
HadronPhysicsLHEP_GN::HadronPhysicsLHEP_GN(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
theProton.RegisterMe(&theLHEPProton);
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_GN::~HadronPhysicsLHEP_GN() {}
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
void HadronPhysicsLHEP_GN::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_GN::ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
thePiK.Build();
|
||||
theProton.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,2 @@
|
||||
name := LHEP_HP
|
||||
include ../common.gmk
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef HadronPhysicsLHEP_HP_h
|
||||
#define HadronPhysicsLHEP_HP_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4NeutronHPBuilder.hh"
|
||||
|
||||
class HadronPhysicsLHEP_HP : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
HadronPhysicsLHEP_HP(const G4String& name ="hadron");
|
||||
virtual ~HadronPhysicsLHEP_HP();
|
||||
|
||||
public:
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4NeutronBuilder theNeutrons;
|
||||
G4LHEPNeutronBuilder theLHEPNeutron;
|
||||
G4NeutronHPBuilder theHPNeutron;
|
||||
|
||||
G4LHEPPiKBuilder theLHEPPiK;
|
||||
G4PiKBuilder thePiK;
|
||||
G4LHEPProtonBuilder theLHEPProton;
|
||||
G4ProtonBuilder theProton;
|
||||
|
||||
G4MiscLHEPBuilder theMiscLHEP;
|
||||
G4StoppingHadronBuilder theStoppingHadron;
|
||||
G4HadronQEDBuilder theHadronQED;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef TLHEP_HP_h
|
||||
#define TLHEP_HP_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TLHEP_HP: public T
|
||||
{
|
||||
public:
|
||||
TLHEP_HP();
|
||||
virtual ~TLHEP_HP();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
};
|
||||
#include "LHEP_HP.icc"
|
||||
typedef TLHEP_HP<G4VModularPhysicsList> LHEP_HP;
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "GeneralPhysics.hh"
|
||||
#include "EM_GNPhysics.hh"
|
||||
#include "MuonPhysics.hh"
|
||||
#include "IonPhysics.hh"
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsLHEP_HP.hh"
|
||||
|
||||
template<class T> TLHEP_HP<T>::TLHEP_HP(): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
G4DataQuestionaire it(photon, neutron);
|
||||
G4cout << "You are using the simulation engine: LHEP_HP 1.7"<<G4endl;
|
||||
G4cout <<G4endl<<G4endl;
|
||||
defaultCutValue = 0.7*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics
|
||||
RegisterPhysics( new GeneralPhysics("general") );
|
||||
|
||||
// EM Physics
|
||||
RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear"));
|
||||
|
||||
// Muon Physics
|
||||
RegisterPhysics( new MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsLHEP_HP("hadron"));
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new IonPhysics("ion"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
template<class T> TLHEP_HP<T>::~TLHEP_HP()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TLHEP_HP<T>::SetCuts()
|
||||
{
|
||||
if (verboseLevel >1){
|
||||
G4cout << "LHEP_HP::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
SetCutsWithDefault();
|
||||
|
||||
G4VUserPhysicsList::DumpCutValuesTable();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center><table BORDER WIDTH="95%" >
|
||||
<tr>
|
||||
<th ALIGN=CENTER></th>
|
||||
|
||||
<td ALIGN=left BGCOLOR="#FFF222">
|
||||
<h1><br><center>
|
||||
The LHEP_HP physics list.
|
||||
</h1>
|
||||
</center><hr>
|
||||
Click
|
||||
<a href="../LHEP_HP.tar">here</a> to down-load the source code of LHEP_HP
|
||||
Version 1.6
|
||||
<br>
|
||||
Click
|
||||
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 2.3
|
||||
<hr><br>
|
||||
The LHEP_HP physics list's models and cross-section:
|
||||
<ul>
|
||||
<li>
|
||||
<b>FixME:</b> Some text and links to documentation to be added.
|
||||
<li>
|
||||
Verification plots for these cross-sections and models can be found
|
||||
<a href="index.html">here</a>.
|
||||
<b>FixME:</b> Add verification page.
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellspacing="0" cellpadding="0" align="center">
|
||||
<tr><td colspan="2"><hr hright="1"></td></tr>
|
||||
<tr valign="bottom">
|
||||
<td width="100%" class="small">
|
||||
In case of questions, please contact
|
||||
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
|
||||
</td>
|
||||
<td ALIGN="right" class="small" nowrap>
|
||||
J.P. Wellisch, 2002<BR>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--#include file="../snippet.html" -->
|
||||
</body>
|
||||
</html>
|
||||
<! Copyright © 2002 J.P. Wellisch >
|
||||
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "HadronPhysicsLHEP_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
HadronPhysicsLHEP_HP
|
||||
::HadronPhysicsLHEP_HP(const G4String& name) : G4VPhysicsConstructor(name)
|
||||
{
|
||||
theLHEPNeutron.SetMinEnergy(19.9*MeV);
|
||||
theNeutrons.RegisterMe(&theLHEPNeutron);
|
||||
theNeutrons.RegisterMe(&theHPNeutron);
|
||||
thePiK.RegisterMe(&theLHEPPiK);
|
||||
theProton.RegisterMe(&theLHEPProton);
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_HP::
|
||||
~HadronPhysicsLHEP_HP() {}
|
||||
|
||||
void HadronPhysicsLHEP_HP::
|
||||
ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_HP::
|
||||
ConstructProcess()
|
||||
{
|
||||
theNeutrons.Build();
|
||||
theProton.Build();
|
||||
thePiK.Build();
|
||||
theMiscLHEP.Build();
|
||||
theStoppingHadron.Build();
|
||||
theHadronQED.Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user