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::HadronPhysicsCMS ( const G4String &  name = "QGSP",
G4bool  quasiElastic = true 
)

Definition at line 14 of file HadronPhysicsCMS.cc.

15  : G4VPhysicsConstructor("hadron"),
16  theNeutrons(nullptr),
17  theBertiniNeutron(nullptr),
18  theBinaryNeutron(nullptr),
19  theFTFPNeutron(nullptr),
20  theQGSPNeutron(nullptr),
21  thePiK(nullptr),
22  theBertiniPiK(nullptr),
23  theBinaryPiK(nullptr),
24  theFTFPPiK(nullptr),
25  theQGSPPiK(nullptr),
26  thePro(nullptr),
27  theBertiniPro(nullptr),
28  theBinaryPro(nullptr),
29  theFTFPPro(nullptr),
30  theQGSPPro(nullptr),
31  theFTFNeutron(nullptr),
32  theFTFPiK(nullptr),
33  theFTFPro(nullptr),
34  modelName(name),
35  QuasiElastic(quasiElastic) {}

◆ ~HadronPhysicsCMS()

HadronPhysicsCMS::~HadronPhysicsCMS ( )
override

Definition at line 92 of file HadronPhysicsCMS.cc.

92  {
94  delete theBertiniNeutron;
95  if (theBinaryNeutron)
96  delete theBinaryNeutron;
97  if (theFTFPNeutron)
98  delete theFTFPNeutron;
99  if (theQGSPNeutron)
100  delete theQGSPNeutron;
101  if (theFTFNeutron)
102  delete theFTFNeutron;
103  delete theNeutrons;
104  if (theBertiniPro)
105  delete theBertiniPro;
106  if (theBinaryPro)
107  delete theBinaryPro;
108  if (theFTFPPro)
109  delete theFTFPPro;
110  if (theQGSPPro)
111  delete theQGSPPro;
112  if (theFTFPro)
113  delete theFTFPro;
114  delete thePro;
115  if (theBertiniPiK)
116  delete theBertiniPiK;
117  if (theBinaryPiK)
118  delete theBinaryPiK;
119  if (theFTFPPiK)
120  delete theFTFPPiK;
121  if (theQGSPPiK)
122  delete theQGSPPiK;
123  if (theFTFPiK)
124  delete theFTFPiK;
125  delete thePiK;
126 }

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

Member Function Documentation

◆ ConstructParticle()

void HadronPhysicsCMS::ConstructParticle ( )
override

Definition at line 128 of file HadronPhysicsCMS.cc.

128  {
129  G4MesonConstructor pMesonConstructor;
130  pMesonConstructor.ConstructParticle();
131 
132  G4BaryonConstructor pBaryonConstructor;
133  pBaryonConstructor.ConstructParticle();
134 
135  G4ShortLivedConstructor pShortLivedConstructor;
136  pShortLivedConstructor.ConstructParticle();
137 }

◆ ConstructProcess()

void HadronPhysicsCMS::ConstructProcess ( )
override

Definition at line 140 of file HadronPhysicsCMS.cc.

140  {
141  CreateModels();
142  theNeutrons->Build();
143  thePro->Build();
144  thePiK->Build();
145  // theMiscLHEP->Build();
146 }

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

◆ CreateModels()

void HadronPhysicsCMS::CreateModels ( )
private

Definition at line 37 of file HadronPhysicsCMS.cc.

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

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().

Member Data Documentation

◆ modelName

G4String HadronPhysicsCMS::modelName
private

Definition at line 64 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

◆ QuasiElastic

G4bool HadronPhysicsCMS::QuasiElastic
private

Definition at line 65 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

◆ theBertiniNeutron

G4BertiniNeutronBuilder* HadronPhysicsCMS::theBertiniNeutron
private

Definition at line 43 of file HadronPhysicsCMS.h.

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

◆ theBertiniPiK

G4BertiniPiKBuilder* HadronPhysicsCMS::theBertiniPiK
private

Definition at line 49 of file HadronPhysicsCMS.h.

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

◆ theBertiniPro

G4BertiniProtonBuilder* HadronPhysicsCMS::theBertiniPro
private

Definition at line 55 of file HadronPhysicsCMS.h.

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

◆ theBinaryNeutron

G4BinaryNeutronBuilder* HadronPhysicsCMS::theBinaryNeutron
private

Definition at line 44 of file HadronPhysicsCMS.h.

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

◆ theBinaryPiK

G4BinaryPiKBuilder* HadronPhysicsCMS::theBinaryPiK
private

Definition at line 50 of file HadronPhysicsCMS.h.

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

◆ theBinaryPro

G4BinaryProtonBuilder* HadronPhysicsCMS::theBinaryPro
private

Definition at line 56 of file HadronPhysicsCMS.h.

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

◆ theFTFNeutron

G4FTFBinaryNeutronBuilder* HadronPhysicsCMS::theFTFNeutron
private

Definition at line 60 of file HadronPhysicsCMS.h.

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

◆ theFTFPiK

G4FTFBinaryPiKBuilder* HadronPhysicsCMS::theFTFPiK
private

