ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4FissionProductYieldDist.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4FissionProductYieldDist.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 /*
27  * File: G4FissionProductYieldDist.hh
28  * Author: B. Wendt (wendbryc@isu.edu)
29  *
30  * Created on May 11, 2011, 12:04 PM
31  */
32 
33 #ifndef G4FISSIONPRODUCTYIELDDIST_HH
34 #define G4FISSIONPRODUCTYIELDDIST_HH
35 
36 #include "G4Ions.hh"
37 #include "G4Gamma.hh"
38 #include "G4IonTable.hh"
39 #include "G4ParticleHPNames.hh"
40 #include "globals.hh"
41 #include "G4DynamicParticle.hh"
43 #include "G4ReactionProduct.hh"
44 
45 #include "G4ENDFTapeRead.hh"
47 #include "G4FFGEnumerations.hh"
48 #include "G4FPYNubarValues.hh"
49 #include "G4FPYSamplingOps.hh"
50 #include "G4FPYTreeStructures.hh"
51 
55 {
56 public:
57 // Constructor definition
67  G4FissionProductYieldDist( G4int WhichIsotope,
68  G4FFGEnumerations::MetaState WhichMetaState,
70  G4FFGEnumerations::YieldType WhichYieldType,
71  std::istringstream& dataStream);
82  G4FissionProductYieldDist( G4int WhichIsotope,
83  G4FFGEnumerations::MetaState WhichMetaState,
85  G4FFGEnumerations::YieldType WhichYieldType,
87  std::istringstream& dataStream);
88 private:
90  void Initialize( std::istringstream& dataStream );
91 
92 public:
93 // Functions
115  G4Ions* G4GetFissionProduct( void );
127  void G4SetAlphaProduction( G4double WhatAlphaProduction );
135  void G4SetEnergy( G4double WhatIncidentEnergy );
160  void G4SetVerbosity( G4int WhatVerbosity );
161 
162 protected:
163 // Variables
164  // Class descriptor variables
178 
179  // Datafile variables
184 
185  // Fission generation variables
220 
221  // Pointers to the field of trees and relevant normalization data
244 
245  // Pointers to runtime classes that G4FissionProductYieldDist needs to
246  // function properly
258 
259 //Functions
263  void CheckAlphaSanity( void );
267  G4Ions* FindParticle( G4double RandomParticle );
274  G4Ions* FindParticleExtrapolation( G4double RandomParticle,
275  G4bool LowerEnergyGroupExists );
282  G4Ions* FindParticleInterpolation( G4double RandomParticle,
283  G4int LowerEnergyGroup );
290  G4double RandomParticle,
291  G4int EnergyGroup1,
292  G4int EnergyGroup2 );
295  virtual void GenerateAlphas( std::vector< G4ReactionProduct* >* Alphas );
299  virtual void GenerateNeutrons( std::vector< G4ReactionProduct* >* Neutrons );
303  virtual G4Ions* GetFissionProduct( void ) = 0;
317  G4String MakeDirectoryName( void );
331  virtual void MakeTrees( void );
333  virtual void ReadProbabilities( void );
339  void Renormalize( ProbabilityBranch* Branch );
343  void SampleAlphaEnergies( std::vector< G4ReactionProduct* >* Alphas );
345  void SampleGammaEnergies( std::vector< G4ReactionProduct* >* Gammas );
349  void SampleNeutronEnergies( std::vector< G4ReactionProduct* >* Neutrons );
354  void SetNubar( void );
356  virtual void SortProbability( G4ENDFYieldDataContainer* YieldData );
357 
358 // Destructor function(s)
359 public:
363  virtual ~G4FissionProductYieldDist( void );
364 protected:
366  void BurnTree( ProbabilityBranch* Branch );
367 };
368 
369 #endif /* G4FISSIONPRODUCTYIELDDIST_HH */
370