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 47 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

48  : 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 50 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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 60 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

60 {}

Member Function Documentation

◆ ConstructParticle()

void HadronPhysicsQGSPCMS_FTFP_BERT::ConstructParticle ( )
override

Definition at line 62 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

◆ ConstructProcess()

void HadronPhysicsQGSPCMS_FTFP_BERT::ConstructProcess ( )
override

Definition at line 186 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

186  {
187  if (G4Threading::IsMasterThread()) {
188  DumpBanner();
189  }
190  CreateModels();
192 }

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

◆ CreateModels()

void HadronPhysicsQGSPCMS_FTFP_BERT::CreateModels ( )
private

Definition at line 80 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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

Referenced by ConstructProcess().

◆ DumpBanner()

void HadronPhysicsQGSPCMS_FTFP_BERT::DumpBanner ( )
private

Definition at line 73 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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

Referenced by ConstructProcess().

◆ ExtraConfiguration()

void HadronPhysicsQGSPCMS_FTFP_BERT::ExtraConfiguration ( )
private

Definition at line 194 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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

Referenced by ConstructProcess().

◆ Kaon()

void HadronPhysicsQGSPCMS_FTFP_BERT::Kaon ( )
private

Definition at line 153 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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

Referenced by CreateModels().

◆ Neutron()

void HadronPhysicsQGSPCMS_FTFP_BERT::Neutron ( )
private

Definition at line 88 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

References maxBERT_, maxFTFP_, minFTFP_, and minQGSP_.

Referenced by CreateModels().

◆ Others()

void HadronPhysicsQGSPCMS_FTFP_BERT::Others ( )
private

Definition at line 173 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

Referenced by CreateModels().

◆ Pion()

void HadronPhysicsQGSPCMS_FTFP_BERT::Pion ( )
private

Definition at line 133 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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

Referenced by CreateModels().

◆ Proton()

void HadronPhysicsQGSPCMS_FTFP_BERT::Proton ( )
private

Definition at line 113 of file HadronPhysicsQGSPCMS_FTFP_BERT.cc.

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

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:153
mps_fire.i
i
Definition: mps_fire.py:428
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
HadronPhysicsQGSPCMS_FTFP_BERT::Others
void Others()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:173
HadronPhysicsQGSPCMS_FTFP_BERT::minQGSP_
G4double minQGSP_
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.h:32
HadronPhysicsQGSPCMS_FTFP_BERT::CreateModels
void CreateModels()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:80
HadronPhysicsQGSPCMS_FTFP_BERT::Neutron
void Neutron()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:88
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:194
ztee.capture
def capture(fd, args)
Definition: ztee.py:94
HadronPhysicsQGSPCMS_FTFP_BERT::Proton
void Proton()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:113
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:47
HadronPhysicsQGSPCMS_FTFP_BERT::Pion
void Pion()
Definition: HadronPhysicsQGSPCMS_FTFP_BERT.cc:133
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:73
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
CMSHyperonFTFPBuilder
Definition: CMSHyperonFTFPBuilder.h:17
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