1 #include "SimG4Core/PhysicsLists/interface/CMSFTFPProtonBuilder.hh"
2 #include "G4ParticleDefinition.hh"
3 #include "G4ParticleTable.hh"
4 #include "G4ProcessManager.hh"
5 #include "G4ProtonInelasticCrossSection.hh"
6 #include "G4SystemOfUnits.hh"
9 CMSFTFPProtonBuilder(G4bool quasiElastic)
13 theModel =
new G4TheoFSGenerator(
"FTFP");
15 theStringModel =
new G4FTFModel;
16 theStringDecay =
new G4ExcitedStringDecay(
new G4LundStringFragmentation);
17 theStringModel->SetFragmentationModel(theStringDecay);
19 theCascade =
new G4GeneratorPrecompoundInterface;
20 thePreEquilib =
new G4PreCompoundModel(
new G4ExcitationHandler);
21 theCascade->SetDeExcitation(thePreEquilib);
23 theModel->SetHighEnergyGenerator(theStringModel);
26 theQuasiElastic=
new G4QuasiElasticChannel;
27 theModel->SetQuasiElasticChannel(theQuasiElastic);
31 theModel->SetTransport(theCascade);
32 theModel->SetMinEnergy(theMin);
33 theModel->SetMaxEnergy(100*TeV);
36 void CMSFTFPProtonBuilder::
37 Build(G4ProtonInelasticProcess * aP)
39 theModel->SetMinEnergy(theMin);
40 theModel->SetMaxEnergy(theMax);
41 aP->RegisterMe(theModel);
42 aP->AddDataSet(
new G4ProtonInelasticCrossSection);
45 CMSFTFPProtonBuilder::
46 ~CMSFTFPProtonBuilder()
48 delete theStringDecay;
49 delete theStringModel;
52 if ( theQuasiElastic )
delete theQuasiElastic;
55 void CMSFTFPProtonBuilder::
56 Build(G4HadronElasticProcess * )