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

#include <HadronPhysicsNuBeam.hh>

Inheritance diagram for HadronPhysicsNuBeam:

Public Member Functions

 HadronPhysicsNuBeam (G4int verbose=1)
 
 HadronPhysicsNuBeam (const G4String &name, G4bool quasiElastic=false)
 
virtual ~HadronPhysicsNuBeam ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 

Private Member Functions

void CreateModels ()
 

Private Attributes

G4NeutronBuilder * theNeutrons
 
G4BertiniNeutronBuilder * theBertiniNeutron
 
G4FTFPNeutronBuilder * theFTFPNeutron
 
G4LEPNeutronBuilder * theLEPNeutron
 
G4PiKBuilder * thePiK
 
G4BertiniPiKBuilder * theBertiniPiK
 
G4FTFPPiKBuilder * theFTFPPiK
 
G4ProtonBuilder * thePro
 
G4BertiniProtonBuilder * theBertiniPro
 
G4FTFPProtonBuilder * theFTFPPro
 
QGSPStrFragmLundProtonBuildertheQGSPPro
 
G4HyperonFTFPBuilder * theHyperon
 
G4AntiBarionBuilder * theAntiBaryon
 
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon
 
G4bool QuasiElastic
 
G4VCrossSectionDataSet * ChipsKaonMinus
 
G4VCrossSectionDataSet * ChipsKaonPlus
 
G4VCrossSectionDataSet * ChipsKaonZero
 
G4VCrossSectionDataSet * BGGProton
 
G4VCrossSectionDataSet * BGGNeutron
 

Detailed Description

Definition at line 65 of file HadronPhysicsNuBeam.hh.

Constructor & Destructor Documentation

HadronPhysicsNuBeam::HadronPhysicsNuBeam ( G4int  verbose = 1)

Definition at line 41 of file HadronPhysicsNuBeam.cc.

42  : G4VPhysicsConstructor("hInelasticNuBeam")
43  , theNeutrons(0)
45  , theFTFPNeutron(0)
46  , theLEPNeutron(0)
47  , thePiK(0)
48  , theBertiniPiK(0)
49  , theFTFPPiK(0)
50  , thePro(0)
51  , theBertiniPro(0)
52  , theFTFPPro(0)
53  , theQGSPPro(0)
54  , theHyperon(0)
55  , theAntiBaryon(0)
57  , QuasiElastic(false)
58  , ChipsKaonMinus(0)
59  , ChipsKaonPlus(0)
60  , ChipsKaonZero(0)
61 {}
G4ProtonBuilder * thePro
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon
G4VCrossSectionDataSet * ChipsKaonZero
G4BertiniProtonBuilder * theBertiniPro
G4LEPNeutronBuilder * theLEPNeutron
G4AntiBarionBuilder * theAntiBaryon
G4VCrossSectionDataSet * ChipsKaonMinus
G4HyperonFTFPBuilder * theHyperon
G4FTFPProtonBuilder * theFTFPPro
G4FTFPPiKBuilder * theFTFPPiK
G4BertiniPiKBuilder * theBertiniPiK
QGSPStrFragmLundProtonBuilder * theQGSPPro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
G4VCrossSectionDataSet * ChipsKaonPlus
G4FTFPNeutronBuilder * theFTFPNeutron
HadronPhysicsNuBeam::HadronPhysicsNuBeam ( const G4String &  name,
G4bool  quasiElastic = false 
)

Definition at line 63 of file HadronPhysicsNuBeam.cc.

64  : G4VPhysicsConstructor(name)
65  , theNeutrons(0)
67  , theFTFPNeutron(0)
68  , theLEPNeutron(0)
69  , thePiK(0)
70  , theBertiniPiK(0)
71  , theFTFPPiK(0)
72  , thePro(0)
73  , theBertiniPro(0)
74  , theFTFPPro(0)
75  , theQGSPPro(0)
76  , theHyperon(0)
77  , theAntiBaryon(0)
79  , QuasiElastic(quasiElastic)
80  , ChipsKaonMinus(0)
81  , ChipsKaonPlus(0)
82  , ChipsKaonZero(0)
83 {}
static QCString name
Definition: declinfo.cpp:673
G4ProtonBuilder * thePro
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon
G4VCrossSectionDataSet * ChipsKaonZero
G4BertiniProtonBuilder * theBertiniPro
G4LEPNeutronBuilder * theLEPNeutron
G4AntiBarionBuilder * theAntiBaryon
G4VCrossSectionDataSet * ChipsKaonMinus
G4HyperonFTFPBuilder * theHyperon
G4FTFPProtonBuilder * theFTFPPro
G4FTFPPiKBuilder * theFTFPPiK
G4BertiniPiKBuilder * theBertiniPiK
QGSPStrFragmLundProtonBuilder * theQGSPPro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
G4VCrossSectionDataSet * ChipsKaonPlus
G4FTFPNeutronBuilder * theFTFPNeutron
HadronPhysicsNuBeam::~HadronPhysicsNuBeam ( )
virtual

