G4fissionEvent Class Reference

#include <G4fissionEvent.hh>


Public Member Functions

 G4fissionEvent (G4int isotope, G4double time, G4double nubar, G4double eng)
 ~G4fissionEvent ()
G4int getNeutronNu ()
G4int getPhotonNu ()
G4double getNeutronEnergy (G4int index)
G4double getNeutronVelocity (G4int index)
G4double getNeutronDircosu (G4int index)
G4double getNeutronDircosv (G4int index)
G4double getNeutronDircosw (G4int index)
G4double getPhotonEnergy (G4int index)
G4double getPhotonVelocity (G4int index)
G4double getPhotonDircosu (G4int index)
G4double getPhotonDircosv (G4int index)
G4double getPhotonDircosw (G4int index)
G4double getNeutronAge (G4int index)
G4double getPhotonAge (G4int index)

Static Public Member Functions

static void setDelayOption (G4int delay)
static void setCorrelationOption (G4int correlation)
static void setNudistOption (G4int nudist)
static void setCf252Option (G4int ndist, G4int neng)
static void setRNGf (float(*funcptr)(void))
static void setRNGd (G4double(*funcptr)(void))


Detailed Description

Definition at line 61 of file G4fissionEvent.hh.


Constructor & Destructor Documentation

G4fissionEvent::G4fissionEvent ( G4int  isotope,
G4double  time,
G4double  nubar,
G4double  eng 
)

Definition at line 66 of file G4fissionEvent.cc.

00068  :neutronNu(0), neutronEnergies(0), neutronVelocities(0), neutronDircosu(0),
00069   neutronDircosv(), neutronDircosw(), neutronAges(0),
00070   photonNu(0), photonEnergies(0), photonVelocities(0), photonDircosu(0),
00071   photonDircosv(0), photonDircosw(0), photonAges(0)
00072 {
00073    /*
00074     * Constructs a fission event with neutronNu neutrons and photonNu
00075     * photons.
00076     */
00077    G4int i;
00078 
00079    if (nubar == -1.) {
00080       /* spontaneous fission */
00081       neutronNu = G4SmpSpNuDistData(isotope, Cf252ndistoption);
00082       photonNu = G4SmpSpNugDistData(isotope);
00083    } else {
00084       /* induced fission */
00085       if (nudistoption == 0 || nudistoption == 1) {
00086          switch (isotope) {
00087             case 92235:
00088                neutronNu = G4SmpNuDistDataU235(eng,nudistoption);
00089                break;
00090             case 92238:
00091                neutronNu = G4SmpNuDistDataU238(eng);
00092                break;
00093             case 94239:
00094                neutronNu = G4SmpNuDistDataPu239(eng);
00095                break;
00096             default:
00097                neutronNu = (G4int) G4SmpTerrell(nubar);
00098                break;
00099          } 
00100       } else if (nudistoption == 2) {
00101          switch (isotope) {
00102             case 92232:
00103             case 92234:
00104             case 92236:
00105             case 92238:
00106                neutronNu = G4SmpNuDistDataU232_234_236_238(nubar);
00107                break;
00108             case 92233:
00109             case 92235:
00110                neutronNu = (G4int) G4SmpNuDistDataU233_235(nubar);
00111                break;
00112             case 94239:
00113             case 94241:
00114                neutronNu = G4SmpNuDistDataPu239_241(nubar);
00115                break;
00116             default:
00117                neutronNu = (G4int) G4SmpTerrell(nubar);
00118                break;
00119          }
00120       } else if (nudistoption == 3) {
00121          switch (isotope) {
00122             case 92232:
00123             case 92234:
00124             case 92236:
00125             case 92238:
00126                neutronNu = G4SmpNuDistDataU232_234_236_238_MC(nubar);
00127                break;
00128             case 92233:
00129             case 92235:
00130                neutronNu = (G4int) G4SmpNuDistDataU233_235_MC(nubar);
00131                break;
00132             case 94239:
00133             case 94241:
00134                neutronNu = G4SmpNuDistDataPu239_241_MC(nubar);
00135                break;
00136             default:
00137                neutronNu = (G4int) G4SmpTerrell(nubar);
00138                break;
00139          } 
00140       }
00141       photonNu = G4SmpNugDist(isotope, nubar);
00142    }
00143    if (neutronNu > 0) {
00144       neutronEnergies = new G4double[ neutronNu ];
00145       neutronVelocities = new G4double[ neutronNu ];
00146       neutronDircosu = new G4double[ neutronNu ];
00147       neutronDircosv = new G4double[ neutronNu ];
00148       neutronDircosw = new G4double[ neutronNu ];
00149       neutronAges = new G4double[neutronNu];
00150       for (i=0; i<neutronNu; i++) {
00151          if (isotope == 98252) neutronEnergies[i] = G4SmpNEngCf252(Cf252nengoption);
00152          else neutronEnergies[i] = G4SmpWatt(eng, isotope);
00153          neutronVelocities[i] = G4SmpNVel(
00154                  neutronEnergies[i],
00155                  &(neutronDircosu[i]),
00156                  &(neutronDircosv[i]),
00157                  &(neutronDircosw[i])
00158                 );
00159          neutronAges[i] = time;
00160       }
00161    }
00162    if (photonNu > 0) {
00163       photonEnergies = new G4double[photonNu];
00164       photonVelocities = new G4double[photonNu];
00165       photonDircosu = new G4double[photonNu];
00166       photonDircosv = new G4double[photonNu];
00167       photonDircosw = new G4double[photonNu];
00168       photonAges = new G4double[photonNu];
00169       for (i=0; i<photonNu; i++) {
00170          photonEnergies[i] = G4SmpGEng();
00171          photonVelocities[i] = G4SmpPVel(
00172                  photonEnergies[i],
00173                  &(photonDircosu[i]),
00174                  &(photonDircosv[i]),
00175                  &(photonDircosw[i])
00176                 );
00177          photonAges[i] = time;
00178       }
00179    }
00180 }

