Deprecated/UpgradeASCIITests/G4TankSimulatorASCII/G4TankPhysicsListCustomization.cc
Go to the documentation of this file.
2 #include <G4UImanager.hh>
3 #include "G4TankSimulator.h"
4 
6 #include "G4TankFastCerenkov.h"
7 
8 #include <G4MuonMinusCaptureAtRest.hh>
9 #include <G4ParticleDefinition.hh>
10 #include <G4ParticleTypes.hh>
11 #include <G4ProcessManager.hh>
12 
13 using namespace G4TankSimulatorASCII;
14 
16  tls::G4VPhysicsListCustomization()
17 {
18  defaultCutValue = 0.1*mm;
19 
20  fFastCerenkov = fastCerenkov;
21  fUImanager = G4UImanager::GetUIpointer();
22 }
23 
24 
26 {
27 }
28 
29 
31  const double cutForGamma = 30*mm;
32  const double cutForElectron = 0.5*mm;
33  const double cutForPositron = 1e-5*mm;
34 
35  SetCutValue(cutForGamma, "gamma");
36  SetCutValue(cutForElectron, "e-");
37  SetCutValue(cutForPositron, "e+");
38  SetCutValue(0, "proton"); //why??
39 }
40 
42  G4cerr << "G4TankPhysicsListCustomization::ActivateCustomProcesses" << G4endl;
43 
44  if(fFastCerenkov==1) {
45  G4cerr << "activating TankFastCerenkov" << G4endl;
46  fUImanager->ApplyCommand("/process/activate TankFastCerenkov");
47  G4cerr << "de-activating StandardCerenkov" << G4endl;
48  fUImanager->ApplyCommand("/process/inactivate StandardCerenkov");
49  }
50 
52  G4cerr << "activating muMinusCaptureAtRest" << G4endl;
53  fUImanager->ApplyCommand("/process/activate muMinusCaptureAtRest");
54  }
55 
56  if ( fFastCerenkov!=2 )
57  {
58  G4cerr << "activating TankOpBoundaryProcess" << G4endl;
59  fUImanager->ApplyCommand("/process/activate TankOpBoundaryProcess");
60  }
61  return true;
62 }
63 
65  G4cerr << "G4TankPhysicsListCustomization::InactivateCustomProcesses" << G4endl;
66 
67  G4cerr << "de-activating TankFastCerenkov" << G4endl;
68  fUImanager->ApplyCommand("/process/inactivate TankFastCerenkov");
69 
70  if( fFastCerenkov==0 ){
71  G4cerr << "activating StandardCerenkov" << G4endl;
72  fUImanager->ApplyCommand("/process/activate StandardCerenkov");
73  }
74 
75  G4cerr << "de-activating muMinusCaptureAtRest" << G4endl;
76  fUImanager->ApplyCommand("/process/inactivate muMinusCaptureAtRest");
77 
78  if ( fFastCerenkov!=2 )
79  {
80  G4cerr << "de-activating TankOpBoundaryProcess" << G4endl;
81  fUImanager->ApplyCommand("/process/inactivate TankOpBoundaryProcess");
82  }
83  return true;
84 }
85 
86 
87 void
89 {
90  const G4int maxNumPhotons = 3;
91 
92  G4TankSimulatorASCII::G4TankFastCerenkov* const fastCerenkov = new G4TankSimulatorASCII::G4TankFastCerenkov("TankFastCerenkov");
93  fastCerenkov->SetTrackSecondariesFirst(true);
94  fastCerenkov->SetMaxNumPhotonsPerStep(maxNumPhotons);
95  G4Electron::Electron()->GetProcessManager()->AddContinuousProcess(fastCerenkov);
96  G4Positron::Positron()->GetProcessManager()->AddContinuousProcess(fastCerenkov);
97  G4MuonMinus::MuonMinusDefinition()->GetProcessManager()->AddContinuousProcess(fastCerenkov);
98  G4MuonPlus::MuonPlusDefinition()->GetProcessManager()->AddContinuousProcess(fastCerenkov);
99 
100  G4MuonMinus::MuonMinusDefinition()->GetProcessManager()->AddProcess(new G4MuonMinusCaptureAtRest);
101 
102  G4ProcessManager& pManager =
103  *G4OpticalPhoton::OpticalPhotonDefinition()->GetProcessManager();
104 
106  const G4OpticalSurfaceModel model = unified;
107  boundary->SetModel(model);
108  pManager.AddDiscreteProcess(boundary);
109 }
constexpr double mm
Definition: AugerUnits.h:113

, generated on Tue Sep 26 2023.