Definition at line 143 of file HadronPhysicsNuBeam.cc.

144 {
145  delete theNeutrons;
146  delete theBertiniNeutron;
147  delete theFTFPNeutron;
148  delete theLEPNeutron;
149 
150  delete thePiK;
151  delete theBertiniPiK;
152  delete theFTFPPiK;
153 
154  delete thePro;
155  delete theBertiniPro;
156  delete theFTFPPro;
157  delete theQGSPPro;
158 
159  delete theHyperon;
160  delete theAntiBaryon;
161  delete theFTFPAntiBaryon;
162 }
G4ProtonBuilder * thePro
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon
G4BertiniProtonBuilder * theBertiniPro
G4LEPNeutronBuilder * theLEPNeutron
G4AntiBarionBuilder * theAntiBaryon
G4HyperonFTFPBuilder * theHyperon
G4FTFPProtonBuilder * theFTFPPro
G4FTFPPiKBuilder * theFTFPPiK
G4BertiniPiKBuilder * theBertiniPiK
QGSPStrFragmLundProtonBuilder * theQGSPPro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
G4FTFPNeutronBuilder * theFTFPNeutron

Member Function Documentation

void HadronPhysicsNuBeam::ConstructParticle ( )
virtual

Definition at line 164 of file HadronPhysicsNuBeam.cc.

165 {
166  G4MesonConstructor pMesonConstructor;
167  pMesonConstructor.ConstructParticle();
168 
169  G4BaryonConstructor pBaryonConstructor;
170  pBaryonConstructor.ConstructParticle();
171 
172  G4ShortLivedConstructor pShortLivedConstructor;
173  pShortLivedConstructor.ConstructParticle();
174 }
void HadronPhysicsNuBeam::ConstructProcess ( )
virtual

Definition at line 177 of file HadronPhysicsNuBeam.cc.

178 {
179  CreateModels();
180  theNeutrons->Build();
181  thePro->Build();
182  thePiK->Build();
183 
184  // use CHIPS cross sections also for Kaons
185  ChipsKaonMinus = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusInelasticXS::Default_Name());
186  ChipsKaonPlus = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusInelasticXS::Default_Name());
187  ChipsKaonZero = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroInelasticXS::Default_Name());
188  //
189 
190  G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(ChipsKaonMinus);
191  G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(ChipsKaonPlus);
192  G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(ChipsKaonZero );
193  G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(ChipsKaonZero );
194 
195  theHyperon->Build();
196  theAntiBaryon->Build();
197 }
G4ProtonBuilder * thePro
G4VCrossSectionDataSet * ChipsKaonZero
G4AntiBarionBuilder * theAntiBaryon
G4VCrossSectionDataSet * ChipsKaonMinus
G4HyperonFTFPBuilder * theHyperon
G4NeutronBuilder * theNeutrons
G4VCrossSectionDataSet * ChipsKaonPlus
void HadronPhysicsNuBeam::CreateModels ( )
private

Definition at line 85 of file HadronPhysicsNuBeam.cc.

86 {
87 
88  // this is fairly "standard", and is the same in FTFP_BERT
89  //
90  theNeutrons=new G4NeutronBuilder;
91  theFTFPNeutron=new G4FTFPNeutronBuilder(QuasiElastic);
92  theNeutrons->RegisterMe(theFTFPNeutron);
93  theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
94  theBertiniNeutron->SetMinEnergy(0.0*GeV);
95  theBertiniNeutron->SetMaxEnergy(5*GeV);
96  theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
97  theLEPNeutron->SetMinInelasticEnergy(0.0*eV); // no inelastic from LEP
98  theLEPNeutron->SetMaxInelasticEnergy(0.0*eV);
99 
100  // this block has quite a few modifications,
101  // incl. energy ranges that are different from FTFP_BERT
102  //
103  thePro=new G4ProtonBuilder;
104  //
105  // this is the new "custom" proton builder, tentatively for NuBeam
106  //
107  // no need to set the min energy because it's set in the ProBuilder (at 100GeV)
108  // ... and theMax will be set 100TeV via Build()
109  //
111  thePro->RegisterMe(theQGSPPro);
112  //
113  // standard FTFP builder, but energy range is adjusted
114  //
115  theFTFPPro=new G4FTFPProtonBuilder(QuasiElastic);
116  thePro->RegisterMe(theFTFPPro);
117  theFTFPPro->SetMinEnergy(7.*GeV);
118  theFTFPPro->SetMaxEnergy(101.*GeV);
119  //
120  // standard Bertini builder, but the validity limit in energy has been moved higher
121  //
122  thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
123  theBertiniPro->SetMaxEnergy(10.*GeV);
124 
125  // this one has energy ranges different from FTFP_BERT,
126  // namely, Bertini is extended up to 10GeV, and FTFP starts at 7GeV
127  //
128  thePiK=new G4PiKBuilder;
129  theFTFPPiK=new G4FTFPPiKBuilder(QuasiElastic);
130  thePiK->RegisterMe(theFTFPPiK);
131  theFTFPPiK->SetMinEnergy(7.*GeV);
132  thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder);
133  theBertiniPiK->SetMaxEnergy(10.*GeV);
134 
135  // this is "standard" and is the same as in FTFP_BERT
136  //
137  theHyperon=new G4HyperonFTFPBuilder;
138  theAntiBaryon=new G4AntiBarionBuilder;
139  theAntiBaryon->RegisterMe(theFTFPAntiBaryon=new G4FTFPAntiBarionBuilder(QuasiElastic));
140 
141 }
G4ProtonBuilder * thePro
G4FTFPAntiBarionBuilder * theFTFPAntiBaryon
static const double eV
Definition: Units.h:128
G4BertiniProtonBuilder * theBertiniPro
G4LEPNeutronBuilder * theLEPNeutron
G4AntiBarionBuilder * theAntiBaryon
G4HyperonFTFPBuilder * theHyperon
G4FTFPProtonBuilder * theFTFPPro
G4FTFPPiKBuilder * theFTFPPiK
G4BertiniPiKBuilder * theBertiniPiK
QGSPStrFragmLundProtonBuilder * theQGSPPro
G4BertiniNeutronBuilder * theBertiniNeutron
G4NeutronBuilder * theNeutrons
static const double GeV
Definition: Units.h:29
G4FTFPNeutronBuilder * theFTFPNeutron

