source: trunk/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc @ 978

Last change on this file since 978 was 819, checked in by garnier, 16 years ago

import all except CVS

File size: 15.5 KB
Line 
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: Nuclear De-excitations
28// by V. Lara
29//
30
31
32#include "G4FermiFragmentsPool.hh"
33
34G4bool G4FermiFragmentsPool::MapIsEmpty(true);
35
36
37std::multimap<const std::pair<G4int,G4int>, const G4VFermiFragment* , std::less<const std::pair<G4int,G4int> > >  &
38G4FermiFragmentsPool::GetMap()
39{
40  static std::vector<const G4VFermiFragment * > fragment_pool;
41  //                                                             A  Z  Pol  ExcitE
42  static const G4StableFermiFragment Fragment00(  1, 0,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment00);
43  static const G4StableFermiFragment Fragment01(  1, 1,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment01);
44  static const G4StableFermiFragment Fragment02(  2, 1,  3,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment02);
45  static const G4StableFermiFragment Fragment03(  3, 1,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment03);
46  static const G4StableFermiFragment Fragment04(  3, 2,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment04);
47  static const G4StableFermiFragment Fragment05(  4, 2,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment05);
48  static const G4He5FermiFragment    Fragment06(  5, 2,  4, 16.76*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment06);// He5
49  static const G4Li5FermiFragment    Fragment07(  5, 3,  4, 16.66*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment07);// Li5
50  static const G4StableFermiFragment Fragment08(  6, 2,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment08);
51  static const G4StableFermiFragment Fragment09(  6, 3,  3,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment09);
52 
53  static const G4StableFermiFragment Fragment10(  6, 3,  1,  3.56*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment10);
54  static const G4StableFermiFragment Fragment11(  7, 3,  4,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment11);
55  static const G4StableFermiFragment Fragment12(  7, 3,  2,  0.48*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment12);
56  static const G4StableFermiFragment Fragment13(  7, 4,  4,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment13);
57  static const G4StableFermiFragment Fragment14(  7, 4,  2,  0.43*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment14);
58  static const G4StableFermiFragment Fragment15(  8, 3,  5,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment15);
59  static const G4StableFermiFragment Fragment16(  8, 3,  3,  0.98*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment16);
60  static const G4Be8FermiFragment    Fragment17(  8, 4,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment17); // Be8
61  static const G4StableFermiFragment Fragment18(  9, 4,  4,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment18);
62  static const G4B9FermiFragment     Fragment19(  9, 5,  4,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment19); // B9
63 
64  static const G4StableFermiFragment Fragment20( 10, 4,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment20);
65  static const G4StableFermiFragment Fragment21( 10, 4,  5,  3.37*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment21);
66  static const G4StableFermiFragment Fragment22( 10, 4,  8,  5.96*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment22);
67  static const G4StableFermiFragment Fragment23( 10, 4,  1,  6.18*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment23);
68  static const G4StableFermiFragment Fragment24( 10, 4,  5,  6.26*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment24);
69  static const G4StableFermiFragment Fragment25( 10, 5,  7,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment25);
70  static const G4StableFermiFragment Fragment26( 10, 5,  3,  0.72*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment26);
71  static const G4StableFermiFragment Fragment27( 10, 5,  1,  1.74*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment27);
72  static const G4StableFermiFragment Fragment28( 10, 5,  3,  2.15*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment28);
73  static const G4StableFermiFragment Fragment29( 10, 5,  5,  3.59*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment29);
74 
75  static const G4StableFermiFragment Fragment30( 10, 6,  3,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment30);
76  static const G4StableFermiFragment Fragment31( 10, 6,  5,  3.35*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment31);
77  static const G4StableFermiFragment Fragment32( 11, 5,  4,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment32);
78  static const G4StableFermiFragment Fragment33( 11, 5,  2,  2.13*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment33);
79  static const G4StableFermiFragment Fragment34( 11, 5,  6,  4.44*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment34);
80  static const G4StableFermiFragment Fragment35( 11, 5,  4,  5.02*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment35);
81  static const G4StableFermiFragment Fragment36( 11, 5, 10,  6.76*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment36);
82  static const G4StableFermiFragment Fragment37( 11, 5,  6,  7.29*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment37);
83  static const G4StableFermiFragment Fragment38( 11, 5,  4,  7.98*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment38);
84  static const G4StableFermiFragment Fragment39( 11, 5,  6,  8.56*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment39);
85 
86  static const G4StableFermiFragment Fragment40( 11, 6,  4,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment40);
87  static const G4StableFermiFragment Fragment41( 11, 6,  2,  2.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment41);
88  static const G4StableFermiFragment Fragment42( 11, 6,  6,  4.32*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment42);
89  static const G4StableFermiFragment Fragment43( 11, 6,  4,  4.80*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment43);
90  static const G4StableFermiFragment Fragment44( 11, 6,  2,  6.34*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment44);
91  static const G4StableFermiFragment Fragment45( 11, 6,  8,  6.48*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment45);
92  static const G4StableFermiFragment Fragment46( 11, 6,  6,  6.90*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment46);
93  static const G4StableFermiFragment Fragment47( 11, 6,  4,  7.50*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment47);
94  static const G4StableFermiFragment Fragment48( 11, 6,  4,  8.10*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment48);
95  static const G4StableFermiFragment Fragment49( 11, 6,  6,  8.42*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment49);
96 
97  static const G4StableFermiFragment Fragment50( 11, 6,  8,  8.66*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment50);
98  static const G4StableFermiFragment Fragment51( 12, 5,  3,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment51);
99  static const G4StableFermiFragment Fragment52( 12, 5,  5,  0.95*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment52);
100  static const G4StableFermiFragment Fragment53( 12, 5,  5,  1.67*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment53);
101  static const G4StableFermiFragment Fragment54( 12, 5,  4,  2.65*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment54);
102  static const G4StableFermiFragment Fragment55( 12, 6,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment55);
103  static const G4StableFermiFragment Fragment56( 12, 6,  5,  4.44*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment56);
104  static const G4StableFermiFragment Fragment57( 13, 6,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment57);
105  static const G4StableFermiFragment Fragment58( 13, 6,  2,  3.09*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment58);
106  static const G4StableFermiFragment Fragment59( 13, 6,  4,  3.68*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment59);
107 
108  static const G4StableFermiFragment Fragment60( 13, 6,  6,  3.85*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment60);
109  static const G4StableFermiFragment Fragment61( 13, 7,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment61);
110  static const G4StableFermiFragment Fragment62( 14, 6,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment62);
111  static const G4StableFermiFragment Fragment63( 14, 6,  3,  6.09*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment63);
112  static const G4StableFermiFragment Fragment64( 14, 6,  8,  6.69*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment64);
113  static const G4StableFermiFragment Fragment65( 14, 6,  6,  6.96*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment65);
114  static const G4StableFermiFragment Fragment66( 14, 6,  5,  7.34*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment66);
115  static const G4StableFermiFragment Fragment67( 14, 7,  3,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment67);
116  static const G4StableFermiFragment Fragment68( 14, 7,  1,  2.31*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment68);
117  static const G4StableFermiFragment Fragment69( 14, 7,  3,  3.95*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment69);
118 
119  static const G4StableFermiFragment Fragment70( 14, 7,  1,  4.92*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment70);
120  static const G4StableFermiFragment Fragment71( 14, 7,  5,  5.11*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment71);
121  static const G4StableFermiFragment Fragment72( 14, 7,  3,  5.69*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment72);
122  static const G4StableFermiFragment Fragment73( 14, 7,  7,  5.83*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment73);
123  static const G4StableFermiFragment Fragment74( 14, 7,  3,  6.20*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment74);
124  static const G4StableFermiFragment Fragment75( 14, 7,  7,  6.44*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment75);
125  static const G4StableFermiFragment Fragment76( 14, 7,  5,  7.03*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment76);
126  static const G4StableFermiFragment Fragment77( 15, 7,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment77);
127  static const G4StableFermiFragment Fragment78( 15, 7,  8,  5.28*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment78);
128  static const G4StableFermiFragment Fragment79( 15, 7,  4,  6.32*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment79);
129 
130  static const G4StableFermiFragment Fragment80( 15, 7, 10,  7.22*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment80);
131  static const G4StableFermiFragment Fragment81( 15, 7,  8,  7.57*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment81);
132  static const G4StableFermiFragment Fragment82( 15, 7,  2,  8.31*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment82);
133  static const G4StableFermiFragment Fragment83( 15, 7,  4,  8.57*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment83);
134  static const G4StableFermiFragment Fragment84( 15, 7, 14,  9.15*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment84);
135  static const G4StableFermiFragment Fragment85( 15, 7, 14,  9.79*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment85);
136  static const G4StableFermiFragment Fragment86( 15, 7,  8, 10.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment86);
137  static const G4StableFermiFragment Fragment87( 15, 8,  2,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment87);
138  static const G4StableFermiFragment Fragment88( 15, 8,  8,  5.22*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment88);
139  static const G4StableFermiFragment Fragment89( 15, 8,  4,  6.18*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment89);
140 
141  static const G4StableFermiFragment Fragment90( 15, 8, 10,  6.83*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment90);
142  static const G4StableFermiFragment Fragment91( 15, 8,  8,  7.28*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment91);
143  static const G4StableFermiFragment Fragment92( 16, 7,  5,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment92);
144  static const G4StableFermiFragment Fragment93( 16, 7,  1,  0.12*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment93);
145  static const G4StableFermiFragment Fragment94( 16, 7,  7,  0.30*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment94);
146  static const G4StableFermiFragment Fragment95( 16, 7,  3,  0.40*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment95);
147  static const G4StableFermiFragment Fragment96( 16, 8,  1,  0.00*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment96);
148  static const G4StableFermiFragment Fragment97( 16, 8,  8,  6.10*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment97);
149  static const G4StableFermiFragment Fragment98( 16, 8,  5,  6.92*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment98);
150  static const G4StableFermiFragment Fragment99( 16, 8,  3,  7.12*keV ); if(MapIsEmpty) fragment_pool.push_back(&Fragment99);
151
152  static std::multimap<const std::pair<G4int,G4int>, const G4VFermiFragment* , std::less<const std::pair<G4int,G4int> > > 
153    theMapOfFragments;
154
155  if (MapIsEmpty) 
156    {
157      for(size_t i=0; i<fragment_pool.size(); i++)
158      {
159        theMapOfFragments.insert(std::pair<const std::pair<G4int,G4int>, const G4VFermiFragment* >(std::pair<G4int,G4int>(fragment_pool[i]->GetA(),fragment_pool[i]->GetZ()),fragment_pool[i]));
160      }
161      MapIsEmpty = false;
162    }
163
164  return theMapOfFragments;
165}
166
167
168G4FermiFragmentsPool::G4FermiFragmentsPool()
169{
170}
171
172
173
174G4FermiFragmentsPool::~G4FermiFragmentsPool()
175{
176}
177
178
179
180
181
182G4FermiFragmentsPool::G4FermiFragmentsPool(const G4FermiFragmentsPool&)
183{
184  // It is meant to not be accesable
185}
186
187const G4FermiFragmentsPool & G4FermiFragmentsPool::operator=(const G4FermiFragmentsPool& )
188{
189  // It is meant to not be accesable
190  return *this;
191}
192
193G4bool G4FermiFragmentsPool::operator==(const G4FermiFragmentsPool&) const
194{
195  // It is meant to not be accesable
196  return false;
197}
198
199G4bool G4FermiFragmentsPool::operator!=(const G4FermiFragmentsPool&) const
200{
201  // It is meant to not be accesable
202  return true;
203}
Note: See TracBrowser for help on using the repository browser.