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
 
G4LHEPNeutronBuilder * theLHEPNeutron
 
G4LHEPPiKBuilder * theLHEPPiK
 
G4LHEPProtonBuilder * theLHEPPro
 
G4MiscLHEPBuilder * theMiscLHEP
 
G4NeutronBuilder * theNeutrons
 
G4PiKBuilder * thePiK
 
G4ProtonBuilder * thePro
 
G4QGSPNeutronBuilder * theQGSPNeutron
 
G4QGSPPiKBuilder * theQGSPPiK
 
G4QGSPProtonBuilder * theQGSPPro
 

Detailed Description

Definition at line 35 of file HadronPhysicsCMS.h.

Constructor & Destructor Documentation

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

Definition at line 13 of file HadronPhysicsCMS.cc.

13  :
14  G4VPhysicsConstructor("hadron"), theNeutrons(0), theBertiniNeutron(0),
20  theQGSPPro(0),
22  modelName(name),
23  QuasiElastic(quasiElastic) {}
G4LHEPProtonBuilder * theLHEPPro
G4MiscLHEPBuilder * theMiscLHEP
G4LHEPNeutronBuilder * theLHEPNeutron
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
G4LHEPPiKBuilder * theLHEPPiK
HadronPhysicsCMS::~HadronPhysicsCMS ( )
virtual

Definition at line 90 of file HadronPhysicsCMS.cc.

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

90  {
91  delete theMiscLHEP;
94  if (theFTFPNeutron) delete theFTFPNeutron;
95  if (theLHEPNeutron) delete theLHEPNeutron;
96  if (theQGSPNeutron) delete theQGSPNeutron;
97  if (theFTFNeutron) delete theFTFNeutron;
98  delete theNeutrons;
99  if (theBertiniPro) delete theBertiniPro;
100  if (theBinaryPro) delete theBinaryPro;
101  if (theFTFPPro) delete theFTFPPro;
102  if (theLHEPPro) delete theLHEPPro;
103  if (theQGSPPro) delete theQGSPPro;
104  if (theFTFPro) delete theFTFPro;
105  delete thePro;
106  if (theBertiniPiK) delete theBertiniPiK;
107  if (theBinaryPiK) delete theBinaryPiK;
108  if (theFTFPPiK) delete theFTFPPiK;
109  if (theLHEPPiK) delete theLHEPPiK;
110  if (theQGSPPiK) delete theQGSPPiK;
111  if (theFTFPiK) delete theFTFPiK;
112  delete thePiK;
113 }
G4LHEPProtonBuilder * theLHEPPro
G4MiscLHEPBuilder * theMiscLHEP
G4LHEPNeutronBuilder * theLHEPNeutron
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
G4LHEPPiKBuilder * theLHEPPiK

Member Function Documentation

void HadronPhysicsCMS::ConstructParticle ( )
virtual

Definition at line 116 of file HadronPhysicsCMS.cc.

116  {
117 
118  G4MesonConstructor pMesonConstructor;
119  pMesonConstructor.ConstructParticle();
120 
121  G4BaryonConstructor pBaryonConstructor;
122  pBaryonConstructor.ConstructParticle();
123 
124  G4ShortLivedConstructor pShortLivedConstructor;
125  pShortLivedConstructor.ConstructParticle();
126 }
void HadronPhysicsCMS::ConstructProcess ( )
virtual

Definition at line 129 of file HadronPhysicsCMS.cc.

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

129  {
130 
131  CreateModels();
132  theNeutrons->Build();
133  thePro->Build();
134  thePiK->Build();
135  theMiscLHEP->Build();
136 }
G4MiscLHEPBuilder * theMiscLHEP
G4PiKBuilder * thePiK
G4ProtonBuilder * thePro
G4NeutronBuilder * theNeutrons
void HadronPhysicsCMS::CreateModels ( )
private

Definition at line 25 of file HadronPhysicsCMS.cc.

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

Referenced by ConstructProcess().

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

Member Data Documentation

G4String HadronPhysicsCMS::modelName
private

Definition at line 78 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4bool HadronPhysicsCMS::QuasiElastic
private

Definition at line 79 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4BertiniNeutronBuilder* HadronPhysicsCMS::theBertiniNeutron
private

Definition at line 52 of file HadronPhysicsCMS.h.

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

G4BertiniPiKBuilder* HadronPhysicsCMS::theBertiniPiK
private

Definition at line 59 of file HadronPhysicsCMS.h.

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

G4BertiniProtonBuilder* HadronPhysicsCMS::theBertiniPro
private

Definition at line 66 of file HadronPhysicsCMS.h.

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

G4BinaryNeutronBuilder* HadronPhysicsCMS::theBinaryNeutron
private

Definition at line 53 of file HadronPhysicsCMS.h.

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

G4BinaryPiKBuilder* HadronPhysicsCMS::theBinaryPiK
private

Definition at line 60 of file HadronPhysicsCMS.h.

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

G4BinaryProtonBuilder* HadronPhysicsCMS::theBinaryPro
private

Definition at line 67 of file HadronPhysicsCMS.h.

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

G4FTFBinaryNeutronBuilder* HadronPhysicsCMS::theFTFNeutron
private

Definition at line 74 of file HadronPhysicsCMS.h.

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

G4FTFBinaryPiKBuilder* HadronPhysicsCMS::theFTFPiK
private

Definition at line 75 of file HadronPhysicsCMS.h.

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

G4FTFPNeutronBuilder* HadronPhysicsCMS::theFTFPNeutron
private

Definition at line 54 of file HadronPhysicsCMS.h.

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

G4FTFPPiKBuilder* HadronPhysicsCMS::theFTFPPiK
private

Definition at line 61 of file HadronPhysicsCMS.h.

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

G4FTFPProtonBuilder* HadronPhysicsCMS::theFTFPPro
private

Definition at line 68 of file HadronPhysicsCMS.h.

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

G4FTFBinaryProtonBuilder* HadronPhysicsCMS::theFTFPro
private

Definition at line 76 of file HadronPhysicsCMS.h.

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

G4LHEPNeutronBuilder* HadronPhysicsCMS::theLHEPNeutron
private

Definition at line 55 of file HadronPhysicsCMS.h.

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

G4LHEPPiKBuilder* HadronPhysicsCMS::theLHEPPiK
private

Definition at line 62 of file HadronPhysicsCMS.h.

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

G4LHEPProtonBuilder* HadronPhysicsCMS::theLHEPPro
private

Definition at line 69 of file HadronPhysicsCMS.h.

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

G4MiscLHEPBuilder* HadronPhysicsCMS::theMiscLHEP
private

Definition at line 72 of file HadronPhysicsCMS.h.

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

G4NeutronBuilder* HadronPhysicsCMS::theNeutrons
private

Definition at line 51 of file HadronPhysicsCMS.h.

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

G4PiKBuilder* HadronPhysicsCMS::thePiK
private

Definition at line 58 of file HadronPhysicsCMS.h.

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

G4ProtonBuilder* HadronPhysicsCMS::thePro
private

Definition at line 65 of file HadronPhysicsCMS.h.

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

G4QGSPNeutronBuilder* HadronPhysicsCMS::theQGSPNeutron
private

Definition at line 56 of file HadronPhysicsCMS.h.

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

G4QGSPPiKBuilder* HadronPhysicsCMS::theQGSPPiK
private

Definition at line 63 of file HadronPhysicsCMS.h.

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

G4QGSPProtonBuilder* HadronPhysicsCMS::theQGSPPro
private

Definition at line 70 of file HadronPhysicsCMS.h.

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