Go to the source code of this file.
Create the run configuration In constructor user has to specify the geometry input and select geometry navigation via the following options:
- geomVMCtoGeant4 - geometry defined via VMC, G4 native navigation
- geomVMCtoRoot - geometry defined via VMC, Root navigation
- geomRoot - geometry defined via Root, Root navigation
- geomRootToGeant4 - geometry defined via Root, G4 native navigation
- geomGeant4 - geometry defined via Geant4, G4 native navigation
The second argument in the constructor selects physics list:
- emStandard - standard em physics (default)
- emStandard+optical - standard em physics + optical physics
- XYZ - selected hadron physics list ( XYZ = LHEP, QGSP, ...)
- XYZ+optical - selected hadron physics list + optical physics
The third argument activates the special processes in the TG4SpecialPhysicsList, which implement VMC features:
- stepLimiter - step limiter (default)
- specialCuts - VMC cuts
- specialControls - VMC controls for activation/inactivation selected processes
- stackPopper - stackPopper process When more than one options are selected, they should be separated with '+' character: eg. stepLimit+specialCuts.
Create the G4 VMC
create the Specific stack
Customise Geant4 setting (verbose level, global range cut, ..)
Definition at line 2 of file g4Config_opt.C.
References PndStack::SetMinPoints(), PndStack::StoreSecondaries(), and TString.
28 TG4RunConfiguration* runConfiguration
29 =
new TG4RunConfiguration(
"geomRoot",
"QGSP_BERT_EMV+optical",
"stepLimiter+specialCuts+specialControls");
32 TGeant4* geant4 =
new TGeant4(
"TGeant4",
"The Geant4 Monte Carlo", runConfiguration);
33 cout <<
"Geant4 has been created." << endl;
35 geant4->ProcessGeantCommand(
"/optics_engine/selectOpProcess Cerenkov");
36 geant4->ProcessGeantCommand(
"/optics_engine/setTrackSecondariesFirst false");
42 geant4->SetStack(stack);
44 if(FairRunSim::Instance()->IsExtDecayer()){
45 TVirtualMCDecayer* decayer = TPythia6Decayer::Instance();
46 geant4->SetExternalDecayer(decayer);
52 TString configm(gSystem->Getenv(
"VMCWORKDIR"));
53 configm = configm +
"/gconfig/g4config.in";
54 cout <<
" -I g4Config() using g4conf macro: " << configm << endl;
57 geant4->SetMaxNStep(10000);
60 sprintf(buffer,
"/random/setSeeds %i %i ",gRandom->GetSeed(), gRandom->GetSeed());
61 geant4->ProcessGeantCommand(buffer);
63 geant4->ProcessGeantMacro(configm.Data());
void SetMinPoints(Int_t min)
void StoreSecondaries(Bool_t choice=kTRUE)