Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
genie::Intranuke2015 Class Referenceabstract

#include <Intranuke2015.h>

Inheritance diagram for genie::Intranuke2015:
genie::EventRecordVisitorI genie::Algorithm genie::HAIntranuke2015 genie::HNIntranuke2015

Public Member Functions

 Intranuke2015 ()
 
 Intranuke2015 (string name)
 
 Intranuke2015 (string name, string config)
 
 ~Intranuke2015 ()
 
virtual void ProcessEventRecord (GHepRecord *event_rec) const
 
void Configure (const Registry &config)
 Configure the algorithm. More...
 
void Configure (string param_set)
 Configure the algorithm. More...
 
virtual string GetINukeMode () const
 
- Public Member Functions inherited from genie::EventRecordVisitorI
virtual ~EventRecordVisitorI ()
 
- Public Member Functions inherited from genie::Algorithm
virtual ~Algorithm ()
 
virtual void FindConfig (void)
 Lookup configuration from the config pool. More...
 
virtual const RegistryGetConfig (void) const
 Get configuration registry. More...
 
RegistryGetOwnedConfig (void)
 Get a writeable version of an owned configuration Registry. More...
 
virtual const AlgIdId (void) const
 Get algorithm ID. More...
 
virtual AlgStatus_t GetStatus (void) const
 Get algorithm status. More...
 
virtual bool AllowReconfig (void) const
 
virtual AlgCmp_t Compare (const Algorithm *alg) const
 Compare with input algorithm. More...
 
virtual void SetId (const AlgId &id)
 Set algorithm ID. More...
 
virtual void SetId (string name, string config)
 
const AlgorithmSubAlg (const RgKey &registry_key) const
 
void AdoptConfig (void)
 
void AdoptSubstructure (void)
 
virtual void Print (ostream &stream) const
 Print algorithm info. More...
 

Protected Member Functions

virtual void LoadConfig (void)=0
 
void TransportHadrons (GHepRecord *ev) const
 
void GenerateVertex (GHepRecord *ev) const
 
bool NeedsRescattering (const GHepParticle *p) const
 
bool CanRescatter (const GHepParticle *p) const
 
bool IsInNucleus (const GHepParticle *p) const
 
void SetTrackingRadius (const GHepParticle *p) const
 
double GenerateStep (GHepRecord *ev, GHepParticle *p) const
 
virtual void SimulateHadronicFinalState (GHepRecord *ev, GHepParticle *p) const =0
 
virtual int HandleCompoundNucleus (GHepRecord *ev, GHepParticle *p, int mom) const =0
 
- Protected Member Functions inherited from genie::EventRecordVisitorI
 EventRecordVisitorI ()
 
 EventRecordVisitorI (string name)
 
 EventRecordVisitorI (string name, string config)
 
- Protected Member Functions inherited from genie::Algorithm
 Algorithm ()
 
 Algorithm (string name)
 
 Algorithm (string name, string config)
 
void Initialize (void)
 
void DeleteConfig (void)
 
void DeleteSubstructure (void)
 

Protected Attributes

double fTrackingRadius
 tracking radius for the nucleus in the current event More...
 
TGenPhaseSpace fGenPhaseSpace
 a phase space generator More...
 
INukeHadroData2015fHadroData2015
 a collection of h+N,h+A data & calculations More...
 
AlgFactoryfAlgf
 algorithm factory instance More...
 
const NuclearModelIfNuclmodel
 nuclear model used to generate fermi momentum More...
 
int fRemnA
 remnant nucleus A More...
 
int fRemnZ
 remnant nucleus Z More...
 
TLorentzVector fRemnP4
 P4 of remnant system. More...
 
GEvGenMode_t fGMode
 event generation mode (lepton+A, hadron+A, ...) More...
 
double fR0
 effective nuclear size param More...
 
double fNR
 param multiplying the nuclear radius, determining how far to track hadrons beyond the "nuclear boundary" More...
 
double fNucRmvE
 binding energy to subtract from cascade nucleons More...
 
double fDelRPion
 factor by which Pion Compton wavelength gets multiplied to become nuclear size enhancement More...
 
double fDelRNucleon
 factor by which Nucleon Compton wavelength gets multiplied to become nuclear size enhancement More...
 
double fHadStep
 step size for intranuclear hadron transport More...
 
double fNucAbsFac
 absorption xsec correction factor (hN Mode) More...
 
