FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndFtfDirect Class Reference

#include <PndFtfDirect.h>

Inheritance diagram for PndFtfDirect:

Public Member Functions

 PndFtfDirect ()
 
 PndFtfDirect (const char *configfile)
 
 PndFtfDirect (const PndFtfDirect &)
 
 PndFtfDirect (const char *particle, const char *material, int targetA, const char *generator, double mom, int seed=0, bool noelastic=false)
 
virtual ~PndFtfDirect ()
 
virtual Bool_t ReadEvent (FairPrimaryGenerator *primGen)
 
Bool_t ProcessEvent (FairPrimaryGenerator *primGen)
 
void SetVerbose (int v=1)
 
void SetNoElastic (bool n=true)
 
void LoadG4 ()
 

Private Member Functions

void InitZero ()
 
void parseConfigfile ()
 
void Setup ()
 
void TestPointers ()
 
 ClassDef (PndFtfDirect, 1)
 

Private Attributes

bool fDoSetup
 
float fMom
 
float fMode
 
double fSeed
 
double fRsigma
 
float fThtMin
 
G4RunManager * fG4RunManager
 
G4VUserPhysicsList * fG4VUserPhysicsList
 
std::ifstream * fin
 
Test30Material * fmate
 
Test30Physics * fphys
 
G4ParticleTable * fpartTable
 
CLHEP::RanluxEngine * fdefaultEngine
 
G4int fverbose
 
G4bool fsaverand
 
G4bool fNoElastics
 
G4String fnamePart
 
G4bool fionParticle
 
G4double fPlab
 
G4double fenergy
 
G4double fsigmae
 
G4int fionZ
 
G4int fionA
 
G4int ftargetA
 
G4String fnameMat
 
G4bool fShen
 
G4String fnameGen
 
G4int fnevt
 
G4int fmodu
 
G4double ftheStep
 
G4Material * fmaterial
 
G4bool fxsbgg
 
CLHEP::Hep3Vector * faPosition
 
G4double faTime
 
CLHEP::Hep3Vector * faDirection
 
G4double fnx
 
G4double fny
 
G4double fnz
 
G4ExcitationHandler * ftheDeExcitation
 
G4Evaporation * ftheEvaporation
 
G4PreCompoundModel * fthePreCompound
 
G4double fsigTot
 
G4double fsigEl
 
G4double fsigIn
 
int fnpart
 
Int_t factiveCnt
 
G4DynamicParticle * dParticle
 
G4VProcess * proc
 
G4Step * step
 
G4Track * gTrack
 
G4ParticleDefinition * part
 
G4ParticleDefinition * electron
 
G4ParticleDefinition * proton
 
G4ParticleDefinition * neutron
 
G4ParticleDefinition * pin
 
G4ParticleDefinition * pip
 
G4ParticleDefinition * deu
 
G4ParticleDefinition * tri
 
G4ParticleDefinition * he3
 
G4ParticleDefinition * alp
 
G4ParticleDefinition * anti_proton
 
G4ParticleDefinition * anti_neutron
 
G4ParticleDefinition * anti_deuteron
 
G4ParticleDefinition * anti_triton
 
G4ParticleDefinition * anti_He3
 
G4ParticleDefinition * anti_alpha
 

Detailed Description

Definition at line 59 of file PndFtfDirect.h.

Constructor & Destructor Documentation

PndFtfDirect::PndFtfDirect ( )

Default constructor (should not be used)

Definition at line 136 of file PndFtfDirect.cxx.

136  :
137 fDoSetup(true),
138 fMom(0.),
139 fMode(0.),
140 fSeed(0.),
141 fRsigma(0.),
142 fThtMin(0.),
143 fG4RunManager(0),
145 fin(0),
146 fmate(0),
147 fphys(0),
148 fpartTable(0),
149 fdefaultEngine(0),
150 fverbose(0),
151 fsaverand(false),
152 fNoElastics(false),
153 fnamePart("proton"),
154 fionParticle(false),
155 fPlab(100.),//*GeV; // VU
156 fenergy(100.),//*GeV;
157 fsigmae(0.0),
158 fionZ(0),
159 fionA(0),
160 ftargetA(0),
161 fnameMat("G4_Al"),
162 fShen(false),
163 fnameGen("binary"),
164 fnevt(1000),
165 fmodu(1000),
166 ftheStep(0.01),//*micrometer;
167 fmaterial(0),
168 fxsbgg(true),
169 faPosition(0),
170 faTime(0.),
171 faDirection(0),
172 fnx(0.0),
173 fny(0.0),
174 fnz(0.0),
176 ftheEvaporation(0),
177 fthePreCompound(0),
178 fsigTot(0),
179 fsigEl(0),
180 fsigIn(0),
181 fnpart(0),
182 factiveCnt(0),
183 dParticle(0),
184 proc(0),
185 step(0),
186 gTrack(0),
187 part(0)
188 {
189 
190 }
G4double fsigTot
Definition: PndFtfDirect.h:151
G4double fenergy
Definition: PndFtfDirect.h:122
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
G4RunManager * fG4RunManager
Definition: PndFtfDirect.h:106
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
G4String fnameMat
Definition: PndFtfDirect.h:127
Int_t factiveCnt
Definition: PndFtfDirect.h:159
G4bool fNoElastics
Definition: PndFtfDirect.h:117
G4double fny
Definition: PndFtfDirect.h:144
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4double fnx
Definition: PndFtfDirect.h:144
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4VUserPhysicsList * fG4VUserPhysicsList
Definition: PndFtfDirect.h:107
G4VProcess * proc
Definition: PndFtfDirect.h:168
double fRsigma
Definition: PndFtfDirect.h:103
G4double faTime
Definition: PndFtfDirect.h:142
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
G4double fsigEl
Definition: PndFtfDirect.h:152
G4String fnameGen
Definition: PndFtfDirect.h:130
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4Step * step
Definition: PndFtfDirect.h:169
G4double fsigIn
Definition: PndFtfDirect.h:153
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4Track * gTrack
Definition: PndFtfDirect.h:170
Test30Material * fmate
Definition: PndFtfDirect.h:109
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4double fnz
Definition: PndFtfDirect.h:144
G4String fnamePart
Definition: PndFtfDirect.h:119
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
std::ifstream * fin
Definition: PndFtfDirect.h:108
Test30Physics * fphys
Definition: PndFtfDirect.h:110
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148
PndFtfDirect::PndFtfDirect ( const char *  configfile)

Standard constructor

Parameters
Momin GeV/C
Mode= 0. - No elastic scattering, only inelastic
Mode= 1. - Elastic and inelastic interactions (default)

Definition at line 252 of file PndFtfDirect.cxx.

References exit(), faDirection, faPosition, fdefaultEngine, fin, InitZero(), and parseConfigfile().

252  :
253 fDoSetup(true),
254 fMom(0.),
255 fMode(0.),
256 fSeed(0.),
257 fRsigma(0.),
258 fThtMin(0.),
259 fG4RunManager(0),
261 fin(0),
262 fmate(0),
263 fphys(0),
264 fpartTable(0),
265 fdefaultEngine(0),
266 fverbose(0),
267 fsaverand(false),
268 fNoElastics(false),
269 fnamePart("proton"),
270 fionParticle(false),
271 fPlab(100.),//*GeV; // VU
272 fenergy(100.),//*GeV;
273 fsigmae(0.0),
274 fionZ(0),
275 fionA(0),
276 ftargetA(0),
277 fnameMat("G4_Al"),
278 fShen(false),
279 fnameGen("binary"),
280 fnevt(1000),
281 fmodu(1000),
282 ftheStep(0.01),//*micrometer;
283 fmaterial(0),
284 fxsbgg(true),
285 faPosition(0),
286 faTime(0.),
287 faDirection(0),
288 fnx(0.0),
289 fny(0.0),
290 fnz(0.0),
292 ftheEvaporation(0),
293 fthePreCompound(0),
294 fsigTot(0),
295 fsigEl(0),
296 fsigIn(0),
297 fnpart(0),
298 factiveCnt(0),
299 dParticle(0),
300 proc(0),
301 step(0),
302 gTrack(0),
303 part(0)
304 {
305  fdefaultEngine = new CLHEP::RanluxEngine( 1234567, 4 );
306  faPosition = new CLHEP::Hep3Vector(0.,0.,0.);
307  faDirection = new CLHEP::Hep3Vector(0.0,0.0,1.0);
308 
309 
310  CLHEP::HepRandom::setTheEngine( fdefaultEngine );
311  G4cout << "========================================================" << G4endl;
312  G4cout << "====== FTF Test Start ========" << G4endl;
313  G4cout << "========================================================" << G4endl;
314  G4cout << "Input file <" << configfile << G4endl;
315  // -------------------------------------------------------------------
316  // Control on input
317  fin = new std::ifstream();
318  G4String fname = configfile;
319  fin->open(fname.c_str());
320  if( !fin->is_open()) {
321  G4cout << "Input file <" << fname << "> does not exist! Exit" << G4endl;
322  exit(1);
323  }
324 
325  InitZero();
326 
327  parseConfigfile();
328 
329  //Setup();
330 
331  // Calculate ThtMin first. For this we make a cut-off on the value of -t of 1e-2 GeV^2 (~100 MeV/c momentum)
332  // This estimated from a parametrization found in thesis of Thomas Wuerschig (figure 6.4, page 121):
333  // Roughly: 0.4 deg at 15 GeV/c and 4 deg at 1.5 GeV/c, lineair interpolation in double log-scale.
334  //
335  // Double_t logangle = TMath::Log(0.4)+(TMath::Log(15.)-TMath::Log(Mom))*(TMath::Log(4)-TMath::Log(0.4))/(TMath::Log(15)-TMath::Log(1.5));
336  // Double_t ThtMin = TMath::Exp(logangle);
337  //
338 }
G4double fsigTot
Definition: PndFtfDirect.h:151
G4double fenergy
Definition: PndFtfDirect.h:122
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
exit(0)
G4RunManager * fG4RunManager
Definition: PndFtfDirect.h:106
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
G4String fnameMat
Definition: PndFtfDirect.h:127
Int_t factiveCnt
Definition: PndFtfDirect.h:159
G4bool fNoElastics
Definition: PndFtfDirect.h:117
G4double fny
Definition: PndFtfDirect.h:144
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4double fnx
Definition: PndFtfDirect.h:144
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4VUserPhysicsList * fG4VUserPhysicsList
Definition: PndFtfDirect.h:107
G4VProcess * proc
Definition: PndFtfDirect.h:168
double fRsigma
Definition: PndFtfDirect.h:103
G4double faTime
Definition: PndFtfDirect.h:142
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
G4double fsigEl
Definition: PndFtfDirect.h:152
G4String fnameGen
Definition: PndFtfDirect.h:130
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4Step * step
Definition: PndFtfDirect.h:169
G4double fsigIn
Definition: PndFtfDirect.h:153
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4Track * gTrack
Definition: PndFtfDirect.h:170
Test30Material * fmate
Definition: PndFtfDirect.h:109
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4double fnz
Definition: PndFtfDirect.h:144
G4String fnamePart
Definition: PndFtfDirect.h:119
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
void parseConfigfile()
std::ifstream * fin
Definition: PndFtfDirect.h:108
Test30Physics * fphys
Definition: PndFtfDirect.h:110
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148
PndFtfDirect::PndFtfDirect ( const PndFtfDirect other)

