CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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

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

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(0), theBertiniNeutron(0),
18  theBinaryPiK(0), theFTFPPiK(0),
20  theBinaryPro(0), theFTFPPro(0),
21  theQGSPPro(0),
22  theFTFNeutron(0), theFTFPiK(0), theFTFPro(0),
23  modelName(name),
24  QuasiElastic(quasiElastic) {}
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 ( )
virtual

Definition at line 83 of file HadronPhysicsCMS.cc.

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

83  {
86  if (theFTFPNeutron) delete theFTFPNeutron;
87  if (theQGSPNeutron) delete theQGSPNeutron;
88  if (theFTFNeutron) delete theFTFNeutron;
89  delete theNeutrons;
90  if (theBertiniPro) delete theBertiniPro;
91  if (theBinaryPro) delete theBinaryPro;
92  if (theFTFPPro) delete theFTFPPro;
93  if (theQGSPPro) delete theQGSPPro;
94  if (theFTFPro) delete theFTFPro;
95  delete thePro;
96  if (theBertiniPiK) delete theBertiniPiK;
97  if (theBinaryPiK) delete theBinaryPiK;
98  if (theFTFPPiK) delete theFTFPPiK;
99  if (theQGSPPiK) delete theQGSPPiK;
100  if (theFTFPiK) delete theFTFPiK;
101  delete thePiK;
102 }
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 ( )
virtual

Definition at line 105 of file HadronPhysicsCMS.cc.

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

Definition at line 118 of file HadronPhysicsCMS.cc.

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

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

Definition at line 26 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().

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

Referenced by CreateModels().

G4bool HadronPhysicsCMS::QuasiElastic
private

Definition at line 71 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4BertiniNeutronBuilder* HadronPhysicsCMS::theBertiniNeutron
private

Definition at line 48 of file HadronPhysicsCMS.h.

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

G4BertiniPiKBuilder* HadronPhysicsCMS::theBertiniPiK
private

Definition at line 54 of file HadronPhysicsCMS.h.

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

G4BertiniProtonBuilder* HadronPhysicsCMS::theBertiniPro
private

Definition at line 60 of file HadronPhysicsCMS.h.

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

G4BinaryNeutronBuilder* HadronPhysicsCMS::theBinaryNeutron
private

Definition at line 49 of file HadronPhysicsCMS.h.

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

G4BinaryPiKBuilder* HadronPhysicsCMS::theBinaryPiK
private

Definition at line 55 of file HadronPhysicsCMS.h.

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

G4BinaryProtonBuilder* HadronPhysicsCMS::theBinaryPro
private

Definition at line 61 of file HadronPhysicsCMS.h.

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

G4FTFBinaryNeutronBuilder* HadronPhysicsCMS::theFTFNeutron
private

Definition at line 66 of file HadronPhysicsCMS.h.

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

G4FTFBinaryPiKBuilder* HadronPhysicsCMS::theFTFPiK
private

Definition at line 67 of file HadronPhysicsCMS.h.

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

G4FTFPNeutronBuilder* HadronPhysicsCMS::theFTFPNeutron
private

Definition at line 50 of file HadronPhysicsCMS.h.

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

G4FTFPPiKBuilder* HadronPhysicsCMS::theFTFPPiK
private

Definition at line 56 of file HadronPhysicsCMS.h.

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

G4FTFPProtonBuilder* HadronPhysicsCMS::theFTFPPro
private

Definition at line 62 of file HadronPhysicsCMS.h.

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

G4FTFBinaryProtonBuilder* HadronPhysicsCMS::theFTFPro
private

Definition at line 68 of file HadronPhysicsCMS.h.

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

G4NeutronBuilder* HadronPhysicsCMS::theNeutrons
private

Definition at line 47 of file HadronPhysicsCMS.h.

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

G4PiKBuilder* HadronPhysicsCMS::thePiK
private

Definition at line 53 of file HadronPhysicsCMS.h.

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

G4ProtonBuilder* HadronPhysicsCMS::thePro
private

Definition at line 59 of file HadronPhysicsCMS.h.

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

G4QGSPNeutronBuilder* HadronPhysicsCMS::theQGSPNeutron
private

Definition at line 51 of file HadronPhysicsCMS.h.

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

G4QGSPPiKBuilder* HadronPhysicsCMS::theQGSPPiK
private

Definition at line 57 of file HadronPhysicsCMS.h.

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

G4QGSPProtonBuilder* HadronPhysicsCMS::theQGSPPro
private

Definition at line 63 of file HadronPhysicsCMS.h.

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