double fNucCEXFac
 charge exchange xsec correction factor (hN Mode) More...
 
double fEPreEq
 threshold for pre-equilibrium reaction More...
 
double fFermiFac
 testing parameter to modify fermi momentum More...
 
double fFreeStep
 produced particle free stem, in fm More...
 
double fFermiMomentum
 whether or not particle collision is pauli blocked More...
 
bool fDoFermi
 whether or not to do fermi mom. More...
 
bool fDoMassDiff
 whether or not to do mass diff. mode More...
 
bool fDoCompoundNucleus
 whether or not to do compound nucleus considerations More...
 
bool fUseOset
 Oset model for low energy pion in hN. More...
 
bool fAltOset
 NuWro's table-based implementation (not recommended) More...
 
bool fXsecNNCorr
 use nuclear medium correction for NN cross section More...
 
- Protected Attributes inherited from genie::Algorithm
bool fAllowReconfig
 
bool fOwnsConfig
 true if it owns its config. registry More...
 
bool fOwnsSubstruc
 true if it owns its substructure (sub-algs,...) More...
 
AlgId fID
 algorithm name and configuration set More...
 
RegistryfConfig
 config. (either owned or pointing to config pool) More...
 
AlgStatus_t fStatus
 algorithm execution status More...
 
AlgMapfOwnedSubAlgMp
 local pool for owned sub-algs (taken out of the factory pool) More...
 

Friends

class IntranukeTester
 

Detailed Description

Definition at line 54 of file Intranuke2015.h.

Constructor & Destructor Documentation

Intranuke2015::Intranuke2015 ( )

Definition at line 93 of file Intranuke2015.cxx.

93  :
95 {
96 
97 }
Intranuke2015::Intranuke2015 ( string  name)

Definition at line 99 of file Intranuke2015.cxx.

Intranuke2015::Intranuke2015 ( string  name,
string  config 
)
Intranuke2015::~Intranuke2015 ( )

Definition at line 111 of file Intranuke2015.cxx.

112 {
113 
114 }

Member Function Documentation

bool Intranuke2015::CanRescatter ( const GHepParticle p) const
protected

Definition at line 233 of file Intranuke2015.cxx.

234 {
235 // checks whether a particle that needs to be rescattered, can in fact be
236 // rescattered by this cascade MC
237 
238  assert(p);
239  return ( p->Pdg() == kPdgPiP ||
240  p->Pdg() == kPdgPiM ||
241  p->Pdg() == kPdgPi0 ||
242  p->Pdg() == kPdgProton ||
243  p->Pdg() == kPdgNeutron ||
244  // p->Pdg() == kPdgGamma ||
245  p->Pdg() == kPdgKP //||
246  // p->Pdg() == kPdgKM
247  );
248 }
int Pdg(void) const
Definition: GHepParticle.h:64
const int kPdgKP
Definition: PDGCodes.h:146
const int kPdgPiP
Definition: PDGCodes.h:132
const int kPdgPi0
Definition: PDGCodes.h:134
const int kPdgPiM
Definition: PDGCodes.h:133
const int kPdgProton
Definition: PDGCodes.h:62
const int kPdgNeutron
Definition: PDGCodes.h:64
void Intranuke2015::Configure ( const Registry config)
virtual

Configure the algorithm.

Reimplemented from genie::Algorithm.

Definition at line 414 of file Intranuke2015.cxx.

415 {
416  Algorithm::Configure(config);
417  this->LoadConfig();
418 }
virtual void Configure(const Registry &config)
Configure the algorithm.
Definition: Algorithm.cxx:70
virtual void LoadConfig(void)=0
void Intranuke2015::Configure ( string  config)
virtual

Configure the algorithm.

Reimplemented from genie::Algorithm.

Definition at line 420 of file Intranuke2015.cxx.

421 {
422  Algorithm::Configure(param_set);
423  this->LoadConfig();
424 }
virtual void Configure(const Registry &config)
Configure the algorithm.
Definition: Algorithm.cxx:70
virtual void LoadConfig(void)=0
double Intranuke2015::GenerateStep ( GHepRecord ev,
GHepParticle p 
) const
protected

Definition at line 394 of file Intranuke2015.cxx.