Definition at line 192 of file PndFtfDirect.cxx.

References InitZero().

192  :
193 FairGenerator(other),
194 fDoSetup(true),
195 fMom(other.fMom),
196 fMode(other.fMode),
197 fSeed(other.fSeed),
198 fRsigma(other.fRsigma),
199 fThtMin(other.fThtMin),
200 fG4RunManager(0),
202 fin(0),
203 fmate(0),
204 fphys(0),
205 fpartTable(other.fpartTable),
206 fdefaultEngine(0),
207 fverbose(other.fverbose),
208 fsaverand(other.fsaverand),
209 fNoElastics(other.fNoElastics),
210 fnamePart(other.fnamePart),
212 fPlab(other.fPlab),//*GeV; // VU
213 fenergy(other.fenergy),//*GeV;
214 fsigmae(other.fsigmae),
215 fionZ(other.fionZ),
216 fionA(other.fionA),
217 ftargetA(other.ftargetA),
218 fnameMat(other.fnameMat),
219 fShen(other.fShen),
220 fnameGen(other.fnameGen),
221 fnevt(other.fnevt),
222 fmodu(other.fmodu),
223 ftheStep(other.ftheStep),//*micrometer;
224 fmaterial(other.fmaterial),
225 fxsbgg(other.fxsbgg),
226 faPosition(0),
227 faTime(other.faTime),
228 faDirection(0),
229 fnx(other.fnx),
230 fny(other.fny),
231 fnz(other.fnz),
233 ftheEvaporation(0),
234 fthePreCompound(0),
235 fsigTot(other.fsigTot),
236 fsigEl(other.fsigEl),
237 fsigIn(other.fsigIn),
238 fnpart(other.fnpart),
239 factiveCnt(other.factiveCnt),
240 dParticle(0),
241 proc(other.proc),
242 step(other.step),
243 gTrack(other.gTrack),
244 part(other.part)
245 {
246  InitZero();
247 
248 }
G4double fsigTot
Definition: PndFtfDirect.h:151
G4double fenergy
Definition: PndFtfDirect.h:122
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
G4RunManager * fG4RunManager
Definition: PndFtfDirect.h:106
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
G4String fnameMat
Definition: PndFtfDirect.h:127
Int_t factiveCnt
Definition: PndFtfDirect.h:159
G4bool fNoElastics
Definition: PndFtfDirect.h:117
G4double fny
Definition: PndFtfDirect.h:144
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4double fnx
Definition: PndFtfDirect.h:144
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4VUserPhysicsList * fG4VUserPhysicsList
Definition: PndFtfDirect.h:107
G4VProcess * proc
Definition: PndFtfDirect.h:168
double fRsigma
Definition: PndFtfDirect.h:103
G4double faTime
Definition: PndFtfDirect.h:142
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
G4double fsigEl
Definition: PndFtfDirect.h:152
G4String fnameGen
Definition: PndFtfDirect.h:130
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4Step * step
Definition: PndFtfDirect.h:169
G4double fsigIn
Definition: PndFtfDirect.h:153
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4Track * gTrack
Definition: PndFtfDirect.h:170
Test30Material * fmate
Definition: PndFtfDirect.h:109
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4double fnz
Definition: PndFtfDirect.h:144
G4String fnamePart
Definition: PndFtfDirect.h:119
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
std::ifstream * fin
Definition: PndFtfDirect.h:108
Test30Physics * fphys
Definition: PndFtfDirect.h:110
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148
PndFtfDirect::PndFtfDirect ( const char *  particle,
const char *  material,
int  targetA,
const char *  generator,
double  mom,
int  seed = 0,
bool  noelastic = false 
)

Definition at line 341 of file PndFtfDirect.cxx.

References faDirection, faPosition, fdefaultEngine, fionParticle, fnameGen, fnameMat, fnamePart, fNoElastics, fPlab, ftargetA, InitZero(), mom, and particle.

341  :
342 fDoSetup(true),
343 fMom(0.),
344 fMode(0.),
345 fSeed(0.),
346 fRsigma(0.),
347 fThtMin(0.),
348 fG4RunManager(0),
350 fin(0),
351 fmate(0),
352 fphys(0),
353 fpartTable(0),
354 fdefaultEngine(0),
355 fverbose(0),
356 fsaverand(false),
357 fNoElastics(noelastic),
358 fnamePart("proton"),
359 fionParticle(false),
360 fPlab(100.),//*GeV; // VU
361 fenergy(100.),//*GeV;
362 fsigmae(0.0),
363 fionZ(0),
364 fionA(0),
365 ftargetA(0),
366 fnameMat("G4_Al"),
367 fShen(false),
368 fnameGen("binary"),
369 fnevt(1000),
370 fmodu(1000),
371 ftheStep(0.01),//*micrometer;
372 fmaterial(0),
373 fxsbgg(true),
374 faPosition(0),
375 faTime(0.),
376 faDirection(0),
377 fnx(0.0),
378 fny(0.0),
379 fnz(0.0),
381 ftheEvaporation(0),
382 fthePreCompound(0),
383 fsigTot(0),
384 fsigEl(0),
385 fsigIn(0),
386 fnpart(0),
387 factiveCnt(0),
388 dParticle(0),
389 proc(0),
390 step(0),
391 gTrack(0),
392 part(0)
393 {
394 
395  fdefaultEngine = new CLHEP::RanluxEngine( seed, 4 );
396  faPosition = new CLHEP::Hep3Vector(0.,0.,0.);
397  faDirection = new CLHEP::Hep3Vector(0.0,0.0,1.0);
398  InitZero();
399 
400 
401  CLHEP::HepRandom::setTheEngine( fdefaultEngine );
402  G4cout << "========================================================" << G4endl;
403  G4cout << "====== FTF Test Start ========" << G4endl;
404  G4cout << "========================================================" << G4endl;
405  G4cout << "parameters: particle="<<particle<<", material="<<material<<", targetA="<<targetA<<", generator="<<generator<<", mom="<<mom<<", seed="<<seed<<", nonelastic="<<noelastic<<G4endl;
406  // -------------------------------------------------------------------
407  // Control on input
408 
409 
411  fionParticle= false;
412  fnameMat=material;
413  ftargetA=targetA;
414  fnameGen=generator;
415  if(fnameGen == "elastic" || fnameGen == "HElastic" || fnameGen == "DElastic") { fNoElastics=false; }
416  fPlab=mom;
417  fPlab *= GeV;
418 
419  //Setup();
420 
421 }
G4double fsigTot
Definition: PndFtfDirect.h:151
G4double fenergy
Definition: PndFtfDirect.h:122
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
G4RunManager * fG4RunManager
Definition: PndFtfDirect.h:106
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
G4String fnameMat
Definition: PndFtfDirect.h:127
Double_t mom
Definition: plot_dirc.C:14
Int_t factiveCnt
Definition: PndFtfDirect.h:159
G4bool fNoElastics
Definition: PndFtfDirect.h:117
G4double fny
Definition: PndFtfDirect.h:144
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4double fnx
Definition: PndFtfDirect.h:144
const int particle
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4VUserPhysicsList * fG4VUserPhysicsList
Definition: PndFtfDirect.h:107
G4VProcess * proc
Definition: PndFtfDirect.h:168
double fRsigma
Definition: PndFtfDirect.h:103
G4double faTime
Definition: PndFtfDirect.h:142
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
unsigned int seed
G4double fsigEl
Definition: PndFtfDirect.h:152
G4String fnameGen
Definition: PndFtfDirect.h:130
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4Step * step
Definition: PndFtfDirect.h:169
G4double fsigIn
Definition: PndFtfDirect.h:153
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4Track * gTrack
Definition: PndFtfDirect.h:170
Test30Material * fmate
Definition: PndFtfDirect.h:109
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4double fnz
Definition: PndFtfDirect.h:144
G4String fnamePart
Definition: PndFtfDirect.h:119
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
std::ifstream * fin
Definition: PndFtfDirect.h:108
Test30Physics * fphys
Definition: PndFtfDirect.h:110
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148
PndFtfDirect::~PndFtfDirect ( )
virtual

