Changeset 1228 for trunk/source/processes/hadronic/models/im_r_matrix
- Timestamp:
- Jan 8, 2010, 11:56:51 AM (15 years ago)
- Location:
- trunk/source/processes/hadronic/models/im_r_matrix
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/im_r_matrix/History
r962 r1228 14 14 * Please list in reverse chronological order (last date on top) 15 15 --------------------------------------------------------------- 16 17 30-Nov-2009 Gunter Folger hadr-im_r-V09-02-02 18 - Fix compilation error in gcc 4.3 (typeinfo) 19 20 20-Nov-2009 Gunter Folger hadr-im_r-V09-02-01 21 - Reduce usage of strings. Maps of cross sections use G4Particledefinition 22 in place of particle name 23 24 19-Nov-2009 Gunter Folger/Tatsumi Koi hadr-im_r-V09-02-00 25 - G4CollisionComposite.cc: Fix for reproducability provided by Tatsumi. 26 Removed the dependance of the energy grid of the cross section set 27 on the order of the particles by forcing heavier particle to be at rest 28 when caching the cross section. 16 29 17 30 8-Dec-2008 Gunter Folger hadr-im_r-V09-01-01 -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh
r1196 r1228 26 26 // 27 27 // $Id: G4CollisionInitialState.hh,v 1.4.4.2 2006/06/29 20:31:14 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-03 -cand-01$28 // GEANT4 tag $Name: geant4-09-03 $ 29 29 // 30 30 // $Id: G4CollisionInitialState.hh,v 1.0 1998/06/30 -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh
r1196 r1228 26 26 // 27 27 // $Id: G4ListOfCollisions.hh,v 1.1.4.2 2006/06/29 20:35:35 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-03 -cand-01$28 // GEANT4 tag $Name: geant4-09-03 $ 29 29 // 30 30 // $Id: G4ListOfCollisions.hh,v 1.0 1998/06/30 -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4VCrossSectionSource.hh
r819 r1228 76 76 G4double eParam, G4double power) const; 77 77 78 G4 StringFindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const;78 G4ParticleDefinition * FindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const; 79 79 80 80 // Transverse pion mass -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4XNNElasticLowE.hh
r819 r1228 78 78 static const G4double _eStepLog; 79 79 80 std::map <G4 String, G4PhysicsVector*, std::less<G4String> > xMap;80 std::map <G4ParticleDefinition *, G4PhysicsVector*, std::less<G4ParticleDefinition *> > xMap; 81 81 82 82 G4double _eMin; -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4XNNTotalLowE.hh
r819 r1228 66 66 static const G4int tableSize; 67 67 68 std::map <G4String, G4LowEXsection *, std::less<G4String> > theCrossSections; 69 typedef std::map <G4String, G4LowEXsection*, std::less<G4String> > LowEMap; 68 std::map <G4ParticleDefinition *, G4LowEXsection *, 69 std::less<G4ParticleDefinition *> > theCrossSections; 70 typedef std::map <G4ParticleDefinition *, G4LowEXsection*, std::less<G4ParticleDefinition *> > LowEMap; 70 71 71 72 }; -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4XPDGElastic.hh
r819 r1228 25 25 // 26 26 // 27 // $Id: G4XPDGElastic.hh,v 1.2 2006/06/29 20:36:48 gunter Exp $ //27 // $Id: G4XPDGElastic.hh,v 1.2.2.1 2009/11/20 16:25:08 gunter Exp $ // 28 28 // --------------------------------------------------------------- 29 29 // GEANT4 Class file … … 48 48 #include <map> 49 49 50 typedef std::pair<G4 String,G4String> G4StringPair;50 typedef std::pair<G4ParticleDefinition *,G4ParticleDefinition *> G4pDefPair; 51 51 52 52 class G4KineticTrack; … … 96 96 static const G4double npbarPDGFit[7]; 97 97 98 std::map <G4 StringPair, std::vector<G4double>, std::less<G4StringPair> > xMap;98 std::map <G4pDefPair, std::vector<G4double>, std::less<G4pDefPair> > xMap; 99 99 100 typedef std::map <G4 StringPair, std::vector<G4double>, std::less<G4StringPair> > PairDoubleMap;100 typedef std::map <G4pDefPair, std::vector<G4double>, std::less<G4pDefPair> > PairDoubleMap; 101 101 102 102 // G4double pMinFit; -
trunk/source/processes/hadronic/models/im_r_matrix/include/G4XPDGTotal.hh
r819 r1228 48 48 #include <vector> 49 49 50 typedef std::pair<G4 String,G4String> G4StringPair;50 typedef std::pair<G4ParticleDefinition *,G4ParticleDefinition *> G4pDefPair; 51 51 52 52 class G4KineticTrack; … … 97 97 static const G4double gammagammaPDGFit[5]; 98 98 99 std::map <G4 StringPair, std::vector<G4double>, std::less<G4StringPair> > xMap;100 typedef std::map <G4 StringPair, std::vector<G4double>, std::less<G4StringPair> > PairDoubleMap;99 std::map <G4pDefPair, std::vector<G4double>, std::less<G4pDefPair> > xMap; 100 typedef std::map <G4pDefPair, std::vector<G4double>, std::less<G4pDefPair> > PairDoubleMap; 101 101 102 102 // G4double eMinFit; -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4CollisionManager.cc
r819 r1228 27 27 #include "G4HadronicException.hh" 28 28 #include "G4CollisionInitialState.hh" 29 #include "G4BCAction.hh" 30 31 #include <typeinfo> 29 32 30 33 G4CollisionManager::G4CollisionManager() … … 178 181 { 179 182 collision = *i; 183 G4int tgtPdg=collision->GetTarget() ? 184 collision->GetTarget()->GetDefinition()->GetPDGEncoding() : 0; 180 185 G4cout << " collision " << collision << " time: " 181 186 << collision->GetCollisionTime()/second << " proj: " 182 << collision->GetPrimary() << " trgt: " 183 << collision->GetTarget() << G4endl; 187 << collision->GetPrimary() << "/pdg=" 188 << collision->GetPrimary()->GetDefinition()->GetPDGEncoding() 189 << " trgt: " 190 << collision->GetTarget() << "/pdg=" 191 << tgtPdg 192 << " Collision type: "<< typeid(*collision->GetGenerator()).name() 193 << G4endl; 184 194 } 185 195 } -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4Scatterer.cc
r819 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4Scatterer.cc,v 1.13.2.4 2006/06/29 20:40:31gunter Exp $ //26 // $Id: G4Scatterer.cc,v 1.13.2.4.2.1 2009/11/20 16:25:08 gunter Exp $ // 27 27 // 28 28 … … 126 126 // << G4endl; 127 127 128 // global optimization129 // static const G4double maxCrossSection = 500*millibarn;130 128 if(pi*distance>maxCrossSection) return time; 131 129 -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc
r819 r1228 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4VCrossSectionSource.cc,v 1.5 2006/08/19 21:50:47 dennisExp $ //26 // $Id: G4VCrossSectionSource.cc,v 1.5.2.1 2009/11/20 16:25:08 gunter Exp $ // 27 27 // 28 28 … … 46 46 47 47 48 G4 StringG4VCrossSectionSource::48 G4ParticleDefinition * G4VCrossSectionSource:: 49 49 FindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const 50 50 { 51 G4 Stringresult;51 G4ParticleDefinition * result; 52 52 53 53 G4ParticleDefinition * p1 = trk1.GetDefinition(); … … 57 57 (p1==G4Neutron::Neutron() && p2==G4Neutron::Neutron()) ) 58 58 { 59 result = G4Proton::Proton() ->GetParticleName();59 result = G4Proton::Proton(); 60 60 } 61 61 else if( (p1==G4Neutron::Neutron() && p2==G4Proton::Proton()) || 62 62 (p2==G4Neutron::Neutron() && p1==G4Proton::Proton()) ) 63 63 { 64 result = G4Neutron::Neutron() ->GetParticleName();64 result = G4Neutron::Neutron(); 65 65 } 66 66 else -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4XNNElasticLowE.cc
r962 r1228 111 111 np->PutValue(i,value); 112 112 } 113 xMap[G4Proton::ProtonDefinition() ->GetParticleName()] = pp;114 xMap[G4Neutron::NeutronDefinition() ->GetParticleName()] = np;113 xMap[G4Proton::ProtonDefinition()] = pp; 114 xMap[G4Neutron::NeutronDefinition()] = np; 115 115 } 116 116 … … 118 118 G4XNNElasticLowE::~G4XNNElasticLowE() 119 119 { 120 G4String name_proton = "proton"; 121 G4String name_neutron = "neutron"; 122 delete xMap[name_proton]; 123 delete xMap[name_neutron]; 120 delete xMap[G4Proton::ProtonDefinition()]; 121 delete xMap[G4Neutron::NeutronDefinition()]; 124 122 } 125 123 … … 144 142 G4bool dummy = false; 145 143 146 G4 Stringkey = FindKeyParticle(trk1,trk2);147 148 typedef std::map <G4 String, G4PhysicsVector*, std::less<G4String> > StringPhysMap;144 G4ParticleDefinition * key = FindKeyParticle(trk1,trk2); 145 146 typedef std::map <G4ParticleDefinition *, G4PhysicsVector*, std::less<G4ParticleDefinition *> > StringPhysMap; 149 147 150 148 if (xMap.find(key)!= xMap.end()) … … 154 152 for (iter = xMap.begin(); iter != xMap.end(); ++iter) 155 153 { 156 G4 Stringstr = (*iter).first;154 G4ParticleDefinition * str = (*iter).first; 157 155 if (str == key) 158 156 { … … 166 164 sigma = physVector->GetValue(_eMin,dummy); 167 165 } 166 //G4cout << " sqrtS / sigma " << sqrtS/GeV << " / " << 167 // sigma/millibarn << G4endl; 168 168 } 169 169 } … … 181 181 G4bool dummy = false; 182 182 G4int i; 183 G4 String key = G4Proton::ProtonDefinition()->GetParticleName();183 G4ParticleDefinition * key = G4Proton::ProtonDefinition(); 184 184 G4PhysicsVector* pp = 0; 185 185 186 typedef std::map <G4 String, G4PhysicsVector*, std::less<G4String> > StringPhysMap;186 typedef std::map <G4ParticleDefinition *, G4PhysicsVector*, std::less<G4ParticleDefinition *> > StringPhysMap; 187 187 StringPhysMap::const_iterator iter; 188 188 189 189 for (iter = xMap.begin(); iter != xMap.end(); ++iter) 190 190 { 191 G4 Stringstr = (*iter).first;191 G4ParticleDefinition * str = (*iter).first; 192 192 if (str == key) 193 193 { … … 210 210 G4cout << Name() << ", np cross-section: " << G4endl; 211 211 212 key = G4Neutron::NeutronDefinition() ->GetParticleName();212 key = G4Neutron::NeutronDefinition(); 213 213 G4PhysicsVector* np = 0; 214 214 for (iter = xMap.begin(); iter != xMap.end(); ++iter) 215 215 { 216 G4 Stringstr = (*iter).first;216 G4ParticleDefinition * str = (*iter).first; 217 217 if (str == key) 218 218 { -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4XNNTotalLowE.cc
r962 r1228 65 65 it.second=npTot[i]; np->push_back(it); 66 66 } 67 theCrossSections[G4Proton::ProtonDefinition() ->GetParticleName()] = pp;68 theCrossSections[G4Neutron::NeutronDefinition() ->GetParticleName()] = np;67 theCrossSections[G4Proton::ProtonDefinition()] = pp; 68 theCrossSections[G4Neutron::NeutronDefinition()] = np; 69 69 } 70 70 … … 72 72 G4XNNTotalLowE::~G4XNNTotalLowE() 73 73 { 74 G4String name_proton = "proton";75 G4String name_neutron = "neutron";76 74 77 delete theCrossSections[ name_proton];78 delete theCrossSections[ name_neutron];75 delete theCrossSections[G4Proton::ProtonDefinition()]; 76 delete theCrossSections[G4Neutron::NeutronDefinition()]; 79 77 } 80 78 … … 83 81 G4double result = 0.; 84 82 G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); 85 G4 Stringkey = FindKeyParticle(trk1,trk2);83 G4ParticleDefinition * key = FindKeyParticle(trk1,trk2); 86 84 87 85 if (theCrossSections.find(key)!= theCrossSections.end()) -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc
r819 r1228 25 25 // 26 26 // 27 // $Id: G4XPDGElastic.cc,v 1.3 2006/06/29 20:42:42gunter Exp $ //27 // $Id: G4XPDGElastic.cc,v 1.3.2.1 2009/11/20 16:25:08 gunter Exp $ // 28 28 // ------------------------------------------------------------------- 29 29 // … … 74 74 G4XPDGElastic::G4XPDGElastic() 75 75 { 76 G4 String proton = G4Proton::ProtonDefinition()->GetParticleName();77 G4 String neutron = G4Neutron::NeutronDefinition()->GetParticleName();78 G4 String piPlus = G4PionPlus::PionPlusDefinition()->GetParticleName();79 G4 String piMinus = G4PionMinus::PionMinusDefinition()->GetParticleName();80 G4 String KPlus = G4KaonPlus::KaonPlusDefinition()->GetParticleName();81 G4 String KMinus = G4KaonMinus::KaonMinusDefinition()->GetParticleName();82 G4 String antiproton = G4AntiProton::AntiProtonDefinition()->GetParticleName();83 84 std::pair<G4 String,G4String> pp(proton,proton);85 std::pair<G4 String,G4String> pn(proton,neutron);86 std::pair<G4 String,G4String> piPlusp(piPlus,proton);87 std::pair<G4 String,G4String> piMinusp(piMinus,proton);88 std::pair<G4 String,G4String> KPlusp(KPlus,proton);89 std::pair<G4 String,G4String> KMinusp(KMinus,proton);90 std::pair<G4 String,G4String> nn(neutron,neutron);91 std::pair<G4 String,G4String> ppbar(proton,antiproton);92 std::pair<G4 String,G4String> npbar(antiproton,neutron);76 G4ParticleDefinition * proton = G4Proton::ProtonDefinition(); 77 G4ParticleDefinition * neutron = G4Neutron::NeutronDefinition(); 78 G4ParticleDefinition * piPlus = G4PionPlus::PionPlusDefinition(); 79 G4ParticleDefinition * piMinus = G4PionMinus::PionMinusDefinition(); 80 G4ParticleDefinition * KPlus = G4KaonPlus::KaonPlusDefinition(); 81 G4ParticleDefinition * KMinus = G4KaonMinus::KaonMinusDefinition(); 82 G4ParticleDefinition * antiproton = G4AntiProton::AntiProtonDefinition(); 83 84 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pp(proton,proton); 85 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pn(proton,neutron); 86 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piPlusp(piPlus,proton); 87 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piMinusp(piMinus,proton); 88 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusp(KPlus,proton); 89 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusp(KMinus,proton); 90 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> nn(neutron,neutron); 91 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> ppbar(proton,antiproton); 92 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> npbar(antiproton,neutron); 93 93 94 94 std::vector<G4double> ppData; … … 159 159 G4ParticleDefinition* def1 = trk1.GetDefinition(); 160 160 G4ParticleDefinition* def2 = trk2.GetDefinition(); 161 G4String name1 = def1->GetParticleName();162 G4String name2 = def2->GetParticleName();163 161 164 162 G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); … … 182 180 183 181 // Order the pair: first is the lower mass particle, second is the higher mass one 184 std::pair<G4 String,G4String> trkPair(def1->GetParticleName(),def2->GetParticleName());182 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> trkPair(def1,def2); 185 183 if (def1->GetPDGMass() > def2->GetPDGMass()) 186 trkPair = std::pair<G4 String,G4String>(def2->GetParticleName(),def1->GetParticleName());184 trkPair = std::pair<G4ParticleDefinition *,G4ParticleDefinition *>(def2,def1); 187 185 188 186 std::vector<G4double> data; … … 204 202 for (iter = xMap.begin(); iter != xMap.end(); ++iter) 205 203 { 206 std::pair<G4 String,G4String> thePair = (*iter).first;204 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> thePair = (*iter).first; 207 205 if (thePair == trkPair) 208 206 { … … 245 243 { 246 244 G4cout << "WARNING! G4XPDGElastic::PDGElastic " 247 << name1 << "-" << name2245 << def1->GetParticleName() << "-" << def2->GetParticleName() 248 246 << " elastic cross section: momentum " 249 247 << pLab << " GeV, negative cross section " -
trunk/source/processes/hadronic/models/im_r_matrix/src/G4XPDGTotal.cc
r819 r1228 68 68 G4XPDGTotal::G4XPDGTotal() 69 69 { 70 std::pair<G4 String,G4String> pp(G4Proton::ProtonDefinition()->GetParticleName(),71 G4Proton::ProtonDefinition() ->GetParticleName());72 std::pair<G4 String,G4String> pn(G4Proton::ProtonDefinition()->GetParticleName(),73 G4Neutron::NeutronDefinition() ->GetParticleName());74 std::pair<G4 String,G4String> piPlusp(G4PionPlus::PionPlusDefinition()->GetParticleName(),75 G4Proton::ProtonDefinition() ->GetParticleName());76 std::pair<G4 String,G4String> piMinusp(G4PionMinus::PionMinusDefinition()->GetParticleName(),77 G4Proton::ProtonDefinition() ->GetParticleName());78 std::pair<G4 String,G4String> KPlusp(G4KaonPlus::KaonPlusDefinition()->GetParticleName(),79 G4Proton::ProtonDefinition() ->GetParticleName());80 std::pair<G4 String,G4String> KPlusn(G4KaonPlus::KaonPlusDefinition()->GetParticleName(),81 G4Neutron::NeutronDefinition() ->GetParticleName());82 std::pair<G4 String,G4String> KMinusp(G4KaonMinus::KaonMinusDefinition()->GetParticleName(),83 G4Proton::ProtonDefinition() ->GetParticleName());84 std::pair<G4 String,G4String> KMinusn(G4KaonMinus::KaonMinusDefinition()->GetParticleName(),85 G4Neutron::NeutronDefinition() ->GetParticleName());86 std::pair<G4 String,G4String> gp(G4Gamma::GammaDefinition()->GetParticleName(),87 G4Proton::ProtonDefinition() ->GetParticleName());88 std::pair<G4 String,G4String> gg(G4Gamma::GammaDefinition()->GetParticleName(),89 G4Gamma::GammaDefinition() ->GetParticleName());90 std::pair<G4 String,G4String> nn(G4Neutron::NeutronDefinition()->GetParticleName(),91 G4Neutron::NeutronDefinition() ->GetParticleName());70 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pp(G4Proton::ProtonDefinition(), 71 G4Proton::ProtonDefinition()); 72 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pn(G4Proton::ProtonDefinition(), 73 G4Neutron::NeutronDefinition()); 74 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piPlusp(G4PionPlus::PionPlusDefinition(), 75 G4Proton::ProtonDefinition()); 76 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piMinusp(G4PionMinus::PionMinusDefinition(), 77 G4Proton::ProtonDefinition()); 78 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusp(G4KaonPlus::KaonPlusDefinition(), 79 G4Proton::ProtonDefinition()); 80 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusn(G4KaonPlus::KaonPlusDefinition(), 81 G4Neutron::NeutronDefinition()); 82 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusp(G4KaonMinus::KaonMinusDefinition(), 83 G4Proton::ProtonDefinition()); 84 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusn(G4KaonMinus::KaonMinusDefinition(), 85 G4Neutron::NeutronDefinition()); 86 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> gp(G4Gamma::GammaDefinition(), 87 G4Proton::ProtonDefinition()); 88 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> gg(G4Gamma::GammaDefinition(), 89 G4Gamma::GammaDefinition()); 90 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> nn(G4Neutron::NeutronDefinition(), 91 G4Neutron::NeutronDefinition()); 92 92 93 93 std::vector<G4double> nnData; … … 170 170 171 171 // Order the pair: first is the lower mass particle, second is the higher mass one 172 std::pair<G4 String,G4String> trkPair(def1->GetParticleName(),def2->GetParticleName());172 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> trkPair(def1,def2); 173 173 174 174 if (def1->GetPDGMass() > def2->GetPDGMass()) 175 trkPair = std::pair<G4 String,G4String>(def2->GetParticleName(),def1->GetParticleName());175 trkPair = std::pair<G4ParticleDefinition *,G4ParticleDefinition *>(def2,def1); 176 176 177 177 std::vector<G4double> data; … … 183 183 for (iter = xMap.begin(); iter != xMap.end(); ++iter) 184 184 { 185 std::pair<G4 String,G4String> thePair = (*iter).first;185 std::pair<G4ParticleDefinition *,G4ParticleDefinition *> thePair = (*iter).first; 186 186 if (thePair == trkPair) 187 187 {
Note: See TracChangeset
for help on using the changeset viewer.