FairRoot/PandaRoot
Functions
g4Config_Cherenkov.C File Reference

Go to the source code of this file.

Functions

void Config ()
 

Function Documentation

void Config ( )

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

Definition at line 2 of file g4Config_Cherenkov.C.

References PndStack::SetMinPoints().

3 {
27 
28  TG4RunConfiguration* runConfiguration = new TG4RunConfiguration("geomRoot", "QGSP_BERT_EMV+optical","stepLimiter+specialCuts+specialControls");
29 
31  TGeant4* geant4 = new TGeant4("TGeant4", "The Geant4 Monte Carlo", runConfiguration);
32  cout << "Geant4 has been created." << endl;
33  geant4->ProcessGeantCommand("/mcVerbose/all 0");
34  geant4->ProcessGeantCommand("/mcVerbose/eventAction 1");
35 
36  // geant4->ProcessGeantCommand("/optics_engine/selectOpProcess Cerenkov");
37  // geant4->ProcessGeantCommand("/optics_engine/setTrackSecondariesFirst false");
38  // geant4->ProcessGeantCommand("/optics_engine/setCerenkovMaxPhotons 5");
39  // geant4->ProcessGeantCommand("/optics_engine/setCerenkovMaxBetaChange 0.1");
40 
42  PndStack *stack = new PndStack(1000);
43  //stack->StoreSecondaries(kFALSE); //default is kTRUE
44  stack->SetMinPoints(2);
45  geant4->SetStack(stack);
46 
47  if(FairRunSim::Instance()->IsExtDecayer()){
48  TVirtualMCDecayer* decayer = TPythia6Decayer::Instance();
49  geant4->SetExternalDecayer(decayer);
50  }
51 
52  geant4->SetMaxNStep(10000); // default is 30000
53 
54  Text_t buffer[50];
55  sprintf(buffer,"/random/setSeeds %i %i ",gRandom->GetSeed(), gRandom->GetSeed());
56  geant4->ProcessGeantCommand(buffer);
57 }
void SetMinPoints(Int_t min)
Definition: PndStack.h:171