Destructor

Definition at line 462 of file PndFtfDirect.cxx.

References dParticle, faDirection, faPosition, fG4RunManager, fG4VUserPhysicsList, fin, fmate, fpartTable, and fphys.

462  {
463  // delete pFrame;
464  // delete lFrame;
465  // delete sFrame;
466  delete fmate;
467  delete fin;
468  delete fphys;
469  delete faPosition;
470  delete faDirection;
471  fpartTable->DeleteAllParticles();
472  if(dParticle) delete dParticle; // RK
473  //f1.Write();
474 
476  if(fG4RunManager != 0) delete fG4RunManager;
477  //if(fG4 !=0) = delete fG4;
478  G4cout << "###### End of PndFtfDirect #####" << G4endl;
479 
480 }
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
G4RunManager * fG4RunManager
Definition: PndFtfDirect.h:106
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4VUserPhysicsList * fG4VUserPhysicsList
Definition: PndFtfDirect.h:107
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
Test30Material * fmate
Definition: PndFtfDirect.h:109
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
std::ifstream * fin
Definition: PndFtfDirect.h:108
Test30Physics * fphys
Definition: PndFtfDirect.h:110

Member Function Documentation

PndFtfDirect::ClassDef ( PndFtfDirect  ,
 
)
private
void PndFtfDirect::InitZero ( )
private

Definition at line 494 of file PndFtfDirect.cxx.

References factiveCnt, faDirection, faPosition, faTime, fenergy, fionA, fionParticle, fionZ, fmaterial, fmodu, fnameGen, fnameMat, fnamePart, fnevt, fnpart, fnx, fny, fnz, fPlab, fsaverand, fShen, fsigEl, fsigIn, fsigmae, fsigTot, ftargetA, ftheStep, fverbose, fxsbgg, and LoadG4().

Referenced by PndFtfDirect().

495 {
496  std::cout<<"PndFtfDirect::InitZero() $$$$$$$$$$$$$$$$$$$$$$$$$ "<<std::endl;
497 
498  // When we don't have a Geant4, let's create one!
499  if ( strncmp(FairRunSim::Instance()->GetName(),"TGeant3",7 ) == 0 ) {
500  std::cout << "We use GEANT3 and want to use FtfDirect: loading a Geant4 Manager for FTF now." << std::endl;
501  LoadG4();
502  }
503 
504  //-----------------------------------------------------------------------
505  // ------- Initialisation
506  fverbose = 0;
507  fsaverand = false;
508 
509  fnamePart = "proton";
510  fionParticle = false;
511  fPlab = 100.*GeV; // VU
512  fenergy = 100.*GeV;
513  fsigmae = 0.0;
514 
515  fionZ = 0;
516  fionA = 0;
517  ftargetA = 0;
518  fnameMat = "G4_Al";
519 
520  fShen = false;
521  fnameGen = "binary";
522 
523  fnevt = 1000;
524  fmodu = 1000;
525 
526  ftheStep = 0.01*micrometer;
527  fmaterial = 0;
528 
529  fxsbgg = true;
530 
531  // Track
532  faPosition->set(0.,0.,0.);
533  faTime = 0. ;
534  faDirection->set(0.0,0.0,1.0);
535  fnx = 0.0, fny = 0.0, fnz = 0.0;
536 
537  fsigTot = 0;
538  fsigEl = 0;
539  fsigIn = 0;
540 
541  fnpart=0;
542  factiveCnt=0;
543 
544  G4cout.setf( std::ios::scientific, std::ios::floatfield );
545 
546 
547 
548 }
G4double fsigTot
Definition: PndFtfDirect.h:151
G4double fenergy
Definition: PndFtfDirect.h:122
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4String fnameMat
Definition: PndFtfDirect.h:127
Int_t factiveCnt
Definition: PndFtfDirect.h:159
G4double fny
Definition: PndFtfDirect.h:144
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4double fnx
Definition: PndFtfDirect.h:144
G4double faTime
Definition: PndFtfDirect.h:142
G4double fsigEl
Definition: PndFtfDirect.h:152
G4String fnameGen
Definition: PndFtfDirect.h:130
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4double fsigIn
Definition: PndFtfDirect.h:153
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4double fnz
Definition: PndFtfDirect.h:144
G4String fnamePart
Definition: PndFtfDirect.h:119
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
void PndFtfDirect::LoadG4 ( )

Definition at line 483 of file PndFtfDirect.cxx.

References fG4RunManager.

Referenced by InitZero().

484 {
485  fG4RunManager = new G4RunManager();
486  fG4RunManager-> SetUserInitialization(new PndG4DummyDetectorConstruction());
487  fG4RunManager->SetUserInitialization(new PndG4DummyPhysicsList());
488  fG4RunManager->SetUserInitialization(new PndG4DummyActionInitialization());
489  fG4RunManager->Initialize();
490 }
G4RunManager * fG4RunManager
Definition: PndFtfDirect.h:106
void PndFtfDirect::parseConfigfile ( )
private

Definition at line 1113 of file PndFtfDirect.cxx.

References c, faDirection, faPosition, faTime, fdefaultEngine, fin, fionA, fionParticle, fionZ, fmodu, fnameGen, fnameMat, fnamePart, fnevt, fNoElastics, fnx, fny, fnz, fPlab, fsaverand, fShen, fsigmae, ftargetA, ftheDeExcitation, ftheEvaporation, fthePreCompound, ftheStep, fverbose, fxsbgg, and mm.

Referenced by PndFtfDirect().