395 {
396 // Generate a step (in fermis) for particle p in the input event.
397 // Computes the mean free path L and generate an 'interaction' distance d
398 // from an exp(-d/L) distribution
399 
400  RandomGen * rnd = RandomGen::Instance();
401 
402  string fINukeMode = this->GetINukeMode();
403 
404  double L = utils::intranuke2015::MeanFreePath(p->Pdg(), *p->X4(), *p->P4(), fRemnA,
406  double d = -1.*L * TMath::Log(rnd->RndFsi().Rndm());
407 
408  LOG("Intranuke2015", pDEBUG)
409  << "Mean free path = " << L << " fm / "
410  << "Generated path length = " << d << " fm";
411  return d;
412 }
TRandom3 & RndFsi(void) const
rnd number generator used by intranuclear cascade monte carlos
Definition: RandomGen.h:60
bool fUseOset
Oset model for low energy pion in hN.
static RandomGen * Instance()
Access instance.
Definition: RandomGen.cxx:79
virtual string GetINukeMode() const
Definition: Intranuke2015.h:72
bool fXsecNNCorr
use nuclear medium correction for NN cross section
double MeanFreePath(int pdgc, const TLorentzVector &x4, const TLorentzVector &p4, double A, double Z, double nRpi=0.5, double nRnuc=1.0, const bool useOset=false, const bool altOset=false, const bool xsecNNCorr=false, string INukeMode="XX2015")
Mean free path (pions, nucleons)
A singleton holding random number generator classes. All random number generation in GENIE should tak...
Definition: RandomGen.h:30
int Pdg(void) const
Definition: GHepParticle.h:64
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:87
TLorentzVector * X4(void) const
Definition: GHepParticle.h:80
bool fAltOset
NuWro&#39;s table-based implementation (not recommended)
int fRemnZ
remnant nucleus Z
Definition: Intranuke2015.h:99
TLorentzVector * P4(void) const
Definition: GHepParticle.h:79
double fDelRNucleon
factor by which Nucleon Compton wavelength gets multiplied to become nuclear size enhancement ...
int fRemnA
remnant nucleus A
Definition: Intranuke2015.h:98
double fDelRPion
factor by which Pion Compton wavelength gets multiplied to become nuclear size enhancement ...
#define pDEBUG
Definition: Messenger.h:54
void Intranuke2015::GenerateVertex ( GHepRecord ev) const
protected

Definition at line 153 of file Intranuke2015.cxx.

154 {
155 // Sets a vertex in the nucleus periphery
156 // Called onlt in hadron/photon-nucleus interactions.
157 
158  GHepParticle * nucltgt = evrec->TargetNucleus();
159  assert(nucltgt);
160 
161  RandomGen * rnd = RandomGen::Instance();
162  TVector3 vtx(999999.,999999.,999999.);
163 
164  // *** For h+A events (test mode):
165  // Assume a hadron beam with uniform intensity across an area,
166  // so we need to choose events uniformly within that area.
167  double x=999999., y=999999., epsilon = 0.001;
168  double R2 = TMath::Power(fTrackingRadius,2.);
169  double rp2 = TMath::Power(x,2.) + TMath::Power(y,2.);
170  while(rp2 > R2-epsilon) {
171  x = (fTrackingRadius-epsilon) * rnd->RndFsi().Rndm();
172  y = -fTrackingRadius + 2*fTrackingRadius * rnd->RndFsi().Rndm();
173  y -= ((y>0) ? epsilon : -epsilon);
174  rp2 = TMath::Power(x,2.) + TMath::Power(y,2.);
175  }
176  vtx.SetXYZ(x,y, -1.*TMath::Sqrt(TMath::Max(0.,R2-rp2)) + epsilon);
177 
178  // get the actual unit vector along the incoming hadron direction
179  TVector3 direction = evrec->Probe()->P4()->Vect().Unit();
180 
181  // rotate the vtx position
182  vtx.RotateUz(direction);
183 
184  LOG("Intranuke2015", pNOTICE)
185  << "Generated vtx @ R = " << vtx.Mag() << " fm / "
186  << print::Vec3AsString(&vtx);
187 
188  TObjArrayIter piter(evrec);
189  GHepParticle * p = 0;
190  while( (p = (GHepParticle *) piter.Next()) )
191  {
192  if(pdg::IsPseudoParticle(p->Pdg())) continue;
193  if(pdg::IsIon (p->Pdg())) continue;
194 
195  p->SetPosition(vtx.x(), vtx.y(), vtx.z(), 0.);
196  }
197 }
TRandom3 & RndFsi(void) const
rnd number generator used by intranuclear cascade monte carlos
Definition: RandomGen.h:60
static RandomGen * Instance()
Access instance.
Definition: RandomGen.cxx:79
string Vec3AsString(const TVector3 *vec)
double fTrackingRadius
tracking radius for the nucleus in the current event
Definition: Intranuke2015.h:93
A singleton holding random number generator classes. All random number generation in GENIE should tak...
Definition: RandomGen.h:30
int Pdg(void) const
Definition: GHepParticle.h:64
double y
void SetPosition(const TLorentzVector &v4)
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:87
p
Definition: test.py:228
bool IsIon(int pdgc)
Definition: PDGUtils.cxx:53
bool IsPseudoParticle(int pdgc)
Definition: PDGUtils.cxx:38
#define pNOTICE
Definition: Messenger.h:52
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition: GHepParticle.h:40
virtual string genie::Intranuke2015::GetINukeMode ( ) const
inlinevirtual

Reimplemented in genie::HAIntranuke2015, and genie::HNIntranuke2015.

Definition at line 72 of file Intranuke2015.h.

72 {return "XX2015";};
virtual int genie::Intranuke2015::HandleCompoundNucleus ( GHepRecord ev,
GHepParticle p,
int  mom 
) const
protectedpure virtual
bool Intranuke2015::IsInNucleus ( const GHepParticle p) const
protected

Definition at line 250 of file Intranuke2015.cxx.

251 {
252 // check whether the input particle is still within the nucleus
253 //
254  return (p->X4()->Vect().Mag() < fTrackingRadius + fHadStep);
255 }
double fTrackingRadius
tracking radius for the nucleus in the current event
Definition: Intranuke2015.h:93
TLorentzVector * X4(void) const
Definition: GHepParticle.h:80
double fHadStep
step size for intranuclear hadron transport
virtual void genie::Intranuke2015::LoadConfig ( void  )
protectedpure virtual
bool Intranuke2015::NeedsRescattering ( const GHepParticle p) const
protected

Definition at line 214 of file Intranuke2015.cxx.

215 {
216 // checks whether the particle should be rescattered
217 
218  assert(p);
219 
220  if(fGMode == kGMdHadronNucleus ||
222  // hadron/photon-nucleus scattering propagate the incoming particle
223  return (
225  && !pdg::IsIon(p->Pdg()));
226  }
227  else {
228  // attempt to rescatter anything marked as 'hadron in the nucleus'
229  return (p->Status() == kIStHadronInTheNucleus);
230  }
231 }
GHepStatus_t Status(void) const
Definition: GHepParticle.h:65
int Pdg(void) const
Definition: GHepParticle.h:64
bool IsIon(int pdgc)
Definition: PDGUtils.cxx:53
GEvGenMode_t fGMode
event generation mode (lepton+A, hadron+A, ...)
void Intranuke2015::ProcessEventRecord ( GHepRecord event_rec) const
virtual

Implements genie::EventRecordVisitorI.

Reimplemented in genie::HAIntranuke2015, and genie::HNIntranuke2015.

Definition at line 116 of file Intranuke2015.cxx.

117 {
118  // Do not continue if there is no nuclear target
119  GHepParticle * nucltgt = evrec->TargetNucleus();
120  if (!nucltgt) {
121  LOG("HNIntranuke2015", pINFO) << "No nuclear target found - INTRANUKE exits";
122  return;
123  }
124 
125  // Decide tracking radius for the current nucleus (few * R0 * A^1/3)
126  this->SetTrackingRadius(nucltgt);
127 
128  // Understand what the event generation mode is (hadron/photon-nucleus,
129  // lepton-nucleus, nucleon decay) from the input event.
130  // The determined mode has an effect on INTRANUKE behaviour (how to lookup
131  // the residual nucleus, whether to set an intranuclear vtx etc) but it
132  // does not affect the INTRANUKE physics.
133  fGMode = evrec->EventGenerationMode();
134 
135  // For lepton-nucleus scattering and for nucleon decay intranuclear vtx
136  // position (in the target nucleus coord system) is set elsewhere.
137  // This method only takes effect in hadron/photon-nucleus interactions.
138  // In this special mode, an interaction vertex is set at the periphery
139  // of the target nucleus.
140  if(fGMode == kGMdHadronNucleus ||
142  {
143  this->GenerateVertex(evrec);
144  }
145 
146  // Now transport all hadrons outside the tracking radius.
147  // Stepping part is common for both HA and HN.
148  // Once it has been estabished that an interaction takes place then
149  // HA and HN specific code takes over in order to simulate the final state.
150  this->TransportHadrons(evrec);
151 }
void GenerateVertex(GHepRecord *ev) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:87
void TransportHadrons(GHepRecord *ev) const
#define pINFO
Definition: Messenger.h:53
GEvGenMode_t fGMode
event generation mode (lepton+A, hadron+A, ...)
void SetTrackingRadius(const GHepParticle *p) const
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition: GHepParticle.h:40
void Intranuke2015::SetTrackingRadius ( const GHepParticle p) const
protected

Definition at line 199 of file Intranuke2015.cxx.

200 {
201  assert(p && pdg::IsIon(p->Pdg()));
202  double A = p->A();
203  fTrackingRadius = fR0 * TMath::Power(A, 1./3.);
204 
205  // multiply that by some input factor so that hadrons are tracked
206  // beyond the nuclear 'boundary' since the nuclear density distribution
207  // is not zero there
208  fTrackingRadius *= fNR;
209 
210  LOG("Intranuke2015", pNOTICE)
211  << "Setting tracking radius to R = " << fTrackingRadius;
212 }
double fR0
effective nuclear size param
double fTrackingRadius
tracking radius for the nucleus in the current event
Definition: Intranuke2015.h:93
double fNR
param multiplying the nuclear radius, determining how far to track hadrons beyond the "nuclear bounda...
int Pdg(void) const
Definition: GHepParticle.h:64
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:87
static const double A
Definition: Units.h:82
bool IsIon(int pdgc)
Definition: PDGUtils.cxx:53
int A(void) const
#define pNOTICE
Definition: Messenger.h:52
virtual void genie::Intranuke2015::SimulateHadronicFinalState ( GHepRecord ev,
GHepParticle p 
) const
protectedpure virtual
void Intranuke2015::TransportHadrons ( GHepRecord ev) const
protected

Definition at line 257 of file Intranuke2015.cxx.

258 {
259 // transport all hadrons outside the nucleus
260 
261  int inucl = -1;
262  fRemnA = -1;
263  fRemnZ = -1;
264 
265  // Get 'nuclear environment' at the beginning of hadron transport
266  // and keep track of the remnant nucleus A,Z
267 
268  if(fGMode == kGMdHadronNucleus ||
270  {
271  inucl = evrec->TargetNucleusPosition();
272  }
273  else
274  if(fGMode == kGMdLeptonNucleus ||
276  {
277  inucl = evrec->RemnantNucleusPosition();
278  }
279 
280  LOG("Intranuke2015", pNOTICE)
281  << "Propagating hadrons within nucleus found in position = " << inucl;
282  GHepParticle * nucl = evrec->Particle(inucl);
283  if(!nucl) {
284  LOG("Intranuke2015", pERROR)
285  << "No nucleus found in position = " << inucl;
286  LOG("Intranuke2015", pERROR)
287  << *evrec;
288  return;
289  }
290 
291  fRemnA = nucl->A();
292  fRemnZ = nucl->Z();
293 
294  LOG("Intranuke2015", pNOTICE)
295  << "Nucleus (A,Z) = (" << fRemnA << ", " << fRemnZ << ")";
296 
297  const TLorentzVector & p4nucl = *(nucl->P4());
298  fRemnP4 = p4nucl;
299 
300  // Loop over GHEP and run intranuclear rescattering on handled particles
301  TObjArrayIter piter(evrec);
302  GHepParticle * p = 0;
303  int icurr = -1;
304 
305  while( (p = (GHepParticle *) piter.Next()) )
306  {
307  icurr++;
308 
309  // Check whether the particle needs rescattering, otherwise skip it
310  if( ! this->NeedsRescattering(p) ) continue;
311 
312  LOG("Intranuke2015", pNOTICE)
313  << " >> Stepping a " << p->Name()
314  << " with kinetic E = " << p->KinE() << " GeV";
315 
316  // Rescatter a clone, not the original particle
317  GHepParticle * sp = new GHepParticle(*p);
318 
319  // Set clone's mom to be the hadron that was cloned
320  sp->SetFirstMother(icurr);
321 
322  // Check whether the particle can be rescattered
323  if(!this->CanRescatter(sp)) {
324 
325  // if I can't rescatter it, I will just take it out of the nucleus
326  LOG("Intranuke2015", pNOTICE)
327  << "... Current version can't rescatter a " << sp->Name();
328  sp->SetFirstMother(icurr);
330  evrec->AddParticle(*sp);
331  delete sp;
332  continue; // <-- skip to next GHEP entry
333  }
334 
335  // Start stepping particle out of the nucleus
336  bool has_interacted = false;
337  while ( this-> IsInNucleus(sp) )
338  {
339  // advance the hadron by a step
341 
342  // check whether it interacts
343  double d = this->GenerateStep(evrec,sp);
344  has_interacted = (d<fHadStep);
345  if(has_interacted) break;
346  }//stepping
347 
348  //updating the position of the original particle with the position of the clone
349  evrec->Particle(sp->FirstMother())->SetPosition(*(sp->X4()));
350 
351  if(has_interacted && fRemnA>0) {
352  // the particle interacts - simulate the hadronic interaction
353  LOG("Intranuke2015", pNOTICE)
354  << "Particle has interacted at location: "
355  << sp->X4()->Vect().Mag() << " / nucl rad= " << fTrackingRadius;
356  this->SimulateHadronicFinalState(evrec,sp);
357  } else if(has_interacted && fRemnA<=0) {
358  // nothing left to interact with!
359  LOG("Intranuke2015", pNOTICE)
360  << "*** Nothing left to interact with, escaping.";
362  evrec->AddParticle(*sp);
363  evrec->Particle(sp->FirstMother())->SetRescatterCode(1);
364  } else {
365  // the exits the nucleus without interacting - Done with it!
366  LOG("Intranuke2015", pNOTICE)
367  << "*** Hadron escaped the nucleus! Done with it.";
369  evrec->AddParticle(*sp);
370  evrec->Particle(sp->FirstMother())->SetRescatterCode(1);
371  }
372  delete sp;
373 
374  // Current snapshot
375  //LOG("Intranuke2015", pINFO) << "Current event record snapshot: " << *evrec;
376 
377  }// GHEP entries
378 
379  // Add remnant nucleus - that 'hadronic blob' has all the remaining hadronic
380  // 4p not put explicitly into the simulated particles
381  TLorentzVector v4(0.,0.,0.,0.);
382  GHepParticle remnant_nucleus(
384  evrec->AddParticle(remnant_nucleus);
385  // Mark the initial remnant nucleus as an intermediate state
386  // Don't do that in the hadron/photon-nucleus scatterig mode since the initial
387  // remnant nucleus and the target nucleus coincide.
388  if(fGMode != kGMdHadronNucleus &&
390  evrec->Particle(inucl)->SetStatus(kIStIntermediateState);
391  }
392 }
int Z(void) const
void SetFirstMother(int m)
Definition: GHepParticle.h:131
bool CanRescatter(const GHepParticle *p) const
#define pERROR
Definition: Messenger.h:50
const int kPdgHadronicBlob
Definition: PDGCodes.h:182
bool IsInNucleus(const GHepParticle *p) const
double fTrackingRadius
tracking radius for the nucleus in the current event
Definition: Intranuke2015.h:93
int FirstMother(void) const
Definition: GHepParticle.h:67
string Name(void) const
Name that corresponds to the PDG code.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:87
virtual void SimulateHadronicFinalState(GHepRecord *ev, GHepParticle *p) const =0
void StepParticle(GHepParticle *p, double step, double nuclear_radius=-1.)
Step particle.
double GenerateStep(GHepRecord *ev, GHepParticle *p) const
p
Definition: test.py:228
double KinE(bool mass_from_pdg=false) const
Get kinetic energy.
TLorentzVector * X4(void) const
Definition: GHepParticle.h:80
void SetStatus(GHepStatus_t s)
Definition: GHepParticle.h:125
bool NeedsRescattering(const GHepParticle *p) const
GEvGenMode_t fGMode
event generation mode (lepton+A, hadron+A, ...)
int fRemnZ
remnant nucleus Z
Definition: Intranuke2015.h:99
TLorentzVector fRemnP4
P4 of remnant system.
int A(void) const
#define pNOTICE
Definition: Messenger.h:52
TLorentzVector * P4(void) const
Definition: GHepParticle.h:79
int fRemnA
remnant nucleus A
Definition: Intranuke2015.h:98
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition: GHepParticle.h:40
double fHadStep
step size for intranuclear hadron transport

Friends And Related Function Documentation

friend class IntranukeTester
friend

Definition at line 56 of file Intranuke2015.h.

Member Data Documentation

AlgFactory* genie::Intranuke2015::fAlgf
protected

algorithm factory instance

Definition at line 96 of file Intranuke2015.h.

bool genie::Intranuke2015::fAltOset
protected

NuWro's table-based implementation (not recommended)

Definition at line 120 of file Intranuke2015.h.

double genie::Intranuke2015::fDelRNucleon
protected

factor by which Nucleon Compton wavelength gets multiplied to become nuclear size enhancement

Definition at line 108 of file Intranuke2015.h.

double genie::Intranuke2015::fDelRPion
protected

factor by which Pion Compton wavelength gets multiplied to become nuclear size enhancement

Definition at line 107 of file Intranuke2015.h.

bool genie::Intranuke2015::fDoCompoundNucleus
protected

whether or not to do compound nucleus considerations

Definition at line 118 of file Intranuke2015.h.

bool genie::Intranuke2015::fDoFermi
protected

whether or not to do fermi mom.

Definition at line 116 of file Intranuke2015.h.

bool genie::Intranuke2015::fDoMassDiff
protected

whether or not to do mass diff. mode

Definition at line 117 of file Intranuke2015.h.

double genie::Intranuke2015::fEPreEq
protected

threshold for pre-equilibrium reaction

Definition at line 112 of file Intranuke2015.h.

double genie::Intranuke2015::fFermiFac
protected

testing parameter to modify fermi momentum

Definition at line 113 of file Intranuke2015.h.

double genie::Intranuke2015::fFermiMomentum
protected

whether or not particle collision is pauli blocked

Definition at line 115 of file Intranuke2015.h.

double genie::Intranuke2015::fFreeStep
protected

produced particle free stem, in fm

Definition at line 114 of file Intranuke2015.h.

TGenPhaseSpace genie::Intranuke2015::fGenPhaseSpace
mutableprotected

a phase space generator

Definition at line 94 of file Intranuke2015.h.

GEvGenMode_t genie::Intranuke2015::fGMode
mutableprotected

event generation mode (lepton+A, hadron+A, ...)

Definition at line 101 of file Intranuke2015.h.

INukeHadroData2015* genie::Intranuke2015::fHadroData2015
protected

a collection of h+N,h+A data & calculations

Definition at line 95 of file Intranuke2015.h.

double genie::Intranuke2015::fHadStep
protected

step size for intranuclear hadron transport

Definition at line 109 of file Intranuke2015.h.

double genie::Intranuke2015::fNR
protected

param multiplying the nuclear radius, determining how far to track hadrons beyond the "nuclear boundary"

Definition at line 105 of file Intranuke2015.h.

double genie::Intranuke2015::fNucAbsFac
protected

absorption xsec correction factor (hN Mode)

Definition at line 110 of file Intranuke2015.h.

double genie::Intranuke2015::fNucCEXFac
protected

charge exchange xsec correction factor (hN Mode)

Definition at line 111 of file Intranuke2015.h.

const NuclearModelI* genie::Intranuke2015::fNuclmodel
protected

nuclear model used to generate fermi momentum

Definition at line 97 of file Intranuke2015.h.

double genie::Intranuke2015::fNucRmvE
protected

binding energy to subtract from cascade nucleons

Definition at line 106 of file Intranuke2015.h.

double genie::Intranuke2015::fR0
protected

effective nuclear size param

Definition at line 104 of file Intranuke2015.h.

int genie::Intranuke2015::fRemnA
mutableprotected

remnant nucleus A

Definition at line 98 of file Intranuke2015.h.

TLorentzVector genie::Intranuke2015::fRemnP4
mutableprotected

P4 of remnant system.

Definition at line 100 of file Intranuke2015.h.

int genie::Intranuke2015::fRemnZ
mutableprotected

remnant nucleus Z

Definition at line 99 of file Intranuke2015.h.

double genie::Intranuke2015::fTrackingRadius
mutableprotected

tracking radius for the nucleus in the current event

Definition at line 93 of file Intranuke2015.h.

bool genie::Intranuke2015::fUseOset
protected

Oset model for low energy pion in hN.

Definition at line 119 of file Intranuke2015.h.

bool genie::Intranuke2015::fXsecNNCorr
protected

use nuclear medium correction for NN cross section

Definition at line 121 of file Intranuke2015.h.


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