-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathphysics.cc
73 lines (59 loc) · 2.24 KB
/
physics.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "physics.hh"
MyPhysicsList::MyPhysicsList()
{
G4int verb = 1;
RegisterPhysics(new G4EmStandardPhysics()); // EM interactions
// G4EmParameters *param = G4EmParameters::Instance();
// param->SetAugerCascade(true);
// param->SetStepFunction(1., 1 * CLHEP::mm);
// param->SetStepFunctionMuHad(1., 1 * CLHEP::mm);
RegisterPhysics(new G4OpticalPhysics()); // optical photons for Cherenkov light
// for radioactive decay
RegisterPhysics(new G4DecayPhysics(verb)); // any kind of particle decays
RegisterPhysics(new G4RadioactiveDecayPhysics()); // radioactive ions decay
// Radioactive decay
SetVerboseLevel(verb);
// RegisterPhysics(new BiasedRDPhysics());
// Hadron Elastic scattering
RegisterPhysics(new G4HadronElasticPhysics(verb));
// Hadron Inelastic physics
RegisterPhysics(new G4HadronPhysicsFTFP_BERT(verb));
////RegisterPhysics( new G4HadronInelasticQBBC(verb));
////RegisterPhysics( new G4HadronPhysicsINCLXX(verb));
// Ion Elastic scattering
RegisterPhysics(new G4IonElasticPhysics(verb));
// Ion Inelastic physics
RegisterPhysics(new G4IonPhysics(verb));
////RegisterPhysics( new G4IonINCLXXPhysics(verb));
// Gamma-Nuclear Physics
G4EmExtraPhysics *gnuc = new G4EmExtraPhysics(verb);
gnuc->ElectroNuclear(false);
gnuc->MuonNuclear(false);
RegisterPhysics(gnuc);
RegisterPhysics(new G4StepLimiterPhysics());
}
MyPhysicsList::~MyPhysicsList()
{
}
void MyPhysicsList::ConstructParticle()
{
G4BosonConstructor pBosonConstructor;
pBosonConstructor.ConstructParticle();
G4LeptonConstructor pLeptonConstructor;
pLeptonConstructor.ConstructParticle();
G4MesonConstructor pMesonConstructor;
pMesonConstructor.ConstructParticle();
G4BaryonConstructor pBaryonConstructor;
pBaryonConstructor.ConstructParticle();
G4IonConstructor pIonConstructor;
pIonConstructor.ConstructParticle();
G4ShortLivedConstructor pShortLivedConstructor;
pShortLivedConstructor.ConstructParticle();
}
void MyPhysicsList::SetCuts()
{
SetCutValue(0 * mm, "proton");
SetCutValue(10 * km, "e-");
SetCutValue(10 * km, "e+");
SetCutValue(10 * km, "gamma");
}