1114 {
1115 
1116  G4bool end = true;
1117  G4String line, line1;
1118 
1119  do {
1120  if( fin->eof() ) {
1121  end = false;
1122  break;
1123  }
1124  (*fin) >> line;
1125  if(fverbose > 0) G4cout << "Next line " << line << G4endl;
1126  if(line == "#particle") {
1127  (*fin) >> fnamePart;
1128  fionParticle= false; // Uzhi 1.02.13
1129  } else if(line == "#ion") {
1130  fionParticle= true;
1131  fnamePart="GenericIon";
1132  (*fin) >> fionA >> fionZ;
1133  } else if(line == "#Plab(GeV/c)") {
1134  (*fin) >> fPlab;
1135  fPlab *= GeV;
1136  } else if(line == "#sigmae(GeV)") {
1137  (*fin) >> fsigmae;
1138  fsigmae *= GeV;
1139  } else if(line == "#events") {
1140  (*fin) >> fnevt;
1141  } else if(line == "#step(mm)") {
1142  (*fin) >> ftheStep;
1143  ftheStep *= mm;
1144  } else if(line == "#print") {
1145  (*fin) >> fmodu;
1146  } else if(line == "#material") {
1147  (*fin) >> fnameMat;
1148  } else if(line == "#targetA") {
1149  (*fin) >> ftargetA;
1150  } else if(line == "#Shen") {
1151  fShen = true;
1152  } else if(line == "#noElastics") {
1153  fNoElastics = true;
1154  } else if(line == "#generator") {
1155  fnameGen = "";
1156  (*fin) >> fnameGen;
1157  if (fnameGen == "") {
1158  G4cout << "Generator name is empty! " << G4endl;
1159  continue;
1160  }
1161 
1162  if(fnameGen == "elastic" || fnameGen == "HElastic" ||
1163  fnameGen == "DElastic") { fNoElastics=false; break; }
1164  char* c = getenv(fnameGen);
1165  if(!c) {
1166  G4cout << "Generator <" << fnameGen << "> is not included in the "
1167  << " list SetModels.csh, so is ignored!"
1168  << G4endl;
1169  G4cout << "Use #run command to overcome this limitation " << G4endl;
1170  continue;
1171  }
1172  G4String ss(c);
1173  if(ss=="1") { break; }
1174  } else if(line == "#run") {
1175  break;
1176  } else if(line == "#verbose") {
1177  (*fin) >> fverbose;
1178  G4NistManager::Instance()->SetVerbose(fverbose);
1179  } else if(line == "#position(mm)") {
1180  (*fin) >> fnx >> fny >> fnz;
1181  faPosition->set(fnx*mm, fny*mm, fnz*mm);
1182  } else if(line == "#direction") {
1183  (*fin) >> fnx >> fny >> fnz;
1184  if(fnx*fnx + fny*fny + fnz*fnz > 0.0) {
1185  faDirection->set(fnx, fny, fnz);
1186  *faDirection = faDirection->unit();
1187  }
1188  } else if(line == "#time(ns)") {
1189  (*fin) >> faTime;
1190  faTime *= ns;
1191  } else if(line == "#saverand") {
1192  fsaverand = true;
1193  } else if(line == "#initrand") {
1194  G4String sss("");
1195  (*fin) >> sss;
1196  fdefaultEngine->restoreStatus(sss);
1197  if(fverbose>0) G4cout << "Random Engine restored from file <"
1198  << sss << ">" << G4endl;
1199  CLHEP::HepRandom::showEngineStatus();
1200  } else if(line == "#xs_ghad") {
1201  fxsbgg = false;
1202  } else if(line == "#exit") {
1203  end = false;
1204  break;
1205  } else if(line == "#GEMEvaporation") {
1206  G4cout<<"### GEM evaporation is set"<<G4endl;
1207  ftheEvaporation->SetGEMChannel();
1208  } else if(line == "#DefGEMEvaporation") {
1209  G4cout<<"### Combined Default+GEM evaporation is set"<<G4endl;
1210  ftheEvaporation->SetCombinedChannel();
1211  } else if(line == "#Evaporation") {
1212  G4cout<<"### Default evaporation is set"<<G4endl;
1213  ftheEvaporation->SetDefaultChannel();
1214  } else if(line == "#XSoption") {
1215  G4int OPTxs;
1216  (*fin)>>OPTxs;
1217  if (OPTxs< 0 || OPTxs >4 ){
1218  G4cout << "### WArning: BAD CROSS SECTION OPTION for PreCompound model "
1219  << OPTxs << " ignored" << G4endl;
1220  } else {
1221 
1222  fthePreCompound->SetOPTxs(OPTxs);
1223  ftheDeExcitation->SetOPTxs(OPTxs);
1224  G4cout<<" Option for inverse cross sections : OPTxs="<<OPTxs<<G4endl;
1225  }
1226  } else if(line == "#UseSuperImposedCoulombBarrier") {
1227  G4cout<<" Coulomb Barrier has been overimposed to ALL inverse cross sections"
1228  <<G4endl;
1229  fthePreCompound->UseSICB();
1230  ftheDeExcitation->UseSICB();
1231 
1232  } else if(line == "#UseNeverGoBack") {
1233  G4cout<<" Never Go Back hypothesis has been assumed at preequilibrium"
1234  <<G4endl;
1235  fthePreCompound->UseNGB();
1236  } else if(line == "#UseSoftCutOff") {
1237  G4cout<<" Soft Cut Off hypothesis has been assumed at preequilibrium"
1238  <<G4endl;
1239  fthePreCompound->UseSCO();
1240 
1241  } else if(line == "#UseCEMTransitions") {
1242  G4cout<<" Transition probabilities at preequilibrium based on CEM model"
1243  <<G4endl;
1244  fthePreCompound->UseCEMtr();
1245 
1246  } else if(line == "#MFenergy(MeV)") {
1247  G4double tmin;
1248  (*fin) >> tmin;
1249  G4cout<<" Min energy for multi-fragmentation is set to " << tmin
1250  << " MeV" << G4endl;
1251  ftheDeExcitation->SetMinEForMultiFrag(tmin*MeV);
1252  } else if(line == "#FermiBreakUp") {
1253  G4cout<<"### Max A and Z energy for fermiBreakUp are set to 17 and 9"
1254  << G4endl;
1255  ftheDeExcitation->SetMaxAandZForFermiBreakUp(17,9);
1256  }
1257  } while(end);
1258 
1259  // if(!end) break;
1260 
1261 }
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
G4String fnameMat
Definition: PndFtfDirect.h:127
G4bool fNoElastics
Definition: PndFtfDirect.h:117
G4double fny
Definition: PndFtfDirect.h:144
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4double fnx
Definition: PndFtfDirect.h:144
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4double faTime
Definition: PndFtfDirect.h:142
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
G4String fnameGen
Definition: PndFtfDirect.h:130
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4double fnz
Definition: PndFtfDirect.h:144
G4String fnamePart
Definition: PndFtfDirect.h:119
Double_t const mm
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
std::ifstream * fin
Definition: PndFtfDirect.h:108
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148
Bool_t PndFtfDirect::ProcessEvent ( FairPrimaryGenerator *  primGen)

Definition at line 909 of file PndFtfDirect.cxx.

References cnt, de, dParticle, electron, factiveCnt, fdefaultEngine, fenergy, fionA, fionParticle, fnevt, fNoElastics, fnpart, fphys, fPlab, fsaverand, fsigmae, fverbose, gTrack, i, mom, n, part, pi, printf(), proc, pz, sqrt(), step, and theta.

Referenced by ReadEvent().

910 {
911  G4int Ntotal=fnevt;
912  G4int Nfault=0;
913  //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
914  //-------------------------------------------------------
915 
916  const G4DynamicParticle* sec = 0;
917  G4ParticleDefinition* pd;
918  G4ThreeVector mom;
919  G4LorentzVector labv, fm;
920  G4double e, px, py, pz, theta; //pt, //[R.K. 01/2017] unused variable?
921  G4VParticleChange* aChange = 0;
922  TLorentzVector Mom;
923  TLorentzVector V(0,0,0,0);
924 
925  // G4double E=fenergy+part->GetPDGMass(); // Elab Proj
926  // G4double SqrtS=std::sqrt(sqr(part->GetPDGMass())+sqr(938.)+2.*938.*E); // per Proj+N
927  // G4double Ycms=0.5*std::log((E+fPlab)/(E-fPlab)); // Proj+N
928 
929  // -------- Event loop
930  // G4cout<<"Events start "<<fnevt<<G4endl;
931  // G4int Ninelast=fnevt; // Uzhi
932  //=================================================================
933  // for (G4int iter=0; iter<fnevt; ++iter) {
934  // //=================================================================
935  // if(fverbose > 0) G4cout<<"Start events loop***********************"<<G4endl;
936 
937  // if(fverbose>=1 || iter == fmodu*(iter/fmodu)) {
938  // G4cout << "### " << iter << "-th event start " <<fPlab/GeV<<G4endl;
939  // }
940 
941  if(fsaverand) {fdefaultEngine->saveStatus("initial.conf");}
942 
943  G4double e0 = fenergy;
944  do {
945  if(fsigmae > 0.0) e0 = G4RandGauss::shoot(fenergy,fsigmae);
946  } while (e0 < 0.0);
947 
948  dParticle->SetKineticEnergy(e0);
949 
950  gTrack->SetStep(step);
951  gTrack->SetKineticEnergy(e0);
952  G4double amass = fphys->GetNucleusMass();
953  // note: check of 4-momentum balance for CHIPS is not guranteed due to
954  // unknown isotope
955  aChange = proc->PostStepDoIt(*gTrack,*step);
956 
957  G4double mass = part->GetPDGMass();
958 
959  if ( fionParticle )
960  {
961  e0/=fionA; G4double mass_N=938.*MeV; // Init 4-mom
962  labv = G4LorentzVector(0.0, 0.0, std::sqrt(e0*(e0 + 2.*mass_N)), // NN
963  e0 + mass_N + mass_N);
964  } else
965  {
966  labv = G4LorentzVector(0.0, 0.0, std::sqrt(e0*(e0 + 2.*mass)), // hA
967  e0 + mass + amass);
968  }
969 
970  G4ThreeVector bst = labv.boostVector(); // To CMS NN in AA or hA
971  //------------
972  G4LorentzVector labNN(0.0, 0.0, std::sqrt(e0*(e0 + 2.*mass)),e0 + mass + amass);
973  G4ThreeVector boostNN = labNN.boostVector();
974  //------------
975 
976  // take into account local energy deposit
977  G4double de = aChange->GetLocalEnergyDeposit();
978  G4LorentzVector dee = G4LorentzVector(0.0, 0.0, 0.0, de);
979  labv -= dee;
980 
981  G4int n = aChange->GetNumberOfSecondaries(); // Multiplicity of prod. part.
982  fnpart = n;
983  // fEvt->Clear();
984  Int_t cnt = 0;
985 
986  if(fverbose>=1) G4cout<<" Uzhi ------------ N prod. part "<<n<<G4endl;
987  //++++++++++++++++ Variables for each event +++++++++++++++++++++++++++++
988  if((fverbose > 0) && (n < 2)) {G4cout<<"Multiplicity of produced < 2!!!"<<G4endl;}
989  if(n < 2) {Nfault++; Ntotal--;}
990 
991  //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
992  bool flag_good=true;
993  if(fNoElastics&&(n==2)) {
994  const G4DynamicParticle *sec1 = aChange->GetSecondary(0)->GetDynamicParticle();
995  const G4DynamicParticle *sec2 = aChange->GetSecondary(1)->GetDynamicParticle();
996  G4ParticleDefinition *pd1 = sec1->GetDefinition();
997  G4ParticleDefinition *pd2 = sec2->GetDefinition();
998  int id1 = pd1->GetPDGEncoding();
999  int id2 = pd2->GetPDGEncoding();
1000  // now we know it's fully elastic!
1001  if(abs(id1)==2212 && abs(id2)==2212)
1002  {
1003  flag_good=false;
1004  delete aChange->GetSecondary(0);
1005  delete aChange->GetSecondary(1);
1006  }
1007  } else { // now inelastic
1008  for(G4int i=0; i<n; ++i) // Loop over produced particles
1009  {
1010  sec = aChange->GetSecondary(i)->GetDynamicParticle();
1011  pd = sec->GetDefinition();
1012  G4String pname=pd->GetParticleName();
1013 
1014  if(fverbose>=1) G4cout<<" Part "<<i<<" "<<pname
1015  <<" "<<sec->Get4Momentum()/GeV
1016  <<sec->Get4Momentum().mag()/GeV<<G4endl;
1017 
1018  fm = sec->Get4Momentum();
1019 
1020  mom = sec->GetMomentum();
1021  // G4double mas = pd->GetPDGMass();
1022  // G4double p = mom.mag();
1023 
1024  labv -= fm; // For checking energy-momentum conservation
1025 
1026  // electron can come only from internal conversion
1027  // its mass should be added to initial state
1028  if(pd == electron) {
1029 
1030  labv += G4LorentzVector(0.0,0.0,0.0,electron_mass_c2);
1031  }
1032 
1033  px = mom.x()/GeV;
1034  py = mom.y()/GeV;
1035  pz = mom.z()/GeV;
1036  //pt = std::sqrt(px*px +py*py)/GeV; //[R.K. 01/2017] unused variable?
1037  e = fm.e()/GeV; // - m;
1038  theta = mom.theta();
1039  if(std::abs(pd->GetBaryonNumber()) < 2)
1040  {
1041  int id = pd->GetPDGEncoding();
1042  Mom.SetPxPyPzE(px,py,pz,e);
1043  // TParticle fparticle(id,1,0,0,0,0,Mom,V);
1044  // new((*fEvt)[cnt++]) TParticle(fparticle);
1045  // add track
1046  printf("- I -: new particle with: %i, %f, %f, %f ...\n", id, px, py, pz);
1047  primGen->AddTrack(id, px, py, pz, 0.,0.,0.); //fX, fY, fZ);
1048 
1049  }
1050  theta=theta*180./pi;
1051  fm.boost(-bst);
1052 
1053  // G4double costcm = std::cos(fm.theta());
1054  de += e;
1055 
1056  // delete sec;
1057  delete aChange->GetSecondary(i);
1058 
1059  } // end of the loop on particles
1060  }
1061  if(flag_good){ // inelastic!
1062  if(fverbose > 0)
1063  G4cout << "We have an inelastic event." << G4endl;
1064  factiveCnt = cnt;
1065  //fTree->Fill();
1066  }
1067  else{
1068  if(fverbose > 0)
1069  G4cout << "We have skipped an elastic event." << G4endl;
1070  Nfault++;
1071  Ntotal--;
1072  // iter--; // elastic!
1073  }
1074 
1075  if(fverbose > 0)
1076  G4cout << "Energy/Momentum balance= " << labv << G4endl;
1077 
1078  aChange->Clear();
1079 
1080  if(fverbose > 0)
1081  {
1082  G4cout << "End event =====================================" <<fPlab<< G4endl; // Uzhi
1083  G4int Uzhi_i; // Uzhi
1084  G4cin >> Uzhi_i; // Uzhi
1085  }
1086  if(!flag_good) return kFALSE;
1087  return kTRUE;
1088 
1089 }
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
G4double fenergy
Definition: PndFtfDirect.h:122
Int_t i
Definition: run_full.C:25
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
int n
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
#define pi
Definition: createSTT.C:60
double de
Definition: anaLmdDigi.C:68
Int_t factiveCnt
Definition: PndFtfDirect.h:159
Double_t mom
Definition: plot_dirc.C:14
G4bool fNoElastics
Definition: PndFtfDirect.h:117
G4bool fionParticle
Definition: PndFtfDirect.h:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4VProcess * proc
Definition: PndFtfDirect.h:168
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
G4Step * step
Definition: PndFtfDirect.h:169
G4double fPlab
Definition: PndFtfDirect.h:121
G4Track * gTrack
Definition: PndFtfDirect.h:170
G4bool fsaverand
Definition: PndFtfDirect.h:116
G4ParticleDefinition * electron
Definition: PndFtfDirect.h:175
G4double fsigmae
Definition: PndFtfDirect.h:123
Int_t cnt
Definition: hist-t7.C:106
Test30Physics * fphys
Definition: PndFtfDirect.h:110
double pz[39]
Definition: pipisigmas.h:14
Bool_t PndFtfDirect::ReadEvent ( FairPrimaryGenerator *  primGen)
virtual

