2 #include "G4ParticleDefinition.hh"
3 #include "G4HadronicProcess.hh"
4 #include "G4GlauberGribovCrossSection.hh"
5 #include "G4BGGNucleonInelasticXS.hh"
6 #include "G4BGGPionInelasticXS.hh"
7 #include "G4ProcessManager.hh"
8 #include "G4ProcessVector.hh"
9 #include "G4HadronicProcessType.hh"
11 #include "G4PionPlus.hh"
12 #include "G4PionMinus.hh"
13 #include "G4KaonPlus.hh"
14 #include "G4KaonMinus.hh"
15 #include "G4BMesonMinus.hh"
16 #include "G4BMesonPlus.hh"
17 #include "G4DMesonMinus.hh"
18 #include "G4DMesonPlus.hh"
19 #include "G4Proton.hh"
20 #include "G4AntiProton.hh"
21 #include "G4SigmaMinus.hh"
22 #include "G4AntiSigmaMinus.hh"
23 #include "G4SigmaPlus.hh"
24 #include "G4AntiSigmaPlus.hh"
25 #include "G4XiMinus.hh"
26 #include "G4AntiXiMinus.hh"
27 #include "G4OmegaMinus.hh"
28 #include "G4AntiOmegaMinus.hh"
29 #include "G4LambdacPlus.hh"
30 #include "G4AntiLambdacPlus.hh"
31 #include "G4XicPlus.hh"
32 #include "G4AntiXicPlus.hh"
33 #include "G4Deuteron.hh"
34 #include "G4Triton.hh"
37 #include "G4GenericIon.hh"
40 G4VPhysicsConstructor(
"GlauberGribov XS"),
verbose(ver)
50 G4GlauberGribovCrossSection* gg =
new G4GlauberGribovCrossSection();
51 gg->SetEnergyLowerLimit(90.*GeV);
53 theParticleIterator->reset();
54 while( (*theParticleIterator)() ){
55 G4ParticleDefinition* particle = theParticleIterator->value();
56 G4String particleName = particle->GetParticleName();
58 G4cout <<
"### " << GetPhysicsName() <<
" instantiates for "
59 << particleName << G4endl;
62 if (particleName ==
"neutron" ||
63 particleName ==
"pi+" ||
64 particleName ==
"pi-" ||
65 particleName ==
"proton") {
67 G4ProcessVector* pv = particle->GetProcessManager()->GetProcessList();
69 G4HadronicProcess* had = 0;
70 for(G4int
i=0;
i<
n;
i++) {
71 if(fHadronInelastic == ((*pv)[
i])->GetProcessSubType()) {
72 had =
static_cast<G4HadronicProcess*
>((*pv)[
i]);
78 G4cout <<
"### CMSGlauberGribovXS::ConstructProcess for " << particleName;
81 if(
verbose > 0) {G4cout <<
" and " << had->GetProcessName();}
82 if (particleName ==
"neutron") {
83 had->AddDataSet(
new G4BGGNucleonInelasticXS(particle));
84 }
else if(particleName ==
"proton") {
85 had->AddDataSet(
new G4BGGNucleonInelasticXS(particle));
86 }
else if(particleName ==
"pi+") {
87 had->AddDataSet(
new G4BGGPionInelasticXS(particle));
88 }
else if(particleName ==
"pi-") {
89 had->AddDataSet(
new G4BGGPionInelasticXS(particle));
93 if(
verbose > 0) {G4cout << G4endl;}
virtual void ConstructParticle()
virtual void ConstructProcess()
CMSGlauberGribovXS(G4int ver)
virtual ~CMSGlauberGribovXS()