ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticleHPPhotonDist.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParticleHPPhotonDist.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  // Hadronic Process: Very Low Energy Neutron X-Sections
28  // original by H.P. Wellisch, TRIUMF, 14-Feb-97
29 //
30 // 070606 fix for Valgrind error by T. Koi
31 // 070612 fix memory leaking by T. Koi
32 // 070615 fix memory leaking by T. Koi
33 // 080625 fix memory leaking by T. Koi
34 //
35 // P. Arce, June-2014 Conversion neutron_hp to particle_hp
36 //
37 #ifndef G4ParticleHPPhotonDist_h
38 #define G4ParticleHPPhotonDist_h 1
39 
40 #include <fstream>
41 
42 #include "globals.hh"
43 #include "G4ios.hh"
44 #include "globals.hh"
45 #include "G4ParticleHPVector.hh"
47 #include "G4ParticleHPAngularP.hh"
48 #include "G4ParticleHPPartial.hh"
52 #include "G4ReactionProduct.hh"
53 #include "G4Gamma.hh"
55 #include "G4Cache.hh"
56 
58 {
59 public:
60 
62  : repFlag( 0 )
63  , targetMass( 0.0 )
64  , nDiscrete( 0 )
65  , isoFlag( 0 )
66  , tabulationType( 0 )
67  , nDiscrete2( 0 )
68  , nIso( 0 )
69  , nPartials( 0 )
71  , nGammaEnergies( 0 )
72  , theBaseEnergy( 0.0 )
73  {
74 
75  disType = 0;
76  energy = 0;
77  theYield = 0;
78  thePartialXsec = 0;
79  theReactionXsec = 0;
80  isPrimary = 0;
81  theShells = 0;
82  theGammas = 0;
83  nNeu = 0;
84  theLegendre = 0;
85  theAngular = 0;
86  distribution = 0;
87  probs = 0;
88  partials = 0;
89  actualMult.Put( 0 );
90 
91  theLevelEnergies = 0;
94 
95  }
96 
98  {
99  delete [] disType;
100  delete [] energy;
101  delete [] theYield;
102  delete [] thePartialXsec;
103 // delete [] theReactionXsec;
104 // DHW: not created in this class
105  delete [] isPrimary;
106  delete [] theShells;
107  delete [] theGammas;
108  delete [] nNeu;
109  delete [] theAngular;
110  delete [] distribution;
111  delete [] probs;
112 
113  if ( theLegendre != 0 )
114  {
115  for ( G4int i = 0 ; i < (nDiscrete2-nIso) ; i++ )
116  if ( theLegendre[i] != 0 ) delete[] theLegendre[i];
117 
118  delete [] theLegendre;
119  }
120 
121  if ( partials != 0 )
122  {
123  for ( G4int i = 0 ; i < nPartials ; i++ )
124  { delete partials[i]; }
125 
126  delete [] partials;
127  }
128 
129  delete [] theLevelEnergies;
130  delete [] theTransitionProbabilities;
131  delete [] thePhotonTransitionFraction;
132  if (actualMult.Get() != 0) delete actualMult.Get();
133  }
134 
135  G4bool InitMean(std::istream & aDataFile);
136 
137  void InitAngular(std::istream & aDataFile);
138 
139  void InitEnergies(std::istream & aDataFile);
140 
141  void InitPartials(std::istream& aDataFile, G4ParticleHPVector* theXsec = 0);
142 
144 
145  inline G4double GetTargetMass() {return targetMass;}
146 
147  inline G4bool NeedsCascade() {return repFlag==2;}
148 
150 
151 private:
152 
153  G4int repFlag; //representation as multiplicities or transition probability arrays.
155 
156  G4int nDiscrete; //number of discrete photons
157  G4int* disType; // discrete, or continuum photons
158  G4double* energy; // photon energies
159  G4ParticleHPVector* theYield; // multiplicity as a function of neutron energy.
164 
165  G4int isoFlag; // isotropic or not?
175 
176  G4int * distribution; // not used for the moment.
178  G4ParticleHPVector * probs; // probabilities for the partial distributions.
179  G4ParticleHPPartial ** partials; // the partials, parallel to the above
180 
182 
183  // for transition prob arrays start
190  // for transition prob arrays end
191 
192  G4ParticleHPFastLegendre theLegend; // fast look-up for leg-integrals
194 };
195 
196 #endif