Generate one event using DPM

Parameters
primGenpointer to the FairPrimaryGenerator

Definition at line 895 of file PndFtfDirect.cxx.

References fverbose, ProcessEvent(), and Setup().

896 {
897  Setup();
898  // capsulate to get each event somthing sensible, even if it "failed".
899  // I.e. when elastics are produced by the generator and shall not be stored.
900  int tryno=0;
901  while (!ProcessEvent(primGen))
902  {
903  tryno++;
904  if(fverbose>=1) cout<<"ProcessEvent() try number "<<tryno<<" failed, try again..."<<endl;
905  }
906  return kTRUE;
907 }
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
Bool_t ProcessEvent(FairPrimaryGenerator *primGen)
void PndFtfDirect::SetNoElastic ( bool  n = true)
inline

Definition at line 85 of file PndFtfDirect.h.

References fNoElastics, and n.

85 {fNoElastics=n;};
int n
G4bool fNoElastics
Definition: PndFtfDirect.h:117
void PndFtfDirect::Setup ( )
private

Definition at line 550 of file PndFtfDirect.cxx.

References alp, anti_alpha, anti_deuteron, anti_He3, anti_neutron, anti_proton, anti_triton, cm, cuts, deu, dParticle, electron, exit(), faDirection, faPosition, faTime, fDoSetup, fenergy, fionA, fionParticle, fionZ, fmate, fmaterial, fnameGen, fnameMat, fnamePart, fpartTable, fphys, fPlab, fShen, fsigEl, fsigIn, fsigmae, fsigTot, ftargetA, ftheDeExcitation, ftheEvaporation, fthePreCompound, ftheStep, fverbose, fxsbgg, gTrack, he3, mm, neutron, part, phi0, pin, pip, pkt, proc, proton, rot, safety, sqrt(), step, timer, tri, and Z.

Referenced by ReadEvent().

