CMS 3D CMS Logo

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

#include <CMSHadronPhysicsFTFP_BERT106.h>

Inheritance diagram for CMSHadronPhysicsFTFP_BERT106:

Public Member Functions

 CMSHadronPhysicsFTFP_BERT106 (G4double e1, G4double e2, G4double e3)
 
 CMSHadronPhysicsFTFP_BERT106 (G4int verb)
 
void ConstructParticle () override
 
void ConstructProcess () override
 
 ~CMSHadronPhysicsFTFP_BERT106 () 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 minFTFP_
 

Detailed Description

Definition at line 19 of file CMSHadronPhysicsFTFP_BERT106.h.

Constructor & Destructor Documentation

◆ CMSHadronPhysicsFTFP_BERT106() [1/2]

CMSHadronPhysicsFTFP_BERT106::CMSHadronPhysicsFTFP_BERT106 ( G4int  verb)
explicit

Definition at line 50 of file CMSHadronPhysicsFTFP_BERT106.cc.

◆ CMSHadronPhysicsFTFP_BERT106() [2/2]

CMSHadronPhysicsFTFP_BERT106::CMSHadronPhysicsFTFP_BERT106 ( G4double  e1,
G4double  e2,
G4double  e3 
)
explicit

Definition at line 53 of file CMSHadronPhysicsFTFP_BERT106.cc.

54  : G4VPhysicsConstructor("hInelastic FTFP_BERT") {
55  minFTFP_ = e1;
56  maxBERT_ = e2;
57  maxBERTpi_ = e3;
58 }

References StorageManager_cfg::e1, SiPixelPhase1Clusters_cfi::e3, maxBERT_, maxBERTpi_, and minFTFP_.

◆ ~CMSHadronPhysicsFTFP_BERT106()

CMSHadronPhysicsFTFP_BERT106::~CMSHadronPhysicsFTFP_BERT106 ( )
override

Definition at line 60 of file CMSHadronPhysicsFTFP_BERT106.cc.

60 {}

Member Function Documentation

◆ ConstructParticle()

void CMSHadronPhysicsFTFP_BERT106::ConstructParticle ( )
override

Definition at line 62 of file CMSHadronPhysicsFTFP_BERT106.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 CMSHadronPhysicsFTFP_BERT106::ConstructProcess ( )
override

Definition at line 164 of file CMSHadronPhysicsFTFP_BERT106.cc.

164  {
165  if (G4Threading::IsMasterThread()) {
166  DumpBanner();
167  }
168  CreateModels();
170 }

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

◆ CreateModels()

void CMSHadronPhysicsFTFP_BERT106::CreateModels ( )
private

Definition at line 79 of file CMSHadronPhysicsFTFP_BERT106.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 CMSHadronPhysicsFTFP_BERT106::DumpBanner ( )
private

Definition at line 73 of file CMSHadronPhysicsFTFP_BERT106.cc.

73  {
74  G4cout << "### FTFP_BERT : transition between BERT and FTFP is over the interval " << minFTFP_ / CLHEP::GeV << " to "
75  << maxBERT_ / CLHEP::GeV << " GeV"
76  << " GeV; for pions up to " << maxBERTpi_ / CLHEP::GeV << " GeV" << G4endl;
77 }

References ecalTB2006H4_GenSimDigiReco_cfg::G4cout, GeV, maxBERT_, maxBERTpi_, and minFTFP_.

Referenced by ConstructProcess().

◆ ExtraConfiguration()

void CMSHadronPhysicsFTFP_BERT106::ExtraConfiguration ( )
private

Definition at line 172 of file CMSHadronPhysicsFTFP_BERT106.cc.

172  {
173  const G4ParticleDefinition* neutron = G4Neutron::Neutron();
174  G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
175  if (inel) {
176  inel->AddDataSet(new G4NeutronInelasticXS());
177  }
178 
179  G4HadronicProcess* capture = nullptr;
180  G4ProcessVector* pvec = neutron->GetProcessManager()->GetProcessList();
181  size_t n = pvec->size();
182  for (size_t i = 0; i < n; ++i) {
183  if (fCapture == ((*pvec)[i])->GetProcessSubType()) {
184  capture = static_cast<G4HadronicProcess*>((*pvec)[i]);
185  break;
186  }
187  }
188  if (capture) {
189  capture->RegisterMe(new G4NeutronRadCapture());
190  capture->AddDataSet(new G4NeutronCaptureXS());
191  }
192 }

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

Referenced by ConstructProcess().

◆ Kaon()

void CMSHadronPhysicsFTFP_BERT106::Kaon ( )
private

Definition at line 135 of file CMSHadronPhysicsFTFP_BERT106.cc.

135  {
136  auto k = new G4KaonBuilder;
137  AddBuilder(k);
138  auto ftfpk = new G4FTFPKaonBuilder(false);
139  AddBuilder(ftfpk);
140  k->RegisterMe(ftfpk);
141  ftfpk->SetMinEnergy(minFTFP_);
142  auto bertk = new G4BertiniKaonBuilder;
143  AddBuilder(bertk);
144  k->RegisterMe(bertk);
145  bertk->SetMaxEnergy(maxBERT_);
146  k->Build();
147 }

References dqmdumpme::k, maxBERT_, and minFTFP_.

Referenced by CreateModels().

◆ Neutron()

void CMSHadronPhysicsFTFP_BERT106::Neutron ( )
private

Definition at line 87 of file CMSHadronPhysicsFTFP_BERT106.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 ftfpn = new G4FTFPNeutronBuilder(false);
96  AddBuilder(ftfpn);
97  neu->RegisterMe(ftfpn);
98  ftfpn->SetMinEnergy(minFTFP_);
99  auto bertn = new G4BertiniNeutronBuilder;
100  AddBuilder(bertn);
101  neu->RegisterMe(bertn);
102  bertn->SetMinEnergy(0.0);
103  bertn->SetMaxEnergy(maxBERT_);
104  neu->Build();
105 }

References maxBERT_, and minFTFP_.

Referenced by CreateModels().

◆ Others()

void CMSHadronPhysicsFTFP_BERT106::Others ( )
private

===== Anti-barions==== //

Definition at line 149 of file CMSHadronPhysicsFTFP_BERT106.cc.

149  {
150  //===== Hyperons ====== //
151  auto hyp = new CMSHyperonFTFPBuilder;
152  AddBuilder(hyp);
153  hyp->Build();
154 
156  auto abar = new G4AntiBarionBuilder;
157  AddBuilder(abar);
158  auto ftfpabar = new G4FTFPAntiBarionBuilder(false);
159  AddBuilder(ftfpabar);
160  abar->RegisterMe(ftfpabar);
161  abar->Build();
162 }

Referenced by CreateModels().

◆ Pion()

void CMSHadronPhysicsFTFP_BERT106::Pion ( )
private

Definition at line 121 of file CMSHadronPhysicsFTFP_BERT106.cc.

121  {
122  auto pi = new G4PionBuilder;
123  AddBuilder(pi);
124  auto ftfppi = new G4FTFPPionBuilder(false);
125  AddBuilder(ftfppi);
126  pi->RegisterMe(ftfppi);
127  ftfppi->SetMinEnergy(minFTFP_);
128  auto bertpi = new G4BertiniPionBuilder;
129  AddBuilder(bertpi);
130  pi->RegisterMe(bertpi);
131  bertpi->SetMaxEnergy(maxBERTpi_);
132  pi->Build();
133 }

References maxBERTpi_, minFTFP_, and pi.

Referenced by CreateModels().

◆ Proton()

void CMSHadronPhysicsFTFP_BERT106::Proton ( )
private

Definition at line 107 of file CMSHadronPhysicsFTFP_BERT106.cc.

107  {
108  auto pro = new G4ProtonBuilder;
109  AddBuilder(pro);
110  auto ftfpp = new G4FTFPProtonBuilder(false);
111  AddBuilder(ftfpp);
112  pro->RegisterMe(ftfpp);
113  ftfpp->SetMinEnergy(minFTFP_);
114  auto bertp = new G4BertiniProtonBuilder;
115  AddBuilder(bertp);
116  pro->RegisterMe(bertp);
117  bertp->SetMaxEnergy(maxBERT_);
118  pro->Build();
119 }

References maxBERT_, and minFTFP_.

Referenced by CreateModels().

Member Data Documentation

◆ maxBERT_

G4double CMSHadronPhysicsFTFP_BERT106::maxBERT_
private

◆ maxBERTpi_

G4double CMSHadronPhysicsFTFP_BERT106::maxBERTpi_
private

Definition at line 42 of file CMSHadronPhysicsFTFP_BERT106.h.

Referenced by CMSHadronPhysicsFTFP_BERT106(), DumpBanner(), and Pion().

◆ minFTFP_

G4double CMSHadronPhysicsFTFP_BERT106::minFTFP_
private
CMSHadronPhysicsFTFP_BERT106::Kaon
void Kaon()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:135
mps_fire.i
i
Definition: mps_fire.py:428
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
CMSHadronPhysicsFTFP_BERT106::Neutron
void Neutron()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:87
CMSHadronPhysicsFTFP_BERT106::Others
void Others()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:149
CMSHadronPhysicsFTFP_BERT106::CMSHadronPhysicsFTFP_BERT106
CMSHadronPhysicsFTFP_BERT106(G4int verb)
Definition: CMSHadronPhysicsFTFP_BERT106.cc:50
CMSHadronPhysicsFTFP_BERT106::DumpBanner
void DumpBanner()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:73
dqmdumpme.k
k
Definition: dqmdumpme.py:60
ztee.capture
def capture(fd, args)
Definition: ztee.py:94
CMSHadronPhysicsFTFP_BERT106::ExtraConfiguration
void ExtraConfiguration()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:172
GeV
const double GeV
Definition: MathUtil.h:16
StorageManager_cfg.e1
e1
Definition: StorageManager_cfg.py:16
CMSHadronPhysicsFTFP_BERT106::maxBERTpi_
G4double maxBERTpi_
Definition: CMSHadronPhysicsFTFP_BERT106.h:42
SiPixelPhase1Clusters_cfi.e3
e3
Definition: SiPixelPhase1Clusters_cfi.py:9
CMSHadronPhysicsFTFP_BERT106::Proton
void Proton()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:107
CMSHadronPhysicsFTFP_BERT106::Pion
void Pion()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:121
CMSHadronPhysicsFTFP_BERT106::minFTFP_
G4double minFTFP_
Definition: CMSHadronPhysicsFTFP_BERT106.h:40
pi
const Double_t pi
Definition: trackSplitPlot.h:36
CMSHadronPhysicsFTFP_BERT106::CreateModels
void CreateModels()
Definition: CMSHadronPhysicsFTFP_BERT106.cc:79
CMSHyperonFTFPBuilder
Definition: CMSHyperonFTFPBuilder.h:17
ecalTB2006H4_GenSimDigiReco_cfg.G4cout
G4cout
Definition: ecalTB2006H4_GenSimDigiReco_cfg.py:285
CMSHadronPhysicsFTFP_BERT106::maxBERT_
G4double maxBERT_
Definition: CMSHadronPhysicsFTFP_BERT106.h:41