Definition at line 61 of file HadronPhysicsCMS.h.

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

◆ theFTFPNeutron

G4FTFPNeutronBuilder* HadronPhysicsCMS::theFTFPNeutron
private

Definition at line 45 of file HadronPhysicsCMS.h.

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

◆ theFTFPPiK

G4FTFPPiKBuilder* HadronPhysicsCMS::theFTFPPiK
private

Definition at line 51 of file HadronPhysicsCMS.h.

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

◆ theFTFPPro

G4FTFPProtonBuilder* HadronPhysicsCMS::theFTFPPro
private

Definition at line 57 of file HadronPhysicsCMS.h.

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

◆ theFTFPro

G4FTFBinaryProtonBuilder* HadronPhysicsCMS::theFTFPro
private

Definition at line 62 of file HadronPhysicsCMS.h.

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

◆ theNeutrons

G4NeutronBuilder* HadronPhysicsCMS::theNeutrons
private

Definition at line 42 of file HadronPhysicsCMS.h.

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

◆ thePiK

G4PiKBuilder* HadronPhysicsCMS::thePiK
private

Definition at line 48 of file HadronPhysicsCMS.h.

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

◆ thePro

G4ProtonBuilder* HadronPhysicsCMS::thePro
private

Definition at line 54 of file HadronPhysicsCMS.h.

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

◆ theQGSPNeutron

G4QGSPNeutronBuilder* HadronPhysicsCMS::theQGSPNeutron
private

Definition at line 46 of file HadronPhysicsCMS.h.

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

◆ theQGSPPiK

G4QGSPPiKBuilder* HadronPhysicsCMS::theQGSPPiK
private

Definition at line 52 of file HadronPhysicsCMS.h.

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

◆ theQGSPPro

G4QGSPProtonBuilder* HadronPhysicsCMS::theQGSPPro
private

Definition at line 58 of file HadronPhysicsCMS.h.

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

HadronPhysicsCMS::theBertiniPiK
G4BertiniPiKBuilder * theBertiniPiK
Definition: HadronPhysicsCMS.h:49
HadronPhysicsCMS::theFTFPPro
G4FTFPProtonBuilder * theFTFPPro
Definition: HadronPhysicsCMS.h:57
HadronPhysicsCMS::theQGSPPiK
G4QGSPPiKBuilder * theQGSPPiK
Definition: HadronPhysicsCMS.h:52
HadronPhysicsCMS::theBertiniNeutron
G4BertiniNeutronBuilder * theBertiniNeutron
Definition: HadronPhysicsCMS.h:43
HadronPhysicsCMS::theQGSPNeutron
G4QGSPNeutronBuilder * theQGSPNeutron
Definition: HadronPhysicsCMS.h:46
HadronPhysicsCMS::theBinaryNeutron
G4BinaryNeutronBuilder * theBinaryNeutron
Definition: HadronPhysicsCMS.h:44
GeV
const double GeV
Definition: MathUtil.h:16
HadronPhysicsCMS::theFTFNeutron
G4FTFBinaryNeutronBuilder * theFTFNeutron
Definition: HadronPhysicsCMS.h:60
HadronPhysicsCMS::theFTFPiK
G4FTFBinaryPiKBuilder * theFTFPiK
Definition: HadronPhysicsCMS.h:61
HadronPhysicsCMS::theQGSPPro
G4QGSPProtonBuilder * theQGSPPro
Definition: HadronPhysicsCMS.h:58
HadronPhysicsCMS::thePiK
G4PiKBuilder * thePiK
Definition: HadronPhysicsCMS.h:48
HadronPhysicsCMS::modelName
G4String modelName
Definition: HadronPhysicsCMS.h:64
HadronPhysicsCMS::theFTFPro
G4FTFBinaryProtonBuilder * theFTFPro
Definition: HadronPhysicsCMS.h:62
HadronPhysicsCMS::QuasiElastic
G4bool QuasiElastic
Definition: HadronPhysicsCMS.h:65
HadronPhysicsCMS::theBinaryPro
G4BinaryProtonBuilder * theBinaryPro
Definition: HadronPhysicsCMS.h:56
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
HadronPhysicsCMS::theBinaryPiK
G4BinaryPiKBuilder * theBinaryPiK
Definition: HadronPhysicsCMS.h:50
HadronPhysicsCMS::theNeutrons
G4NeutronBuilder * theNeutrons
Definition: HadronPhysicsCMS.h:42
HadronPhysicsCMS::CreateModels
void CreateModels()
Definition: HadronPhysicsCMS.cc:37
HadronPhysicsCMS::thePro
G4ProtonBuilder * thePro
Definition: HadronPhysicsCMS.h:54
HadronPhysicsCMS::theFTFPNeutron
G4FTFPNeutronBuilder * theFTFPNeutron
Definition: HadronPhysicsCMS.h:45
HadronPhysicsCMS::theBertiniPro
G4BertiniProtonBuilder * theBertiniPro
Definition: HadronPhysicsCMS.h:55
HadronPhysicsCMS::theFTFPPiK
G4FTFPPiKBuilder * theFTFPPiK
Definition: HadronPhysicsCMS.h:51