CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
HadronPhysicsCMS Class Reference

#include <HadronPhysicsCMS.h>

Inheritance diagram for HadronPhysicsCMS:

Public Member Functions

void ConstructParticle () override
 
void ConstructProcess () override
 
 HadronPhysicsCMS (const G4String &name="QGSP", G4bool quasiElastic=true)
 
 ~HadronPhysicsCMS () override
 

Private Member Functions

void CreateModels ()
 

Private Attributes

G4String modelName
 
G4bool QuasiElastic
 
G4BertiniNeutronBuilder * theBertiniNeutron
 
G4BertiniPiKBuilder * theBertiniPiK
 
G4BertiniProtonBuilder * theBertiniPro
 
G4BinaryNeutronBuilder * theBinaryNeutron
 
G4BinaryPiKBuilder * theBinaryPiK
 
G4BinaryProtonBuilder * theBinaryPro
 
G4FTFBinaryNeutronBuilder * theFTFNeutron
 
G4FTFBinaryPiKBuilder * theFTFPiK
 
G4FTFPNeutronBuilder * theFTFPNeutron
 
G4FTFPPiKBuilder * theFTFPPiK
 
G4FTFPProtonBuilder * theFTFPPro
 
G4FTFBinaryProtonBuilder * theFTFPro
 
G4NeutronBuilder * theNeutrons
 
G4PiKBuilder * thePiK
 
G4ProtonBuilder * thePro
 
G4QGSPNeutronBuilder * theQGSPNeutron
 
G4QGSPPiKBuilder * theQGSPPiK
 
G4QGSPProtonBuilder * theQGSPPro
 

Detailed Description

Definition at line 31 of file HadronPhysicsCMS.h.

Constructor & Destructor Documentation

HadronPhysicsCMS::HadronPhysicsCMS ( const G4String &  name = "QGSP",
G4bool  quasiElastic = true 
)

Definition at line 14 of file HadronPhysicsCMS.cc.

14  :
15  G4VPhysicsConstructor("hadron"), theNeutrons(nullptr), theBertiniNeutron(nullptr),
16  theBinaryNeutron(nullptr), theFTFPNeutron(nullptr),
17  theQGSPNeutron(nullptr), thePiK(nullptr), theBertiniPiK(nullptr),
18  theBinaryPiK(nullptr), theFTFPPiK(nullptr),
19  theQGSPPiK(nullptr), thePro(nullptr),theBertiniPro(nullptr),
20  theBinaryPro(nullptr), theFTFPPro(nullptr),
21  theQGSPPro(nullptr),
22  theFTFNeutron(nullptr), theFTFPiK(nullptr), theFTFPro(nullptr),
23  modelName(name),
24  QuasiElastic(quasiElastic)
25 {}
G4QGSPProtonBuilder * theQGSPPro
G4FTFPNeutronBuilder * theFTFPNeutron
G4FTFBinaryNeutronBuilder * theFTFNeutron
G4BertiniProtonBuilder * theBertiniPro
G4BertiniPiKBuilder * theBertiniPiK
G4FTFBinaryPiKBuilder * theFTFPiK
G4FTFBinaryProtonBuilder * theFTFPro
G4FTFPPiKBuilder * theFTFPPiK
G4PiKBuilder * thePiK
G4FTFPProtonBuilder * theFTFPPro
G4BinaryProtonBuilder * theBinaryPro
G4QGSPNeutronBuilder * theQGSPNeutron
G4ProtonBuilder * thePro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
G4BinaryPiKBuilder * theBinaryPiK
G4QGSPPiKBuilder * theQGSPPiK
G4BinaryNeutronBuilder * theBinaryNeutron
HadronPhysicsCMS::~HadronPhysicsCMS ( )
override

Definition at line 84 of file HadronPhysicsCMS.cc.

References theBertiniNeutron, theBertiniPiK, theBertiniPro, theBinaryNeutron, theBinaryPiK, theBinaryPro, theFTFNeutron, theFTFPiK, theFTFPNeutron, theFTFPPiK, theFTFPPro, theFTFPro, theNeutrons, thePiK, thePro, theQGSPNeutron, theQGSPPiK, and theQGSPPro.

