- Timestamp:
- Feb 16, 2009, 10:14:30 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HadronInelasticQBBC.cc,v 1. 9 2008/08/05 10:25:00vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4HadronInelasticQBBC.cc,v 1.15 2008/11/21 18:42:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 57 57 #include "G4QStringChipsParticleLevelInterface.hh" 58 58 #include "G4StringChipsInterface.hh" 59 #include "G4GeneratorPrecompoundInterface.hh" 59 60 #include "G4QGSMFragmentation.hh" 60 61 #include "G4LundStringFragmentation.hh" … … 78 79 chipsFlag(chips), hpFlag(hp), glFlag(glauber), wasActivated(false) 79 80 { 80 if(verbose > -1) G4cout << "### HadronInelasticQBBC" << G4endl; 81 // store = G4HadronProcessStore::Instance(); 81 if(verbose > 1) G4cout << "### HadronInelasticQBBC bertFlag= " << bertFlag <<G4endl; 82 82 theHPXSecI = 0; 83 83 theHPXSecC = 0; 84 84 theHPXSecF = 0; 85 85 theCascade = 0; 86 preCompound = 0; 86 87 theCHIPSCascade = 0; 87 88 theQuasiElastic = 0; 88 89 theQGStringDecay = 0; 89 90 theQGStringModel = 0; 90 theFTFStringDecay = 0; 91 theFTFStringModel = 0; 91 theFTFBStringDecay = 0; 92 theFTFBStringModel = 0; 93 theFTFCStringDecay = 0; 94 theFTFCStringModel = 0; 92 95 } 93 96 … … 95 98 { 96 99 delete theCascade; 100 delete preCompound; 97 101 delete theCHIPSCascade; 98 102 delete theQuasiElastic; 99 103 delete theQGStringDecay; 100 104 delete theQGStringModel; 101 delete theFTFStringDecay; 102 delete theFTFStringModel; 105 delete theFTFBStringDecay; 106 delete theFTFCStringDecay; 107 delete theFTFBStringModel; 108 delete theFTFCStringModel; 103 109 delete theHPXSecI; 104 110 delete theHPXSecC; … … 121 127 122 128 if(verbose > 1) 123 G4cout << "### HadronInelasticQBBC Construct Process" << G4endl; 124 125 G4double minEstring = 4.0*GeV; 126 G4double maxEcascade = 6.0*GeV; 127 // G4double minFtf = 7.5*GeV; 129 G4cout << "### HadronInelasticQBBC Construct Process" 130 << " ftfFlag= " << ftfFlag << " bertFlag= " << bertFlag 131 << G4endl; 132 133 G4double minEstring = 9.5*GeV; 134 G4double maxEcascade = 7.5*GeV; 135 G4double minFTF = 4.5*GeV; 136 G4double maxFTF = 25.*GeV; 128 137 129 138 //Binary … … 143 152 144 153 //QGS 145 theCascade = new G4BinaryCascade; 154 theCascade = new G4BinaryCascade(); 155 preCompound = new G4GeneratorPrecompoundInterface(); 156 146 157 theCHIPSCascade = new G4QStringChipsParticleLevelInterface; 147 G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator( );158 G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator("QGSP"); 148 159 theQGStringModel = new G4QGSModel< G4QGSParticipants >; 149 160 theQGStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation()); 150 161 theQGStringModel->SetFragmentationModel(theQGStringDecay); 151 theQGSModel->SetTransport( theCHIPSCascade);152 153 theQuasiElastic = new G4QuasiElasticChannel ;162 theQGSModel->SetTransport(preCompound); 163 164 theQuasiElastic = new G4QuasiElasticChannel(); 154 165 theQGSModel->SetQuasiElasticChannel(theQuasiElastic); 155 166 theQGSModel->SetHighEnergyGenerator(theQGStringModel); … … 157 168 theQGSModel->SetMaxEnergy(100*TeV); 158 169 159 //FTF 160 G4TheoFSGenerator* theFTFModel = new G4TheoFSGenerator(); 161 theFTFStringModel = new G4FTFModel(); 162 theFTFStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation()); 163 theFTFStringModel->SetFragmentationModel(theFTFStringDecay); 164 //theFTFModel->SetTransport(theCHIPSCascade); 165 theFTFModel->SetTransport(theCascade); 166 theFTFModel->SetHighEnergyGenerator(theFTFStringModel); 167 theFTFModel->SetMinEnergy(minEstring); 168 theFTFModel->SetMaxEnergy(100*TeV); 169 //theFTFModel->SetQuasiElasticChannel(theQuasiElastic); 170 //FTFB 171 G4TheoFSGenerator* theFTFBModel = new G4TheoFSGenerator("FTFP"); 172 theFTFBStringModel = new G4FTFModel(); 173 theFTFBStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation()); 174 theFTFBStringModel->SetFragmentationModel(theFTFBStringDecay); 175 176 // theFTFBModel->SetTransport(theCascade); 177 theFTFBModel->SetTransport(preCompound); 178 theFTFBModel->SetHighEnergyGenerator(theFTFBStringModel); 179 theFTFBModel->SetMinEnergy(minFTF); 180 theFTFBModel->SetMaxEnergy(100*TeV); 181 182 //FTFP 183 G4TheoFSGenerator* theFTFCModel = new G4TheoFSGenerator("FTFP"); 184 theFTFCStringModel = new G4FTFModel(); 185 theFTFCStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation()); 186 theFTFCStringModel->SetFragmentationModel(theFTFCStringDecay); 187 188 theFTFCModel->SetTransport(preCompound); 189 theFTFCModel->SetHighEnergyGenerator(theFTFCStringModel); 190 theFTFCModel->SetMinEnergy(minFTF); 191 theFTFCModel->SetMaxEnergy(maxFTF); 170 192 171 193 theParticleIterator->reset(); … … 205 227 hp->AddDataSet(&theXSecP); 206 228 207 if(ftfFlag) hp->RegisterMe(theFTFModel); 208 else hp->RegisterMe(theQGSModel); 229 hp->RegisterMe(theQGSModel); 230 hp->RegisterMe(theFTFCModel); 231 //if(ftfFlag) hp->RegisterMe(theFTFCModel); 232 //else hp->RegisterMe(theQGSModel); 209 233 210 234 if(bertFlag) hp->RegisterMe(theBERT); … … 216 240 } else if(pname == "neutron") { 217 241 hp->AddDataSet(&theXSecN); 218 if(ftfFlag) hp->RegisterMe(theFTFModel); 219 else hp->RegisterMe(theQGSModel); 242 hp->RegisterMe(theQGSModel); 243 hp->RegisterMe(theFTFCModel); 244 //if(ftfFlag) hp->RegisterMe(theFTFCModel); 245 //else hp->RegisterMe(theQGSModel); 220 246 221 247 G4HadronCaptureProcess* theNeutronCapture = … … 260 286 } else if(pname == "pi-" || pname == "pi+") { 261 287 hp->AddDataSet(&thePiCross); 262 if(ftfFlag) hp->RegisterMe(theFTFModel); 263 else hp->RegisterMe(theQGSModel); 288 hp->RegisterMe(theQGSModel); 289 hp->RegisterMe(theFTFCModel); 290 //if(ftfFlag) hp->RegisterMe(theFTFCModel); 291 //else hp->RegisterMe(theQGSModel); 264 292 265 293 hp->RegisterMe(theBERT); … … 274 302 pname == "kaon0S" || 275 303 pname == "kaon0L") { 276 hp->RegisterMe(theFTF Model);304 hp->RegisterMe(theFTFBModel); 277 305 hp->RegisterMe(theBERT); 278 306 //hp->AddDataSet(new G4UInelasticCrossSection(particle)); … … 284 312 pname == "xi0") { 285 313 286 hp->RegisterMe(theFTF Model);314 hp->RegisterMe(theFTFBModel); 287 315 hp->RegisterMe(theBERT); 288 316 //hp->AddDataSet(new G4UInelasticCrossSection(particle)); 289 317 290 318 } else if(pname == "anti_proton" || pname == "anti_neutron") { 291 hp->RegisterMe(theFTF Model);319 hp->RegisterMe(theFTFBModel); 292 320 hp->RegisterMe(theCHIPS); 293 321 //hp->AddDataSet(new G4UInelasticCrossSection(particle)); 294 322 295 323 } else { 296 hp->RegisterMe(theFTF Model);324 hp->RegisterMe(theFTFBModel); 297 325 hp->RegisterMe(theCHIPS); 298 326 //hp->AddDataSet(new G4UInelasticCrossSection(particle));
Note: See TracChangeset
for help on using the changeset viewer.