CMS 3D CMS Logo

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

#include <HadronPhysicsQGSPCMS_FTFP_BERT.h>

Inheritance diagram for HadronPhysicsQGSPCMS_FTFP_BERT:

Public Member Functions

void ConstructParticle () override
 
void ConstructProcess () override
 
 HadronPhysicsQGSPCMS_FTFP_BERT (G4double e1, G4double e2, G4double e3, G4double e4, G4double e5)
 
 HadronPhysicsQGSPCMS_FTFP_BERT (G4int verbose)
 
 ~HadronPhysicsQGSPCMS_FTFP_BERT () override
 

Private Member Functions

void CreateModels ()
 
void DumpBanner ()
 
void ExtraConfiguration ()
 
void Kaon ()
 
void Neutron ()
 
void Others ()
 
void Pion ()
 
void Proton ()
 

Private Attributes

G4double maxBERT_
 
G4double maxBERTpi_
 
G4double maxFTFP_
 
G4double minFTFP_
 
G4double minQGSP_
 

Detailed Description

Definition at line 9 of file HadronPhysicsQGSPCMS_FTFP_BERT.h.

Constructor & Destructor Documentation

◆ HadronPhysicsQGSPCMS_FTFP_BERT() [1/2]

HadronPhysicsQGSPCMS_FTFP_BERT::HadronPhysicsQGSPCMS_FTFP_BERT ( G4int  verbose)
explicit

Definition at line 46 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

47  : HadronPhysicsQGSPCMS_FTFP_BERT(3., 6., 12., 25., 12.) {}

◆ HadronPhysicsQGSPCMS_FTFP_BERT() [2/2]

HadronPhysicsQGSPCMS_FTFP_BERT::HadronPhysicsQGSPCMS_FTFP_BERT ( G4double  e1,
G4double  e2,
G4double  e3,
G4double  e4,
G4double  e5 
)
explicit

Definition at line 49 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

51  : G4VPhysicsConstructor("hInelasticQGSPCMS_FTFP_BERT") {
52  minFTFP_ = e1;
53  maxBERT_ = e2;
54  minQGSP_ = e3;
55  maxFTFP_ = e4;
56  maxBERTpi_ = e5;
57 }

References StorageManager_cfg::e1, SiPixelPhase1Clusters_cfi::e3, vertexPlots::e4, maxBERT_, maxBERTpi_, maxFTFP_, minFTFP_, and minQGSP_.

◆ ~HadronPhysicsQGSPCMS_FTFP_BERT()

HadronPhysicsQGSPCMS_FTFP_BERT::~HadronPhysicsQGSPCMS_FTFP_BERT ( )
override

Definition at line 59 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

59 {}

Member Function Documentation

◆ ConstructParticle()

void HadronPhysicsQGSPCMS_FTFP_BERT::ConstructParticle ( )
override

Definition at line 61 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

61  {
62  G4MesonConstructor pMesonConstructor;
63  pMesonConstructor.ConstructParticle();
64 
65  G4BaryonConstructor pBaryonConstructor;
66  pBaryonConstructor.ConstructParticle();
67 
68  G4ShortLivedConstructor pShortLivedConstructor;
69  pShortLivedConstructor.ConstructParticle();
70 }

◆ ConstructProcess()

void HadronPhysicsQGSPCMS_FTFP_BERT::ConstructProcess ( )
override

Definition at line 185 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

185  {
186  if (G4Threading::IsMasterThread()) {
187  DumpBanner();
188  }
189  CreateModels();
191 }

References CreateModels(), DumpBanner(), and ExtraConfiguration().

◆ CreateModels()

void HadronPhysicsQGSPCMS_FTFP_BERT::CreateModels ( )
private

Definition at line 79 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

79  {
80  Neutron();
81  Proton();
82  Pion();
83  Kaon();
84  Others();
85 }

References Kaon(), Neutron(), Others(), Pion(), and Proton().

Referenced by ConstructProcess().

◆ DumpBanner()

void HadronPhysicsQGSPCMS_FTFP_BERT::DumpBanner ( )
private

Definition at line 72 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

72  {
73  G4cout << "### QGSP_FTFP_BERT : transition between BERT and FTFP is over the interval " << minFTFP_ / CLHEP::GeV
74  << " to " << maxBERT_ / CLHEP::GeV << " GeV"
75  << " transition between FTFP and QGSP is over the interval " << minQGSP_ / CLHEP::GeV
76  << " to " << maxFTFP_ / CLHEP::GeV << G4endl;
77 }

References ecalTB2006H4_GenSimDigiReco_cfg::G4cout, GeV, maxBERT_, maxFTFP_, minFTFP_, and minQGSP_.

Referenced by ConstructProcess().