G4fissionEvent::~G4fissionEvent (  ) 

Definition at line 182 of file G4fissionEvent.cc.

00182                                 {
00183    if (neutronNu > 0) {
00184       delete [] neutronEnergies;
00185       delete [] neutronVelocities;
00186       delete [] neutronDircosu;
00187       delete [] neutronDircosv;
00188       delete [] neutronDircosw;
00189       delete [] neutronAges;
00190    }
00191 
00192    if (photonNu > 0) {
00193       delete [] photonEnergies;
00194       delete [] photonVelocities;
00195       delete [] photonDircosu;
00196       delete [] photonDircosv;
00197       delete [] photonDircosw;
00198       delete [] photonAges;
00199    }
00200 }


Member Function Documentation

G4double G4fissionEvent::getNeutronAge ( G4int  index  )  [inline]

Definition at line 138 of file G4fissionEvent.hh.

00138                                           {
00139          if (index >= 0 && index < neutronNu) return neutronAges[index];
00140          else return -1;
00141       }

G4double G4fissionEvent::getNeutronDircosu ( G4int  index  )  [inline]

Definition at line 106 of file G4fissionEvent.hh.

00106                                               {
00107          if (index >= 0 && index < neutronNu) return neutronDircosu[index];
00108          else return -1;
00109       }

G4double G4fissionEvent::getNeutronDircosv ( G4int  index  )  [inline]

Definition at line 110 of file G4fissionEvent.hh.

00110                                               {
00111          if (index >= 0 && index < neutronNu) return neutronDircosv[index];
00112          else return -1;
00113       }

G4double G4fissionEvent::getNeutronDircosw ( G4int  index  )  [inline]

Definition at line 114 of file G4fissionEvent.hh.

00114                                               {
00115          if (index >= 0 && index < neutronNu) return neutronDircosw[index];
00116          else return -1;
00117       }

G4double G4fissionEvent::getNeutronEnergy ( G4int  index  )  [inline]

Definition at line 98 of file G4fissionEvent.hh.