Member Data Documentation

G4VCrossSectionDataSet* HadronPhysicsNuBeam::BGGNeutron
private

Definition at line 104 of file HadronPhysicsNuBeam.hh.

G4VCrossSectionDataSet* HadronPhysicsNuBeam::BGGProton
private

Definition at line 103 of file HadronPhysicsNuBeam.hh.

G4VCrossSectionDataSet* HadronPhysicsNuBeam::ChipsKaonMinus
private

Definition at line 100 of file HadronPhysicsNuBeam.hh.

G4VCrossSectionDataSet* HadronPhysicsNuBeam::ChipsKaonPlus
private

Definition at line 101 of file HadronPhysicsNuBeam.hh.

G4VCrossSectionDataSet* HadronPhysicsNuBeam::ChipsKaonZero
private

Definition at line 102 of file HadronPhysicsNuBeam.hh.

G4bool HadronPhysicsNuBeam::QuasiElastic
private

Definition at line 99 of file HadronPhysicsNuBeam.hh.

G4AntiBarionBuilder* HadronPhysicsNuBeam::theAntiBaryon
private

Definition at line 96 of file HadronPhysicsNuBeam.hh.

G4BertiniNeutronBuilder* HadronPhysicsNuBeam::theBertiniNeutron
private

Definition at line 80 of file HadronPhysicsNuBeam.hh.

G4BertiniPiKBuilder* HadronPhysicsNuBeam::theBertiniPiK
private

Definition at line 85 of file HadronPhysicsNuBeam.hh.

G4BertiniProtonBuilder* HadronPhysicsNuBeam::theBertiniPro
private

Definition at line 89 of file HadronPhysicsNuBeam.hh.

G4FTFPAntiBarionBuilder* HadronPhysicsNuBeam::theFTFPAntiBaryon
private

Definition at line 97 of file HadronPhysicsNuBeam.hh.

G4FTFPNeutronBuilder* HadronPhysicsNuBeam::theFTFPNeutron
private

Definition at line 81 of file HadronPhysicsNuBeam.hh.

G4FTFPPiKBuilder* HadronPhysicsNuBeam::theFTFPPiK
private

Definition at line 86 of file HadronPhysicsNuBeam.hh.

G4FTFPProtonBuilder* HadronPhysicsNuBeam::theFTFPPro
private

Definition at line 90 of file HadronPhysicsNuBeam.hh.

G4HyperonFTFPBuilder* HadronPhysicsNuBeam::theHyperon
private

Definition at line 94 of file HadronPhysicsNuBeam.hh.

G4LEPNeutronBuilder* HadronPhysicsNuBeam::theLEPNeutron
private

Definition at line 82 of file HadronPhysicsNuBeam.hh.

G4NeutronBuilder* HadronPhysicsNuBeam::theNeutrons
private

Definition at line 79 of file HadronPhysicsNuBeam.hh.

G4PiKBuilder* HadronPhysicsNuBeam::thePiK
private

Definition at line 84 of file HadronPhysicsNuBeam.hh.

G4ProtonBuilder* HadronPhysicsNuBeam::thePro
private

Definition at line 88 of file HadronPhysicsNuBeam.hh.

QGSPStrFragmLundProtonBuilder* HadronPhysicsNuBeam::theQGSPPro
private

Definition at line 92 of file HadronPhysicsNuBeam.hh.


The documentation for this class was generated from the following files: