CMS 3D CMS Logo

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

#include <CMSHadronPhysicsFTFP_BERT.h>

Inheritance diagram for CMSHadronPhysicsFTFP_BERT:

Public Member Functions

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

Detailed Description

Definition at line 19 of file CMSHadronPhysicsFTFP_BERT.h.

Constructor & Destructor Documentation

◆ CMSHadronPhysicsFTFP_BERT() [1/2]

CMSHadronPhysicsFTFP_BERT::CMSHadronPhysicsFTFP_BERT ( G4int  verb)
explicit

Definition at line 50 of file CMSHadronPhysicsFTFP_BERT.cc.

◆ CMSHadronPhysicsFTFP_BERT() [2/2]

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

Definition at line 53 of file CMSHadronPhysicsFTFP_BERT.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_BERT()

CMSHadronPhysicsFTFP_BERT::~CMSHadronPhysicsFTFP_BERT ( )
override

Definition at line 60 of file CMSHadronPhysicsFTFP_BERT.cc.

60 {}

Member Function Documentation

◆ ConstructParticle()

void CMSHadronPhysicsFTFP_BERT::ConstructParticle ( )
override

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

Definition at line 164 of file CMSHadronPhysicsFTFP_BERT.cc.

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

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

◆ CreateModels()

void CMSHadronPhysicsFTFP_BERT::CreateModels ( )
private

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

Definition at line 73 of file CMSHadronPhysicsFTFP_BERT.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_BERT::ExtraConfiguration ( )
private

Definition at line 172 of file CMSHadronPhysicsFTFP_BERT.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_BERT::Kaon ( )
private

Definition at line 135 of file CMSHadronPhysicsFTFP_BERT.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_BERT::Neutron ( )
private

Definition at line 87 of file CMSHadronPhysicsFTFP_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 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_BERT::Others ( )
private

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

Definition at line 149 of file CMSHadronPhysicsFTFP_BERT.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_BERT::Pion ( )
private

Definition at line 121 of file CMSHadronPhysicsFTFP_BERT.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_BERT::Proton ( )
private

Definition at line 107 of file CMSHadronPhysicsFTFP_BERT.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_BERT::maxBERT_
private

◆ maxBERTpi_

G4double CMSHadronPhysicsFTFP_BERT::maxBERTpi_
private

Definition at line 42 of file CMSHadronPhysicsFTFP_BERT.h.

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

◆ minFTFP_

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