551 {
552  // Protect against unpurpousful multiple execution
553  if (fDoSetup == false) return;
554  fDoSetup=false;
555 
556  std::cout<<"PndFtfDirect::Setup() $$$$$$$$$$$$$$$$$$$$$$$$$ "<<std::endl;
557  cout<<"INIT FTF Material and Processes"<<endl;
558  // -------------------------------------------------------------------
559  //--------- Materials definition ---------
560  fmate = new Test30Material();
561  G4NistManager::Instance()->SetVerbose(0);
562 
563  //--------- Particles definition ---------
564  fphys = new Test30Physics();
565 
566 
569 
572  // construct pre-compound and deexcitation
573  ftheDeExcitation = new G4ExcitationHandler();
574  ftheEvaporation = new G4Evaporation();
575  ftheDeExcitation->SetEvaporation(ftheEvaporation);
576  fthePreCompound = new G4PreCompoundModel(ftheDeExcitation);
577  fphys->SetPreCompound(fthePreCompound);
578  fphys->SetDeExcitation(ftheDeExcitation);
579 
580  //--------- Geometry definition
581 
582  //G4double dimX = 100.0*cm;
583  //G4double dimY = 100.0*cm;
584  //G4double dimZ = 100.0*cm;
585 
586  //G4Box* sFrame = new G4Box ("Box",dimX, dimY, dimZ);
587  //G4LogicalVolume* lFrame = new G4LogicalVolume(sFrame,fmaterial,"Box",0,0,0);
588  //G4PVPlacement* pFrame = new G4PVPlacement(0,G4ThreeVector(),"Box",
589  // lFrame,0,false,0);
590 
591  //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
592 
593  cout<<"INIT FTF PARTICLES"<<endl;
594  // gamma = G4Gamma::Gamma();
595  electron = G4Electron::Electron();
596  proton = G4Proton::Proton();
597  neutron = G4Neutron::Neutron();
598  pin = G4PionMinus::PionMinus();
599  pip = G4PionPlus::PionPlus();
600  // pi0 = G4PionZero::PionZero();
601  deu = G4Deuteron::DeuteronDefinition();
602  tri = G4Triton::TritonDefinition();
603  he3 = G4He3::He3Definition();
604  alp = G4Alpha::AlphaDefinition();
605  // ion = G4GenericIon::GenericIon();
606 
607  anti_proton = G4AntiProton::AntiProton();
608  anti_neutron = G4AntiNeutron::AntiNeutron();
609  anti_deuteron = G4AntiDeuteron::AntiDeuteron();
610  anti_triton = G4AntiTriton::AntiTriton();
611  anti_He3 = G4AntiHe3::AntiHe3();
612  anti_alpha = G4AntiAlpha::AntiAlpha();
613  fpartTable = G4ParticleTable::GetParticleTable();
614 
615  //
616  G4StateManager* g4State=G4StateManager::GetStateManager();
617  if (! g4State->SetNewState(G4State_Init)) {
618  G4cout << "error changing G4state"<< G4endl;;
619  }
620  // G4cout << "###### Start new run # " << run << " for "
621  // << fnevt << " events #####" << G4endl;
622 
623  // -------- Target
624 
625  fmaterial = fmate->GetMaterial(fnameMat);
626  if(!fmaterial) {
627  G4cout << "Material <" << fnameMat
628  << "> is not found out"
629  << G4endl;
630  exit(1);
631  }
632  const G4Element* elm = fmaterial->GetElement(0);
633 
634  // Uzhi 1.02.13 -----------------------
635  G4ProductionCuts* cuts = new G4ProductionCuts();
636  G4MaterialCutsCouple* couple = new G4MaterialCutsCouple(fmaterial,cuts);
637  couple->SetIndex(0);
638  G4ProductionCutsTable* pkt = G4ProductionCutsTable::GetProductionCutsTable();
639  std::vector<G4double>* vc =
640  const_cast<std::vector<G4double>*>(pkt->GetEnergyCutsVector(3));
641  vc->push_back(0.0);
642  // Uzhi 1.02.13 -----------------------
643 
644  // ------- Define target A
645  G4int A = (G4int)(elm->GetN()+0.5);
646  G4int Z = (G4int)(elm->GetZ()+0.5);
647 
648  // -------- Projectile
649  part=0;
650  if (!fionParticle) {
651  part = (G4ParticleTable::GetParticleTable())->FindParticle(fnamePart);
652  if(part) fenergy=std::sqrt(sqr(fPlab)+sqr(part->GetPDGMass()))-
653  part->GetPDGMass();
654  } else {
655  part = (G4IonTable::GetIonTable())->GetIon(fionZ, fionA, 0.);
656  if(part) fenergy=std::sqrt(sqr(fPlab)+sqr(940.*MeV))-940.*MeV;
657  }
658  if (!part) {
659  G4cout << " Sorry, No definition for particle" <<fnamePart
660  << " found" << G4endl;
661  }
662 
663  if ( fionParticle ) { // VU
664  fenergy*=fionA; // VU
665  }
666 
667  if(dParticle) delete dParticle; // RK
668  dParticle = new G4DynamicParticle(part,*faDirection,fenergy);
669 
670  // ------- Select model
671  proc = fphys->GetProcess(fnameGen, part, fmaterial); // Uzhi 1.02.13
672  std::cout<<"PndFtfDirect::Setup(): got aprocess: proc = "<<proc<<" fphys = "<<fphys<<std::endl;
673 
674  if(!proc) {
675  G4cout << "For particle: " << part->GetParticleName()
676  << " generator " << fnameGen << " is unavailable"<< G4endl;
677  exit(1);
678  }
679  G4HadronicProcess* extraproc = 0;
680 
681  G4cout<<"targetA "<<ftargetA<<G4endl;
682  if(ftargetA > 0) A = ftargetA;
683  fphys->SetA(ftargetA);
684 
685  G4cout << "The particle: " << part->GetParticleName() << G4endl;
686  if(fverbose > 0) {
687  G4cout << "The material: " << fmaterial->GetName()
688  << " Z= " << Z << " A= " << A<< G4endl;
689  G4cout << "The step: " << ftheStep/mm << " mm" << G4endl;
690  G4cout << "The position: " << (*faPosition)/mm << " mm" << G4endl;
691  G4cout << "The direction: " << (*faDirection) << G4endl;
692  G4cout << "The time: " << faTime/ns << " ns" << G4endl;
693  }
694 
695  G4cout <<G4endl<< "energy = " << fenergy/MeV << " MeV "
696  << " RMS(MeV)= " << fsigmae/MeV << " Plab "<<fPlab/GeV<<" GeV/c"<<G4endl;
697 
698  // -------- Normalisation
699 
700  G4double cross_sec = 0.0;
701  G4double cross_secel = 0.0;
702  G4double cross_inel = 0.0;
703 
704  if((part == anti_proton) || (part == anti_neutron) ||
705  (part == anti_deuteron) || (part == anti_triton) ||
706  (part == anti_He3) || (part == anti_alpha) )
707  {
708  G4VComponentCrossSection* cs =0; // Uzhi
709  cs=new G4ComponentAntiNuclNuclearXS(); // Uzhi
710 
711  cs->BuildPhysicsTable(*part);
712  cross_sec = cs->GetTotalElementCrossSection(part, fenergy, Z, (G4double) A);
713  cross_inel=cs->GetInelasticElementCrossSection(part, fenergy, Z, (G4double)A);
714  cross_secel=cs->GetElasticElementCrossSection(part, fenergy, Z, (G4double)A);
715  }
716  else
717  {
718  G4VCrossSectionDataSet* cs = 0;
719 
720  if(fnameGen == "LElastic" || fnameGen == "BertiniElastic") {
721  cs = new G4HadronElasticDataSet();
722  } else if (fnameGen == "chargeex" ||
723  fnameGen == "elastic" ||
724  fnameGen == "HElastic" ||
725  fnameGen == "DElastic") {
726 
727  if(part == proton || part == neutron) {
728  if(fxsbgg) extraproc->AddDataSet(new G4BGGNucleonElasticXS(part));
729  } else if(part == pip || part == pin) {
730  if(fxsbgg) extraproc->AddDataSet(new G4BGGPionElasticXS(part));
731  }
732 
733  } else if(part == proton && Z > 1 && fnameGen != "lepar") {
734  if(fxsbgg) cs = new G4BGGNucleonInelasticXS(part);
735  else cs = new G4ProtonInelasticCrossSection();
736 
737  } else if(part == neutron && Z > 1 && fnameGen != "lepar") {
738  if(fxsbgg) cs = new G4BGGNucleonInelasticXS(part);
739  else cs = new G4NeutronInelasticCrossSection();
740 
741  } else if((part == pin || part == pip) && Z > 1 && fnameGen != "lepar") {
742  if(fxsbgg) cs = new G4BGGPionInelasticXS(part);
743  else cs = new G4PiNuclearCrossSection();
744 
745  } else if( fionParticle && !fShen ) { // Uzhi
746  G4double zz = G4double(Z);
747  G4double aa = G4double(A);
748  if(part == deu || part == tri ||part == he3 ||part == alp)
749  {
750  cs = new G4TripathiLightCrossSection();
751  if(cs->IsIsoApplicable(dParticle,Z,A)) {
752  G4cout << "Using Tripathi Light Cross section for Ions" << G4endl;
753  } else {
754  delete cs;
755  cs = 0;
756  }
757  } else {
758  if(!cs) {
759  cs = new G4TripathiCrossSection();
760  if(cs->IsIsoApplicable(dParticle,Z,A)) {
761  G4cout << "Using Tripathi Cross section for Ions" << G4endl;
762  } else {
763  delete cs;
764  cs = 0;
765  }
766  }
767  }
768 
769  if(!cs) {
770  cs = new G4IonsShenCrossSection();
771  if(cs->IsElementApplicable(dParticle,Z,fmaterial)) {
772  G4cout << "Using Shen Cross section for Ions" << G4endl;
773  } else {
774  G4cout << "ERROR: no cross section for ion Z= "
775  << zz << " A= " << aa << G4endl;
776  exit(1);
777  }
778  }
779  } else {
780  cs = new G4HadronInelasticDataSet();
781  G4cout<<"Using G4HadronInelasticDataSet()"<<G4endl;
782  }
783 
784  if(extraproc) {
785  extraproc->PreparePhysicsTable(*part);
786  extraproc->BuildPhysicsTable(*part);
787  cross_sec = extraproc->GetMicroscopicCrossSection(dParticle,
788  elm, 0); // Uzhi 0.0);
789 
790  } else if(cs) {
791  cs->BuildPhysicsTable(*part);
792  cross_sec = cs->GetCrossSection(dParticle, elm);
793  G4cout<<"Try 1 cross_secel "<<cross_secel/millibarn<<G4endl;
794  } else {
795  cross_sec = (G4HadronCrossSections::Instance())->
796  GetInelasticCrossSection(dParticle, Z,A);
797  G4cout<<"Try 2 cross_sec "<<cross_sec/millibarn<<G4endl;
798  }
799 
800  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
801  cs->BuildPhysicsTable(*part);
802  } // -----------------------------------------
803 
804  // -------- Track
805  // G4Track* gTrack;
806  gTrack = new G4Track(dParticle,faTime,*faPosition);
807  G4TouchableHandle fpTouchable(new G4TouchableHistory());
808  gTrack->SetTouchableHandle(fpTouchable);
809 
810  // -------- Step
811 
812  // G4Step* step;
813  step = new G4Step();
814  step->SetTrack(gTrack);
815  gTrack->SetStep(step);
816 
817  G4StepPoint *aPoint, *bPoint;
818  aPoint = new G4StepPoint();
819  aPoint->SetPosition(*faPosition);
820  aPoint->SetMaterial(fmaterial);
821  G4double safety = 10000.*cm;
822  aPoint->SetSafety(safety);
823  step->SetPreStepPoint(aPoint);
824 
825  bPoint = aPoint;
826  G4ThreeVector bPosition = *faDirection*ftheStep;
827  bPosition += *faPosition;
828  bPoint->SetPosition(bPosition);
829  step->SetPostStepPoint(bPoint);
830  step->SetStepLength(ftheStep);
831 
832  //-------------------------------------------------------
833  if(!G4StateManager::GetStateManager()->SetNewState(G4State_Idle))
834  G4cout << "G4StateManager PROBLEM! " << G4endl;
835  G4RotationMatrix* rot = new G4RotationMatrix();
836  G4double phi0 = faDirection->phi();
837  G4double theta0 = faDirection->theta();
838  rot->rotateZ(-phi0);
839  rot->rotateY(-theta0);
840 
841  if(fverbose > 0) {
842  G4cout << "Test rotation= " << (*rot)*(*faDirection) << G4endl;
843  }
844  G4Timer* timer = new G4Timer();
845  timer->Start();
846 
847  //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
848 
849  G4cout << "cross(mb)in= " << cross_sec*1000./barn << G4endl
850  << "cross(mb)el= " << cross_secel*1000./barn<<G4endl<<G4endl;
851 
852  cross_inel=cross_sec-cross_secel; // +++++++++++++++++++++++++
853 
854  cross_sec/=millibarn; // Inel Cross section in mb
855  cross_secel/=millibarn; // Elas Cross section in mb
856  cross_inel/=millibarn; // Inel Cross section in mb
857 
858  G4cout<<"Element A Z N: "<<A<<" "<<Z<<" "<<A-Z<<G4endl;
859  G4cout<<"Proposed Xs (mb): Tot El In: "
860  <<cross_sec<<" "<<cross_secel<<" "<<cross_inel<<G4endl;
861 
862  //---------------------------------------------------------------------------
863  // Kossov cross sections ---------------------------
864  G4double chipsTot, chipsEl, chipsIn;
865 
866  static G4ChipsComponentXS* _instance = new G4ChipsComponentXS();
867  G4ChipsComponentXS* CHIPSxsManager = _instance;
868 
869  G4bool CHIPapplic=true; //false; Uzhi 29.01.13
870  if(CHIPapplic)
871  {
872  chipsTot=CHIPSxsManager->GetTotalElementCrossSection(part,fenergy,Z,A-Z);
873  chipsEl =CHIPSxsManager->GetElasticElementCrossSection(part,fenergy,Z,A-Z);
874  chipsIn =CHIPSxsManager->GetInelasticElementCrossSection(part,fenergy,Z,A-Z);
875  chipsTot/=millibarn; chipsEl/=millibarn; chipsIn/=millibarn;
876 
877  G4cout<<"CHIPS cross sections are used:----------------------"<<G4endl<<
878  "Plab Total Elastic Inelastic" <<G4endl;
879  G4cout<<" "<<fPlab/GeV<<" "<< chipsTot<<" "<<chipsEl<<" "<<chipsIn <<G4endl<<G4endl;
880 
881  fsigTot=chipsTot; fsigEl=chipsEl; fsigIn=chipsIn;
882  } else
883  {
884  fsigTot = cross_sec;
885  fsigEl = cross_secel;
886  fsigIn = cross_inel;
887 
888  G4cout<<"Proposed Xs (mb) are used: Tot El In: "
889  <<cross_sec<<" "<<cross_secel<<" "<<cross_inel<<G4endl;
890  }
891 
892 }
G4ParticleDefinition * anti_He3
Definition: PndFtfDirect.h:191
G4double fsigTot
Definition: PndFtfDirect.h:151
G4double fenergy
Definition: PndFtfDirect.h:122
G4ParticleDefinition * anti_triton
Definition: PndFtfDirect.h:190
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
exit(0)
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
Double_t const cm
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
TString cuts[MAX]
Definition: autocutx.C:35
G4String fnameMat
Definition: PndFtfDirect.h:127
G4ParticleDefinition * he3
Definition: PndFtfDirect.h:183
G4ParticleDefinition * anti_neutron
Definition: PndFtfDirect.h:188
G4bool fionParticle
Definition: PndFtfDirect.h:120
G4ParticleDefinition * proton
Definition: PndFtfDirect.h:176
G4ParticleDefinition * pin
Definition: PndFtfDirect.h:178
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4VProcess * proc
Definition: PndFtfDirect.h:168
Double_t phi0
Definition: checkhelixhit.C:60
G4double faTime
Definition: PndFtfDirect.h:142
TStopwatch timer
Definition: hit_dirc.C:51
G4double fsigEl
Definition: PndFtfDirect.h:152
G4String fnameGen
Definition: PndFtfDirect.h:130
G4ParticleDefinition * alp
Definition: PndFtfDirect.h:184
G4ParticleDefinition * anti_alpha
Definition: PndFtfDirect.h:192
G4ParticleDefinition * anti_proton
Definition: PndFtfDirect.h:187
G4ParticleDefinition * neutron
Definition: PndFtfDirect.h:177
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4Step * step
Definition: PndFtfDirect.h:169
G4double fsigIn
Definition: PndFtfDirect.h:153
G4double fPlab
Definition: PndFtfDirect.h:121
G4double ftheStep
Definition: PndFtfDirect.h:135
G4Track * gTrack
Definition: PndFtfDirect.h:170
G4ParticleDefinition * deu
Definition: PndFtfDirect.h:181
Test30Material * fmate
Definition: PndFtfDirect.h:109
G4ParticleDefinition * anti_deuteron
Definition: PndFtfDirect.h:189
G4ParticleDefinition * tri
Definition: PndFtfDirect.h:182
G4ParticleDefinition * electron
Definition: PndFtfDirect.h:175
Double_t pkt[2]
Definition: hist-t7.C:111
G4String fnamePart
Definition: PndFtfDirect.h:119
Double_t const mm
G4double fsigmae
Definition: PndFtfDirect.h:123
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
#define safety
Definition: createSTT.C:44
double Z
Definition: anaLmdDigi.C:68
TGeoRotation rot
Test30Physics * fphys
Definition: PndFtfDirect.h:110
G4ParticleDefinition * pip
Definition: PndFtfDirect.h:179
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148
void PndFtfDirect::SetVerbose ( int  v = 1)
inline

