|
#include <TG4ComposedPhysicsList.h> |
|
1 |
#include "PamG4RunConfiguration.h" |
#include "PamG4RunConfiguration.h" |
2 |
#include <TG4EmPhysicsList.h> |
#include "PamG4RegionConstruction.h" |
|
#include <TG4HadronPhysicsList.h> |
|
|
#include <TG4OpticalPhysicsList.h> |
|
|
#include <TG4SpecialPhysicsList.h> |
|
|
#include <TG4Globals.h> |
|
3 |
|
|
|
|
|
|
#include "PamG4RangeCutsPhysicsList.h" |
|
4 |
ClassImp(PamG4RunConfiguration) |
ClassImp(PamG4RunConfiguration) |
5 |
|
|
6 |
|
|
19 |
} |
} |
20 |
|
|
21 |
|
|
|
G4VUserPhysicsList* PamG4RunConfiguration::CreatePhysicsList() |
|
|
{ |
|
|
// Create default Geant4 VMC physics list |
|
|
|
|
|
TG4ComposedPhysicsList* builder = new TG4ComposedPhysicsList(); |
|
|
|
|
|
TString token1 = TG4Globals::GetToken(0, fPhysicsListSelection); |
|
|
TString token2 = TG4Globals::GetToken(1, fPhysicsListSelection); |
|
22 |
|
|
23 |
if ( token1 == "emStandard" ) { |
TG4VUserRegionConstruction* PamG4RunConfiguration::CreateUserRegionConstruction(){ |
24 |
G4cout << "Adding EMPhysicsList" << G4endl; |
return new PamG4RegionConstruction(1, "Pamela Tracking Media cuts"); |
25 |
builder->AddPhysicsList(new TG4EmPhysicsList()); |
} |
|
} |
|
|
else { |
|
|
G4cout << "Adding HadronPhysicsList " << token1.Data() << G4endl; |
|
|
builder->AddPhysicsList(new TG4HadronPhysicsList(token1.Data())); |
|
|
} |
|
|
|
|
|
if ( token2 == "optical" ) { |
|
|
G4cout << "Adding OpticalPhysicsList " << G4endl; |
|
|
builder->AddPhysicsList(new TG4OpticalPhysicsList()); |
|
|
} |
|
|
|
|
|
// add option here |
|
|
G4cout << "Adding SpecialPhysicsList " << G4endl; |
|
|
builder->AddPhysicsList(new TG4SpecialPhysicsList( |
|
|
fSpecialProcessSelection.Data())); |
|
|
|
|
|
G4cout << "Adding Range Cuts PhysicsList " << G4endl; |
|
|
builder->AddPhysicsList(new PamG4RangeCutsPhysicsList()); |
|
|
|
|
|
return builder; |
|
|
} |
|