◆ ExtraConfiguration()

void HadronPhysicsQGSPCMS_FTFP_BERT::ExtraConfiguration ( )
private

Definition at line 193 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

193  {
194  const G4ParticleDefinition* neutron = G4Neutron::Neutron();
195  G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
196  if (inel) {
197  inel->AddDataSet(new G4NeutronInelasticXS());
198  }
199 
200  G4HadronicProcess* capture = nullptr;
201  G4ProcessVector* pvec = neutron->GetProcessManager()->GetProcessList();
202  size_t n = pvec->size();
203  for (size_t i = 0; i < n; ++i) {
204  if (fCapture == ((*pvec)[i])->GetProcessSubType()) {
205  capture = static_cast<G4HadronicProcess*>((*pvec)[i]);
206  break;
207  }
208  }
209  if (capture) {
210  capture->RegisterMe(new G4NeutronRadCapture());
211  capture->AddDataSet(new G4NeutronCaptureXS());
212  }
213 }

References ztee::capture(), mps_fire::i, and dqmiodumpmetadata::n.

Referenced by ConstructProcess().

◆ Kaon()

void HadronPhysicsQGSPCMS_FTFP_BERT::Kaon ( )
private

Definition at line 152 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

152  {
153  auto k = new G4KaonBuilder;
154  AddBuilder(k);
155  auto qgs = new G4QGSPKaonBuilder(true);
156  AddBuilder(qgs);
157  qgs->SetMinEnergy(minQGSP_);
158  k->RegisterMe(qgs);
159  auto ftf = new G4FTFPKaonBuilder(false);
160  AddBuilder(ftf);
161  k->RegisterMe(ftf);
162  ftf->SetMinEnergy(minFTFP_);
163  ftf->SetMaxEnergy(maxFTFP_);
164  auto bert = new G4BertiniKaonBuilder;
165  AddBuilder(bert);
166  k->RegisterMe(bert);
167  bert->SetMaxEnergy(maxBERT_);
168  bert->SetMinEnergy(0.0);
169  k->Build();
170 }

References dqmdumpme::k, maxBERT_, maxFTFP_, minFTFP_, and minQGSP_.

Referenced by CreateModels().

◆ Neutron()

void HadronPhysicsQGSPCMS_FTFP_BERT::Neutron ( )
private

Definition at line 87 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

87  {
88  //General schema:
89  // 1) Create a builder
90  // 2) Call AddBuilder
91  // 3) Configure the builder, possibly with sub-builders
92  // 4) Call builder->Build()
93  auto neu = new G4NeutronBuilder;
94  AddBuilder(neu);
95  auto qgs = new G4QGSPNeutronBuilder(true);
96  AddBuilder(qgs);
97  qgs->SetMinEnergy(minQGSP_);
98  neu->RegisterMe(qgs);
99  auto ftf = new G4FTFPNeutronBuilder(false);
100  AddBuilder(ftf);
101  ftf->SetMinEnergy(minFTFP_);
102  ftf->SetMaxEnergy(maxFTFP_);
103  neu->RegisterMe(ftf);
104  auto bert = new G4BertiniNeutronBuilder;
105  AddBuilder(bert);
106  bert->SetMinEnergy(0.0);
107  bert->SetMaxEnergy(maxBERT_);
108  neu->RegisterMe(bert);
109  neu->Build();
110 }

References maxBERT_, maxFTFP_, minFTFP_, and minQGSP_.

Referenced by CreateModels().

◆ Others()

void HadronPhysicsQGSPCMS_FTFP_BERT::Others ( )
private

Definition at line 172 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

172  {
173  auto hyp = new G4HyperonFTFPBuilder;
174  AddBuilder(hyp);
175  hyp->Build();
176 
177  auto abar = new G4AntiBarionBuilder;
178  AddBuilder(abar);
179  auto ftf = new G4FTFPAntiBarionBuilder(false);
180  AddBuilder(ftf);
181  abar->RegisterMe(ftf);
182  abar->Build();
183 }

Referenced by CreateModels().

◆ Pion()

void HadronPhysicsQGSPCMS_FTFP_BERT::Pion ( )
private

Definition at line 132 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

132  {
133  auto pi = new G4PionBuilder;
134  AddBuilder(pi);
135  auto qgs = new G4QGSPPionBuilder(true);
136  AddBuilder(qgs);
137  qgs->SetMinEnergy(minQGSP_);
138  pi->RegisterMe(qgs);
139  auto ftf = new G4FTFPPionBuilder(false);
140  AddBuilder(ftf);
141  ftf->SetMinEnergy(minFTFP_);
142  ftf->SetMaxEnergy(maxFTFP_);
143  pi->RegisterMe(ftf);
144  auto bert = new G4BertiniPionBuilder;
145  AddBuilder(bert);
146  bert->SetMinEnergy(0.0);
147  bert->SetMaxEnergy(maxBERTpi_);
148  pi->RegisterMe(bert);
149  pi->Build();
150 }