Definition at line 84 of file PndFtfDirect.h.

References fverbose, and v.

84 {fverbose=v;};
__m128 v
Definition: P4_F32vec4.h:4
void PndFtfDirect::TestPointers ( )
inlineprivate

Definition at line 194 of file PndFtfDirect.h.

References alp, anti_alpha, anti_deuteron, anti_He3, anti_neutron, anti_proton, anti_triton, deu, dParticle, electron, faDirection, faPosition, fdefaultEngine, fin, fmate, fmaterial, fpartTable, fphys, ftheDeExcitation, ftheEvaporation, fthePreCompound, gTrack, he3, neutron, part, pin, pip, proc, proton, step, and tri.

195  {
196  std::cout<<"PndFtfDirect::fin -> "<< fin << std::endl;
197  std::cout<<"PndFtfDirect::fmate -> "<< fmate << std::endl;
198  std::cout<<"PndFtfDirect::fphys -> "<< fphys << std::endl;
199  std::cout<<"PndFtfDirect::fpartTable -> "<< fpartTable << std::endl;
200  std::cout<<"PndFtfDirect::fdefaultEngine -> "<< fdefaultEngine << std::endl;
201  std::cout<<"PndFtfDirect::fmaterial -> "<< fmaterial << std::endl;
202  std::cout<<"PndFtfDirect::faPosition -> "<< faPosition << std::endl;
203  std::cout<<"PndFtfDirect::faDirection -> "<< faDirection << std::endl;
204  std::cout<<"PndFtfDirect::ftheDeExcitation -> "<< ftheDeExcitation << std::endl;
205  std::cout<<"PndFtfDirect::ftheEvaporation -> "<< ftheEvaporation << std::endl;
206  std::cout<<"PndFtfDirect::fthePreCompound -> "<< fthePreCompound << std::endl;
207  std::cout<<"PndFtfDirect::dParticle -> "<< dParticle << std::endl;
208  std::cout<<"PndFtfDirect::proc -> "<< proc << std::endl;
209  std::cout<<"PndFtfDirect::step -> "<< step << std::endl;
210  std::cout<<"PndFtfDirect::gTrack -> "<< gTrack << std::endl;
211  std::cout<<"PndFtfDirect::part -> "<< part << std::endl;
212  std::cout<<"PndFtfDirect::electron -> "<< electron << std::endl;
213  std::cout<<"PndFtfDirect::proton -> "<< proton << std::endl;
214  std::cout<<"PndFtfDirect::neutron -> "<< neutron << std::endl;
215  std::cout<<"PndFtfDirect::pin -> "<< pin << std::endl;
216  std::cout<<"PndFtfDirect::pip -> "<< pip << std::endl;
217  std::cout<<"PndFtfDirect::deu -> "<< deu << std::endl;
218  std::cout<<"PndFtfDirect::tri -> "<< tri << std::endl;
219  std::cout<<"PndFtfDirect::he3 -> "<< he3 << std::endl;
220  std::cout<<"PndFtfDirect::alp -> "<< alp << std::endl;
221  std::cout<<"PndFtfDirect::anti_proton -> "<< anti_proton << std::endl;
222  std::cout<<"PndFtfDirect::anti_neutron -> "<< anti_neutron << std::endl;
223  std::cout<<"PndFtfDirect::anti_deuteron -> "<< anti_deuteron << std::endl;
224  std::cout<<"PndFtfDirect::anti_triton -> "<< anti_triton << std::endl;
225  std::cout<<"PndFtfDirect::anti_He3 -> "<< anti_He3 << std::endl;
226  std::cout<<"PndFtfDirect::anti_alpha -> "<< anti_alpha << std::endl;
227  };
G4ParticleDefinition * anti_He3
Definition: PndFtfDirect.h:191
G4ParticleDefinition * anti_triton
Definition: PndFtfDirect.h:190
G4ParticleTable * fpartTable
Definition: PndFtfDirect.h:111
G4ParticleDefinition * part
Definition: PndFtfDirect.h:171
G4Material * fmaterial
Definition: PndFtfDirect.h:136
G4ExcitationHandler * ftheDeExcitation
Definition: PndFtfDirect.h:147
G4ParticleDefinition * he3
Definition: PndFtfDirect.h:183
G4ParticleDefinition * anti_neutron
Definition: PndFtfDirect.h:188
G4ParticleDefinition * proton
Definition: PndFtfDirect.h:176
G4ParticleDefinition * pin
Definition: PndFtfDirect.h:178
G4DynamicParticle * dParticle
Definition: PndFtfDirect.h:167
G4PreCompoundModel * fthePreCompound
Definition: PndFtfDirect.h:149
G4VProcess * proc
Definition: PndFtfDirect.h:168
CLHEP::RanluxEngine * fdefaultEngine
Definition: PndFtfDirect.h:113
G4ParticleDefinition * alp
Definition: PndFtfDirect.h:184
G4ParticleDefinition * anti_alpha
Definition: PndFtfDirect.h:192
G4ParticleDefinition * anti_proton
Definition: PndFtfDirect.h:187
G4ParticleDefinition * neutron
Definition: PndFtfDirect.h:177
CLHEP::Hep3Vector * faDirection
Definition: PndFtfDirect.h:143
G4Step * step
Definition: PndFtfDirect.h:169
G4Track * gTrack
Definition: PndFtfDirect.h:170
G4ParticleDefinition * deu
Definition: PndFtfDirect.h:181
Test30Material * fmate
Definition: PndFtfDirect.h:109
G4ParticleDefinition * anti_deuteron
Definition: PndFtfDirect.h:189
G4ParticleDefinition * tri
Definition: PndFtfDirect.h:182
G4ParticleDefinition * electron
Definition: PndFtfDirect.h:175
CLHEP::Hep3Vector * faPosition
Definition: PndFtfDirect.h:141
std::ifstream * fin
Definition: PndFtfDirect.h:108
Test30Physics * fphys
Definition: PndFtfDirect.h:110
G4ParticleDefinition * pip
Definition: PndFtfDirect.h:179
G4Evaporation * ftheEvaporation
Definition: PndFtfDirect.h:148

