QGSPStrFragmLundProtonBuilder.cc
Go to the documentation of this file.
1 //
2 //---------------------------------------------------------------------------
3 //
4 // ClassName: QGSPStrFragmLundProtonBuilder
5 //
6 // Author: Julia Yarba, FNAL/CD (2013)
7 //
8 //
9 //----------------------------------------------------------------------------
10 //
11 //specific no NuMI-X
13 //
14 #include "G4SystemOfUnits.hh"
15 #include "G4ParticleDefinition.hh"
16 #include "G4ParticleTable.hh"
17 #include "G4ProcessManager.hh"
18 #include "G4ProtonInelasticCrossSection.hh"
19 #include "G4BGGNucleonInelasticXS.hh"
20 
22 QGSPStrFragmLundProtonBuilder(G4bool quasiElastic)
23  {
24  theMin = 100*GeV;
25  theModel = new G4TheoFSGenerator("QGSP");
26 
27  theStringModel = new G4QGSModel< G4QGSParticipants >;
28  theStringDecay = new G4ExcitedStringDecay(theStrFragm = new G4LundStringFragmentation);
29  theStringModel->SetFragmentationModel(theStringDecay);
30 
31  theCascade = new G4GeneratorPrecompoundInterface;
32  thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
33  theCascade->SetDeExcitation(thePreEquilib);
34 
35  theModel->SetTransport(theCascade);
36  theModel->SetHighEnergyGenerator(theStringModel);
37  if (quasiElastic)
38  {
39  theQuasiElastic=new G4QuasiElasticChannel;
40  theModel->SetQuasiElasticChannel(theQuasiElastic);
41  } else
42  { theQuasiElastic=0;}
43 
44  }
45 
47 Build(G4ProtonInelasticProcess * aP)
48  {
49  aP->AddDataSet(new G4BGGNucleonInelasticXS(G4Proton::Proton()));
50  theModel->SetMinEnergy(theMin);
51  theModel->SetMaxEnergy(100*TeV);
52  aP->RegisterMe(theModel);
53  }
54 
56 Build(G4HadronElasticProcess * )
57  {
58  }
59 
61  {
62  delete thePreEquilib;
63  delete theCascade;
64  if ( theQuasiElastic ) delete theQuasiElastic;
65  delete theStringDecay;
66  delete theStringModel;
67  delete theModel;
68  delete theStrFragm;
69  //delete theHandler;
70  }
71 
72 
QGSPStrFragmLundProtonBuilder(G4bool quasiElastic=true)
G4QGSModel< G4QGSParticipants > * theStringModel
virtual void Build(G4HadronElasticProcess *aP)
G4GeneratorPrecompoundInterface * theCascade
static const double GeV
Definition: Units.h:29
static const double TeV
Definition: Units.h:131