References maxBERTpi_, maxFTFP_, minFTFP_, minQGSP_, and pi.

Referenced by CreateModels().

◆ Proton()

void HadronPhysicsQGSPCMS_FTFP_BERT::Proton ( )
private

Definition at line 112 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

112  {
113  auto pro = new G4ProtonBuilder;
114  AddBuilder(pro);
115  auto qgs = new G4QGSPProtonBuilder(true);
116  AddBuilder(qgs);
117  qgs->SetMinEnergy(minQGSP_);
118  pro->RegisterMe(qgs);
119  auto ftf = new G4FTFPProtonBuilder(false);
120  AddBuilder(ftf);
121  ftf->SetMinEnergy(minFTFP_);
122  ftf->SetMaxEnergy(maxFTFP_);
123  pro->RegisterMe(ftf);
124  auto bert = new G4BertiniProtonBuilder;
125  AddBuilder(bert);
126  bert->SetMinEnergy(0.0);
127  bert->SetMaxEnergy(maxBERT_);
128  pro->RegisterMe(bert);
129  pro->Build();
130 }

References maxBERT_, maxFTFP_, minFTFP_, and minQGSP_.

Referenced by CreateModels().

Member Data Documentation

◆ maxBERT_

G4double HadronPhysicsQGSPCMS_FTFP_BERT::maxBERT_
private

◆ maxBERTpi_

G4double HadronPhysicsQGSPCMS_FTFP_BERT::maxBERTpi_
private

Definition at line 34 of file HadronPhysicsQGSPCMS_FTFP_BERT.h.

Referenced by HadronPhysicsQGSPCMS_FTFP_BERT(), and Pion().

◆ maxFTFP_

G4double HadronPhysicsQGSPCMS_FTFP_BERT::maxFTFP_
private

◆ minFTFP_

G4double HadronPhysicsQGSPCMS_FTFP_BERT::minFTFP_
private

◆ minQGSP_

G4double HadronPhysicsQGSPCMS_FTFP_BERT::minQGSP_
private
HadronPhysicsQGSPCMS_FTFP_BERT::Kaon
void Kaon()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:152
mps_fire.i
i
Definition: mps_fire.py:355
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
HadronPhysicsQGSPCMS_FTFP_BERT::Others
void Others()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:172
HadronPhysicsQGSPCMS_FTFP_BERT::minQGSP_
G4double minQGSP_
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.h:32
HadronPhysicsQGSPCMS_FTFP_BERT::CreateModels
void CreateModels()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:79
HadronPhysicsQGSPCMS_FTFP_BERT::Neutron
void Neutron()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:87
HadronPhysicsQGSPCMS_FTFP_BERT::maxFTFP_
G4double maxFTFP_
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.h:33
dqmdumpme.k
k
Definition: dqmdumpme.py:60
HadronPhysicsQGSPCMS_FTFP_BERT::ExtraConfiguration
void ExtraConfiguration()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:193
ztee.capture
def capture(fd, args)
Definition: ztee.py:94
HadronPhysicsQGSPCMS_FTFP_BERT::Proton
void Proton()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:112
HadronPhysicsQGSPCMS_FTFP_BERT::maxBERTpi_
G4double maxBERTpi_
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.h:34
HadronPhysicsQGSPCMS_FTFP_BERT::HadronPhysicsQGSPCMS_FTFP_BERT
HadronPhysicsQGSPCMS_FTFP_BERT(G4int verbose)
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:46
HadronPhysicsQGSPCMS_FTFP_BERT::Pion
void Pion()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:132
GeV
const double GeV
Definition: MathUtil.h:16
StorageManager_cfg.e1
e1
Definition: StorageManager_cfg.py:16
HadronPhysicsQGSPCMS_FTFP_BERT::DumpBanner
void DumpBanner()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:72
SiPixelPhase1Clusters_cfi.e3
e3
Definition: SiPixelPhase1Clusters_cfi.py:9
HadronPhysicsQGSPCMS_FTFP_BERT::maxBERT_
G4double maxBERT_
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.h:31
pi
const Double_t pi
Definition: trackSplitPlot.h:36
ecalTB2006H4_GenSimDigiReco_cfg.G4cout
G4cout
Definition: ecalTB2006H4_GenSimDigiReco_cfg.py:303
vertexPlots.e4
e4
Definition: vertexPlots.py:64
HadronPhysicsQGSPCMS_FTFP_BERT::minFTFP_
G4double minFTFP_
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.h:30