Member Data Documentation

G4ParticleDefinition* PndFtfDirect::alp
private

Definition at line 184 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::anti_alpha
private

Definition at line 192 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::anti_deuteron
private

Definition at line 189 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::anti_He3
private

Definition at line 191 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::anti_neutron
private

Definition at line 188 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::anti_proton
private

Definition at line 187 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::anti_triton
private

Definition at line 190 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::deu
private

Definition at line 181 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4DynamicParticle* PndFtfDirect::dParticle
private

Definition at line 167 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), TestPointers(), and ~PndFtfDirect().

G4ParticleDefinition* PndFtfDirect::electron
private

Definition at line 175 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), and TestPointers().

Int_t PndFtfDirect::factiveCnt
private

Definition at line 159 of file PndFtfDirect.h.

Referenced by InitZero(), and ProcessEvent().

CLHEP::Hep3Vector* PndFtfDirect::faDirection
private
CLHEP::Hep3Vector* PndFtfDirect::faPosition
private
G4double PndFtfDirect::faTime
private

Definition at line 142 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and Setup().

CLHEP::RanluxEngine* PndFtfDirect::fdefaultEngine
private

Definition at line 113 of file PndFtfDirect.h.

Referenced by parseConfigfile(), PndFtfDirect(), ProcessEvent(), and TestPointers().

bool PndFtfDirect::fDoSetup
private

Definition at line 92 of file PndFtfDirect.h.

Referenced by Setup().

G4double PndFtfDirect::fenergy
private

Definition at line 122 of file PndFtfDirect.h.

Referenced by InitZero(), ProcessEvent(), and Setup().

G4RunManager* PndFtfDirect::fG4RunManager
private

Definition at line 106 of file PndFtfDirect.h.

Referenced by LoadG4(), and ~PndFtfDirect().

G4VUserPhysicsList* PndFtfDirect::fG4VUserPhysicsList
private

Definition at line 107 of file PndFtfDirect.h.

Referenced by ~PndFtfDirect().

std::ifstream* PndFtfDirect::fin
private

Definition at line 108 of file PndFtfDirect.h.

Referenced by parseConfigfile(), PndFtfDirect(), TestPointers(), and ~PndFtfDirect().

G4int PndFtfDirect::fionA
private

Definition at line 125 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), ProcessEvent(), and Setup().

G4bool PndFtfDirect::fionParticle
private

Definition at line 120 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), PndFtfDirect(), ProcessEvent(), and Setup().

G4int PndFtfDirect::fionZ
private

Definition at line 125 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and Setup().

Test30Material* PndFtfDirect::fmate
private

Definition at line 109 of file PndFtfDirect.h.

Referenced by Setup(), TestPointers(), and ~PndFtfDirect().

G4Material* PndFtfDirect::fmaterial
private

Definition at line 136 of file PndFtfDirect.h.

Referenced by InitZero(), Setup(), and TestPointers().

float PndFtfDirect::fMode
private

0. - No elastic scattering, only inelastic

  1. - Elastic and inelastic interactions

Definition at line 101 of file PndFtfDirect.h.

G4int PndFtfDirect::fmodu
private

Definition at line 133 of file PndFtfDirect.h.

Referenced by InitZero(), and parseConfigfile().

float PndFtfDirect::fMom
private

P_lab(GeV/c)

Definition at line 96 of file PndFtfDirect.h.

G4String PndFtfDirect::fnameGen
private

Definition at line 130 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), PndFtfDirect(), and Setup().

G4String PndFtfDirect::fnameMat
private

Definition at line 127 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), PndFtfDirect(), and Setup().

G4String PndFtfDirect::fnamePart
private

Definition at line 119 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), PndFtfDirect(), and Setup().

G4int PndFtfDirect::fnevt
private

Definition at line 132 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and ProcessEvent().

G4bool PndFtfDirect::fNoElastics
private

Definition at line 117 of file PndFtfDirect.h.

Referenced by parseConfigfile(), PndFtfDirect(), ProcessEvent(), and SetNoElastic().

int PndFtfDirect::fnpart
private

Definition at line 155 of file PndFtfDirect.h.

Referenced by InitZero(), and ProcessEvent().

G4double PndFtfDirect::fnx
private

Definition at line 144 of file PndFtfDirect.h.

Referenced by InitZero(), and parseConfigfile().

G4double PndFtfDirect::fny
private

Definition at line 144 of file PndFtfDirect.h.

Referenced by InitZero(), and parseConfigfile().

G4double PndFtfDirect::fnz
private

Definition at line 144 of file PndFtfDirect.h.

Referenced by InitZero(), and parseConfigfile().

G4ParticleTable* PndFtfDirect::fpartTable
private

Definition at line 111 of file PndFtfDirect.h.

Referenced by Setup(), TestPointers(), and ~PndFtfDirect().

Test30Physics* PndFtfDirect::fphys
private

Definition at line 110 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), TestPointers(), and ~PndFtfDirect().

G4double PndFtfDirect::fPlab
private

Definition at line 121 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), PndFtfDirect(), ProcessEvent(), and Setup().

double PndFtfDirect::fRsigma
private

Definition at line 103 of file PndFtfDirect.h.

G4bool PndFtfDirect::fsaverand
private

Definition at line 116 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and ProcessEvent().

double PndFtfDirect::fSeed
private

Definition at line 102 of file PndFtfDirect.h.

G4bool PndFtfDirect::fShen
private

Definition at line 129 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and Setup().

G4double PndFtfDirect::fsigEl
private

Definition at line 152 of file PndFtfDirect.h.

Referenced by InitZero(), and Setup().

G4double PndFtfDirect::fsigIn
private

Definition at line 153 of file PndFtfDirect.h.

Referenced by InitZero(), and Setup().

G4double PndFtfDirect::fsigmae
private

Definition at line 123 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), ProcessEvent(), and Setup().

G4double PndFtfDirect::fsigTot
private

Definition at line 151 of file PndFtfDirect.h.

Referenced by InitZero(), and Setup().

G4int PndFtfDirect::ftargetA
private

Definition at line 126 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), PndFtfDirect(), and Setup().

G4ExcitationHandler* PndFtfDirect::ftheDeExcitation
private

Definition at line 147 of file PndFtfDirect.h.

Referenced by parseConfigfile(), Setup(), and TestPointers().

G4Evaporation* PndFtfDirect::ftheEvaporation
private

Definition at line 148 of file PndFtfDirect.h.

Referenced by parseConfigfile(), Setup(), and TestPointers().

G4PreCompoundModel* PndFtfDirect::fthePreCompound
private

Definition at line 149 of file PndFtfDirect.h.

Referenced by parseConfigfile(), Setup(), and TestPointers().

G4double PndFtfDirect::ftheStep
private

Definition at line 135 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and Setup().

float PndFtfDirect::fThtMin
private

Definition at line 104 of file PndFtfDirect.h.

G4int PndFtfDirect::fverbose
private

Definition at line 115 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), ProcessEvent(), ReadEvent(), Setup(), and SetVerbose().

G4bool PndFtfDirect::fxsbgg
private

Definition at line 138 of file PndFtfDirect.h.

Referenced by InitZero(), parseConfigfile(), and Setup().

G4Track* PndFtfDirect::gTrack
private

Definition at line 170 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::he3
private

Definition at line 183 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::neutron
private

Definition at line 177 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::part
private

Definition at line 171 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::pin
private

Definition at line 178 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::pip
private

Definition at line 179 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4VProcess* PndFtfDirect::proc
private

Definition at line 168 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::proton
private

Definition at line 176 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().

G4Step* PndFtfDirect::step
private

Definition at line 169 of file PndFtfDirect.h.

Referenced by ProcessEvent(), Setup(), and TestPointers().

G4ParticleDefinition* PndFtfDirect::tri
private

Definition at line 182 of file PndFtfDirect.h.

Referenced by Setup(), and TestPointers().


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