84  {
87  if (theFTFPNeutron) delete theFTFPNeutron;
88  if (theQGSPNeutron) delete theQGSPNeutron;
89  if (theFTFNeutron) delete theFTFNeutron;
90  delete theNeutrons;
91  if (theBertiniPro) delete theBertiniPro;
92  if (theBinaryPro) delete theBinaryPro;
93  if (theFTFPPro) delete theFTFPPro;
94  if (theQGSPPro) delete theQGSPPro;
95  if (theFTFPro) delete theFTFPro;
96  delete thePro;
97  if (theBertiniPiK) delete theBertiniPiK;
98  if (theBinaryPiK) delete theBinaryPiK;
99  if (theFTFPPiK) delete theFTFPPiK;
100  if (theQGSPPiK) delete theQGSPPiK;
101  if (theFTFPiK) delete theFTFPiK;
102  delete thePiK;
103 }
G4QGSPProtonBuilder * theQGSPPro
G4FTFPNeutronBuilder * theFTFPNeutron
G4FTFBinaryNeutronBuilder * theFTFNeutron
G4BertiniProtonBuilder * theBertiniPro
G4BertiniPiKBuilder * theBertiniPiK
G4FTFBinaryPiKBuilder * theFTFPiK
G4FTFBinaryProtonBuilder * theFTFPro
G4FTFPPiKBuilder * theFTFPPiK
G4PiKBuilder * thePiK
G4FTFPProtonBuilder * theFTFPPro
G4BinaryProtonBuilder * theBinaryPro
G4QGSPNeutronBuilder * theQGSPNeutron
G4ProtonBuilder * thePro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
G4BinaryPiKBuilder * theBinaryPiK
G4QGSPPiKBuilder * theQGSPPiK
G4BinaryNeutronBuilder * theBinaryNeutron

Member Function Documentation

void HadronPhysicsCMS::ConstructParticle ( )
override

Definition at line 106 of file HadronPhysicsCMS.cc.

106  {
107 
108  G4MesonConstructor pMesonConstructor;
109  pMesonConstructor.ConstructParticle();
110 
111  G4BaryonConstructor pBaryonConstructor;
112  pBaryonConstructor.ConstructParticle();
113 
114  G4ShortLivedConstructor pShortLivedConstructor;
115  pShortLivedConstructor.ConstructParticle();
116 }
void HadronPhysicsCMS::ConstructProcess ( )
override

Definition at line 119 of file HadronPhysicsCMS.cc.

References CreateModels(), theNeutrons, thePiK, and thePro.

119  {
120 
121  CreateModels();
122  theNeutrons->Build();
123  thePro->Build();
124  thePiK->Build();
125  // theMiscLHEP->Build();
126 }
G4PiKBuilder * thePiK
G4ProtonBuilder * thePro
G4NeutronBuilder * theNeutrons
void HadronPhysicsCMS::CreateModels ( )
private

Definition at line 27 of file HadronPhysicsCMS.cc.

References GeV, modelName, QuasiElastic, theBertiniNeutron, theBertiniPiK, theBertiniPro, theBinaryNeutron, theBinaryPiK, theBinaryPro, theFTFNeutron, theFTFPiK, theFTFPNeutron, theFTFPPiK, theFTFPPro, theFTFPro, theNeutrons, thePiK, thePro, theQGSPNeutron, theQGSPPiK, and theQGSPPro.

Referenced by ConstructProcess().