00098                                              {
00099          if (index >= 0 && index < neutronNu) return neutronEnergies[index];
00100          else return -1;
00101       }

G4int G4fissionEvent::getNeutronNu (  )  [inline]

Definition at line 92 of file G4fissionEvent.hh.

00092                            {
00093          return neutronNu;
00094       }

G4double G4fissionEvent::getNeutronVelocity ( G4int  index  )  [inline]

Definition at line 102 of file G4fissionEvent.hh.

00102                                                {
00103          if (index >= 0 && index < neutronNu) return neutronVelocities[index];
00104          else return -1;
00105       }

G4double G4fissionEvent::getPhotonAge ( G4int  index  )  [inline]

Definition at line 142 of file G4fissionEvent.hh.

00142                                          {
00143          if (index >= 0 && index < photonNu) return photonAges[index];
00144          else return -1;
00145       }

G4double G4fissionEvent::getPhotonDircosu ( G4int  index  )  [inline]

Definition at line 126 of file G4fissionEvent.hh.

00126                                              {
00127          if (index >= 0 && index < photonNu) return photonDircosu[index];
00128          else return -1;
00129       }

G4double G4fissionEvent::getPhotonDircosv ( G4int  index  )  [inline]

Definition at line 130 of file G4fissionEvent.hh.

00130                                              {
00131          if (index >= 0 && index < photonNu) return photonDircosv[index];
00132          else return -1;
00133       }

G4double G4fissionEvent::getPhotonDircosw ( G4int  index  )  [inline]

Definition at line 134 of file G4fissionEvent.hh.

00134                                              {
00135          if (index >= 0 && index < photonNu) return photonDircosw[index];
00136          else return -1;
00137       }

G4double G4fissionEvent::getPhotonEnergy ( G4int  index  )  [inline]

Definition at line 118 of file G4fissionEvent.hh.

00118                                             {
00119          if (index >= 0 && index < photonNu) return photonEnergies[index];
00120          else return -1;
00121       }

G4int G4fissionEvent::getPhotonNu (  )  [inline]

Definition at line 95 of file G4fissionEvent.hh.

00095                           {
00096          return photonNu;
00097       }

G4double G4fissionEvent::getPhotonVelocity ( G4int  index  )  [inline]

Definition at line 122 of file G4fissionEvent.hh.

00122                                               {
00123          if (index >= 0 && index < photonNu) return photonVelocities[index];
00124          else return -1;
00125       }

static void G4fissionEvent::setCf252Option ( G4int  ndist,
G4int  neng 
) [inline, static]

Definition at line 155 of file G4fissionEvent.hh.

00155                                                           {
00156          Cf252ndistoption = ndist;
00157          Cf252nengoption = neng;
00158       };

static void G4fissionEvent::setCorrelationOption ( G4int  correlation  )  [inline, static]

Definition at line 149 of file G4fissionEvent.hh.

00149                                                           {
00150          correlationoption = correlation;
00151       };

static void G4fissionEvent::setDelayOption ( G4int  delay  )  [inline, static]

Definition at line 146 of file G4fissionEvent.hh.

00146                                               {
00147          delayoption = delay;
00148       };

static void G4fissionEvent::setNudistOption ( G4int  nudist  )  [inline, static]

Definition at line 152 of file G4fissionEvent.hh.

00152                                                 {
00153          nudistoption = nudist;
00154       };

static void G4fissionEvent::setRNGd ( G4double(*)(void)  funcptr  )  [inline, static]

Definition at line 163 of file G4fissionEvent.hh.

Referenced by setrngd_().

00163                                                       {
00164          rngdptr = funcptr;
00165       }

static void G4fissionEvent::setRNGf ( float(*)(void)  funcptr  )  [inline, static]

Definition at line 159 of file G4fissionEvent.hh.

Referenced by setrngf_().

00159                                                    {
00160          rngfptr = funcptr;
00161          rngdptr = rngf2d;
00162       }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:59 2013 for Geant4 by  doxygen 1.4.7