27  {
28 
29  theNeutrons = new G4NeutronBuilder;
30  thePro = new G4ProtonBuilder;
31  thePiK = new G4PiKBuilder;
32 
33  if (modelName == "Bertini") {
34  theBertiniNeutron = new G4BertiniNeutronBuilder();
35  theBertiniNeutron->SetMaxEnergy(30.0*GeV);
36  theNeutrons->RegisterMe(theBertiniNeutron);
37  theBertiniPro = new G4BertiniProtonBuilder();
38  theBertiniPro->SetMaxEnergy(30.0*GeV);
39  thePro->RegisterMe(theBertiniPro);
40  theBertiniPiK = new G4BertiniPiKBuilder();
41  theBertiniPiK->SetMaxEnergy(30.0*GeV);
42  thePiK->RegisterMe(theBertiniPiK);
43  } else if (modelName == "Binary") {
44  theBinaryNeutron = new G4BinaryNeutronBuilder();
45  theBinaryNeutron->SetMaxEnergy(30.0*GeV);
46  theNeutrons->RegisterMe(theBinaryNeutron);
47  theBinaryPro = new G4BinaryProtonBuilder();
48  theBinaryPro->SetMaxEnergy(30.0*GeV);
49  thePro->RegisterMe(theBinaryPro);
50  theBinaryPiK = new G4BinaryPiKBuilder();
51  theBinaryPiK->SetMaxEnergy(30.0*GeV);
52  thePiK->RegisterMe(theBinaryPiK);
53  } else if (modelName == "FTFP") {
54  theFTFPNeutron = new G4FTFPNeutronBuilder();
55  theFTFPNeutron->SetMinEnergy(0.1*GeV);
56  theNeutrons->RegisterMe(theFTFPNeutron);
57  theFTFPPro = new G4FTFPProtonBuilder();
58  theFTFPPro->SetMinEnergy(0.1*GeV);
59  thePro->RegisterMe(theFTFPPro);
60  theFTFPPiK = new G4FTFPPiKBuilder();
61  theFTFPPiK->SetMinEnergy(0.1*GeV);
62  thePiK->RegisterMe(theFTFPPiK);
63  } else if (modelName == "FTF") {
64  theFTFNeutron = new G4FTFBinaryNeutronBuilder();
65  theNeutrons->RegisterMe(theFTFNeutron);
66  theFTFPro = new G4FTFBinaryProtonBuilder();
67  thePro->RegisterMe(theFTFPro);
68  theFTFPiK = new G4FTFBinaryPiKBuilder();
69  thePiK->RegisterMe(theFTFPiK);
70  } else {
71  theQGSPNeutron = new G4QGSPNeutronBuilder(QuasiElastic);
72  theQGSPNeutron->SetMinEnergy(0.1*GeV);
73  theNeutrons->RegisterMe(theQGSPNeutron);
74  theQGSPPro = new G4QGSPProtonBuilder(QuasiElastic);
75  theQGSPPro->SetMinEnergy(0.1*GeV);
76  thePro->RegisterMe(theQGSPPro);
77  theQGSPPiK = new G4QGSPPiKBuilder(QuasiElastic);
78  theQGSPPiK->SetMinEnergy(0.1*GeV);
79  thePiK->RegisterMe(theQGSPPiK);
80  }
81 
82 }
const double GeV
Definition: MathUtil.h:16
G4QGSPProtonBuilder * theQGSPPro
G4FTFPNeutronBuilder * theFTFPNeutron
G4FTFBinaryNeutronBuilder * theFTFNeutron
G4BertiniProtonBuilder * theBertiniPro
G4BertiniPiKBuilder * theBertiniPiK
G4FTFBinaryPiKBuilder * theFTFPiK
G4FTFBinaryProtonBuilder * theFTFPro
G4FTFPPiKBuilder * theFTFPPiK
G4PiKBuilder * thePiK
G4FTFPProtonBuilder * theFTFPPro
G4BinaryProtonBuilder * theBinaryPro
G4QGSPNeutronBuilder * theQGSPNeutron
G4ProtonBuilder * thePro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
G4BinaryPiKBuilder * theBinaryPiK
G4QGSPPiKBuilder * theQGSPPiK
G4BinaryNeutronBuilder * theBinaryNeutron

Member Data Documentation

G4String HadronPhysicsCMS::modelName
private

Definition at line 68 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4bool HadronPhysicsCMS::QuasiElastic
private

Definition at line 69 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4BertiniNeutronBuilder* HadronPhysicsCMS::theBertiniNeutron
private

Definition at line 46 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BertiniPiKBuilder* HadronPhysicsCMS::theBertiniPiK
private

Definition at line 52 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BertiniProtonBuilder* HadronPhysicsCMS::theBertiniPro
private

Definition at line 58 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BinaryNeutronBuilder* HadronPhysicsCMS::theBinaryNeutron
private

Definition at line 47 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BinaryPiKBuilder* HadronPhysicsCMS::theBinaryPiK
private

Definition at line 53 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BinaryProtonBuilder* HadronPhysicsCMS::theBinaryPro
private

Definition at line 59 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFBinaryNeutronBuilder* HadronPhysicsCMS::theFTFNeutron
private

Definition at line 64 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFBinaryPiKBuilder* HadronPhysicsCMS::theFTFPiK
private

Definition at line 65 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFPNeutronBuilder* HadronPhysicsCMS::theFTFPNeutron
private

Definition at line 48 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFPPiKBuilder* HadronPhysicsCMS::theFTFPPiK
private

Definition at line 54 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFPProtonBuilder* HadronPhysicsCMS::theFTFPPro
private

Definition at line 60 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFBinaryProtonBuilder* HadronPhysicsCMS::theFTFPro
private

Definition at line 66 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4NeutronBuilder* HadronPhysicsCMS::theNeutrons
private

Definition at line 45 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4PiKBuilder* HadronPhysicsCMS::thePiK
private

Definition at line 51 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4ProtonBuilder* HadronPhysicsCMS::thePro
private

Definition at line 57 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4QGSPNeutronBuilder* HadronPhysicsCMS::theQGSPNeutron
private

Definition at line 49 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSPPiKBuilder* HadronPhysicsCMS::theQGSPPiK
private

Definition at line 55 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSPProtonBuilder* HadronPhysicsCMS::theQGSPPro
private

Definition at line 61 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().