Ignore:
Timestamp:
Feb 16, 2009, 10:14:30 AM (16 years ago)
Author:
garnier
Message:

en test de gl2ps. Problemes de libraries

Location:
trunk/source/physics_lists
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/physics_lists/History

    r850 r921  
    1 $Id: History,v 1.65 2008/08/05 10:25:00 vnivanch Exp $
     1$Id: History,v 1.74 2008/12/01 17:04:13 vnivanch Exp $
    22-------------------------------------------------------------------
    33
     
    1515     * Reverse chronological order (last date on top), please *
    1616     ----------------------------------------------------------
     17
     1801-12-2008, V.Ivanchenko phys-lists-V09-01-19
     19G4HadronElasticPhysics - fixed adding optional Barashenkov Xsection
     20QBBC - added QBBBG option
     21
     2221-11-2008, V.Ivanchenko phys-lists-V09-01-18
     23- Added sigma_c+, sigma_c++ in the list of stable hadrons
     24- added interfaces to G4PhysicsListFactory - ALICE requirement
     25
     2620-11-2008, V.Ivanchenko phys-lists-V09-01-17
     27- Added charge exchange process to QBBC Physics Lists
     28
     2917-11-2008, V.Ivanchenko phys-lists-V09-01-16
     30- Added names to string models builders
     31
     3214-11-2008, V.Ivanchenko phys-lists-V09-01-15
     33G4EmStandardPhysics_option1 - disable ApplyCuts option
     34G4EmStandardPhysics_option3 - linLossLimit set to be default (0.01)
     35G4PhysicsListFactory - added QBBCG
     36
     3715-10-2008, V.Ivanchenko phys-lists-V09-01-14
     38In all EM builders - set inactive for AlongStep for bremsstrahlung and pair
     39                     production porcesses for minor CPU improvenment
     40
     4115-10-2008, V.Ivanchenko phys-lists-V09-01-13
     42In all EM builders: added hadron bemsstrahlung and e+e- pair production
     43  and e-msc for e+-;
     44G4EmStandardPhysics_option2 - enable "ApplyCuts", disable "SubCutoff"
     45G4EmStandardPhysics_option3 - added G4LowEnergyRayleigh, set 120 bins
     46  for tables (60 is the default), StepFunction per particle type
     47
     4824-09-2008, V.Ivanchenko phys-lists-V09-01-12
     49- QBBC temporary variant which is equivalent QGSP_BERT without LHEP
     50  for protons, neutrons and pions   
     51
     5217-09-2008, V.Ivanchenko phys-lists-V09-01-11
     53- G4NeutronTrackingCut - added Set methods to define time and energy
     54                         limits directly
     55- G4HadronInelasticQBBC, QBBC - use FTF with Binary Casacde, improved cout
    1756
    185704-08-2008, V.Ivanchenko phys-lists-V09-01-10
  • trunk/source/physics_lists/builders/GNUmakefile

    r850 r921  
    1 # $Id: GNUmakefile,v 1.4 2008/05/30 11:01:37 vnivanch Exp $
     1# $Id: GNUmakefile,v 1.5 2008/10/15 18:24:11 vnivanch Exp $
    22# ---------------------------------------------------------------------------
    33# GNUmakefile for physics_lists/builders library.  Gunter Folger 25-Oct-2006.
     
    3939            -I$(G4BASE)/processes/electromagnetic/utils/include \
    4040            -I$(G4BASE)/processes/electromagnetic/xrays/include \
     41            -I$(G4BASE)/processes/electromagnetic/lowenergy/include \
    4142            -I$(G4BASE)/processes/hadronic/cross_sections/include \
    4243            -I$(G4BASE)/processes/hadronic/stopping/include \
  • trunk/source/physics_lists/builders/include/G4NeutronTrackingCut.hh

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4NeutronTrackingCut.hh,v 1.1 2006/11/20 17:56:08 gunter Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4NeutronTrackingCut.hh,v 1.2 2008/09/17 18:19:15 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    5151    virtual ~G4NeutronTrackingCut();
    5252
    53   public:
    5453    // This method will be invoked in the Construct() method.
    5554    // each particle type will be instantiated
     
    6160  virtual void ConstructProcess();
    6261
     62  inline void SetTimeLimit(G4double);
     63  inline void SetKineticEnergyLimit(G4double);
     64
    6365private:
     66
    6467  G4NeutronKiller* pNeutronKiller;
     68
     69  G4double timeLimit;
     70  G4double kineticEnergyLimit;
     71 
    6572  G4int    verbose;
    6673  G4bool   wasActivated;
    6774};
     75
     76inline void G4NeutronTrackingCut::SetTimeLimit(G4double val)
     77{
     78  timeLimit = val;
     79}
     80
     81inline void G4NeutronTrackingCut::SetKineticEnergyLimit(G4double val)
     82{
     83  kineticEnergyLimit = val;
     84}
    6885
    6986#endif
  • trunk/source/physics_lists/builders/src/G4EmStandardPhysics.cc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4EmStandardPhysics.cc,v 1.13 2008/04/22 18:28:37 vnivanch Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4EmStandardPhysics.cc,v 1.16 2008/11/21 16:50:30 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    5656#include "G4MultipleScattering.hh"
    5757#include "G4hMultipleScattering.hh"
     58#include "G4eMultipleScattering.hh"
    5859
    5960#include "G4eIonisation.hh"
     
    6465#include "G4MuBremsstrahlung.hh"
    6566#include "G4MuPairProduction.hh"
     67#include "G4hBremsstrahlung.hh"
     68#include "G4hPairProduction.hh"
    6669
    6770#include "G4hIonisation.hh"
     
    152155    } else if (particleName == "e-") {
    153156
    154       pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
     157      pmanager->AddProcess(new G4eMultipleScattering,-1, 1, 1);
    155158      pmanager->AddProcess(new G4eIonisation,        -1, 2, 2);
    156       pmanager->AddProcess(new G4eBremsstrahlung(),  -1, 3, 3);
     159      pmanager->AddProcess(new G4eBremsstrahlung(),  -1,-3, 3);
    157160
    158161    } else if (particleName == "e+") {
    159162
    160       pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1);
     163      pmanager->AddProcess(new G4eMultipleScattering,-1, 1, 1);
    161164      pmanager->AddProcess(new G4eIonisation,        -1, 2, 2);
    162       pmanager->AddProcess(new G4eBremsstrahlung,    -1, 3, 3);
     165      pmanager->AddProcess(new G4eBremsstrahlung,    -1,-3, 3);
    163166      pmanager->AddProcess(new G4eplusAnnihilation,   0,-1, 4);
    164167
     
    168171      pmanager->AddProcess(new G4hMultipleScattering,-1, 1, 1);
    169172      pmanager->AddProcess(new G4MuIonisation,       -1, 2, 2);
    170       pmanager->AddProcess(new G4MuBremsstrahlung,   -1, 3, 3);
    171       pmanager->AddProcess(new G4MuPairProduction,   -1, 4, 4);
     173      pmanager->AddProcess(new G4MuBremsstrahlung,   -1,-3, 3);
     174      pmanager->AddProcess(new G4MuPairProduction,   -1,-4, 4);
    172175
    173176    } else if (particleName == "alpha" ||
     
    177180      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
    178181      pmanager->AddProcess(new G4ionIonisation,       -1, 2, 2);
     182
     183    } else if (particleName == "pi+" ||
     184               particleName == "pi-" ||
     185               particleName == "proton" ) {
     186
     187      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
     188      pmanager->AddProcess(new G4hIonisation,         -1, 2, 2);
     189      pmanager->AddProcess(new G4hBremsstrahlung,     -1,-3, 3);
     190      pmanager->AddProcess(new G4hPairProduction,     -1,-4, 4);
    179191
    180192    } else if (particleName == "B+" ||
     
    187199               particleName == "anti_omega-" ||
    188200               particleName == "anti_proton" ||
     201               particleName == "anti_sigma_c+" ||
     202               particleName == "anti_sigma_c++" ||
    189203               particleName == "anti_sigma+" ||
    190204               particleName == "anti_sigma-" ||
     
    192206               particleName == "anti_xi-" ||
    193207               particleName == "deuteron" ||
    194                particleName == "kaon+" ||
     208               particleName == "kaon+" ||
    195209               particleName == "kaon-" ||
    196                particleName == "lambda_c+" ||
     210               particleName == "lambda_c+" ||
    197211               particleName == "omega-" ||
    198                particleName == "pi+" ||
    199                particleName == "pi-" ||
    200                particleName == "proton" ||
     212               particleName == "sigma_c+" ||
     213               particleName == "sigma_c++" ||
    201214               particleName == "sigma+" ||
    202215               particleName == "sigma-" ||
  • trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option1.cc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4EmStandardPhysics_option1.cc,v 1.7 2008/04/22 18:28:38 vnivanch Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4EmStandardPhysics_option1.cc,v 1.11 2008/11/21 16:50:30 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    5656#include "G4PhotoElectricEffect.hh"
    5757
     58#include "G4eMultipleScattering.hh"
    5859#include "G4hMultipleScattering.hh"
    5960#include "G4MultipleScattering.hh"
     
    6768#include "G4MuBremsstrahlung.hh"
    6869#include "G4MuPairProduction.hh"
     70#include "G4hBremsstrahlung.hh"
     71#include "G4hPairProduction.hh"
    6972
    7073#include "G4hIonisation.hh"
     
    158161      G4eIonisation* eioni = new G4eIonisation();
    159162      eioni->SetStepFunction(0.8, 1.0*mm);
    160       G4MultipleScattering* msc = new G4MultipleScattering;
     163      G4eMultipleScattering* msc = new G4eMultipleScattering;
    161164      msc->SetStepLimitType(fMinimal);
    162165      pmanager->AddProcess(msc,                   -1, 1, 1);
    163166      pmanager->AddProcess(eioni,                 -1, 2, 2);
    164       pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3);
     167      pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
    165168
    166169    } else if (particleName == "e+") {
     
    168171      G4eIonisation* eioni = new G4eIonisation();
    169172      eioni->SetStepFunction(0.8, 1.0*mm);
    170       G4MultipleScattering* msc = new G4MultipleScattering;
     173      G4eMultipleScattering* msc = new G4eMultipleScattering;
    171174      msc->SetStepLimitType(fMinimal);
    172175      pmanager->AddProcess(msc,                     -1, 1, 1);
    173176      pmanager->AddProcess(eioni,                   -1, 2, 2);
    174       pmanager->AddProcess(new G4eBremsstrahlung,   -1, 3, 3);
     177      pmanager->AddProcess(new G4eBremsstrahlung,   -1,-3, 3);
    175178      pmanager->AddProcess(new G4eplusAnnihilation,  0,-1, 4);
    176179
     
    180183      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
    181184      pmanager->AddProcess(new G4MuIonisation,        -1, 2, 2);
    182       pmanager->AddProcess(new G4MuBremsstrahlung,    -1, 3, 3);
    183       pmanager->AddProcess(new G4MuPairProduction,    -1, 4, 4);
     185      pmanager->AddProcess(new G4MuBremsstrahlung,    -1,-3, 3);
     186      pmanager->AddProcess(new G4MuPairProduction,    -1,-4, 4);
    184187
    185188    } else if (particleName == "alpha" ||
     
    189192      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
    190193      pmanager->AddProcess(new G4ionIonisation,       -1, 2, 2);
     194
     195    } else if (particleName == "pi+" ||
     196               particleName == "pi-" ||
     197               particleName == "proton" ) {
     198
     199      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
     200      pmanager->AddProcess(new G4hIonisation,         -1, 2, 2);
     201      pmanager->AddProcess(new G4hBremsstrahlung,     -1,-3, 3);
     202      pmanager->AddProcess(new G4hPairProduction,     -1,-4, 4);
    191203
    192204    } else if (particleName == "B+" ||
     
    199211               particleName == "anti_omega-" ||
    200212               particleName == "anti_proton" ||
     213               particleName == "anti_sigma_c+" ||
     214               particleName == "anti_sigma_c++" ||
    201215               particleName == "anti_sigma+" ||
    202216               particleName == "anti_sigma-" ||
     
    204218               particleName == "anti_xi-" ||
    205219               particleName == "deuteron" ||
    206                particleName == "kaon+" ||
     220               particleName == "kaon+" ||
    207221               particleName == "kaon-" ||
    208                particleName == "lambda_c+" ||
     222               particleName == "lambda_c+" ||
    209223               particleName == "omega-" ||
    210                particleName == "pi+" ||
    211                particleName == "pi-" ||
    212                particleName == "proton" ||
     224               particleName == "sigma_c+" ||
     225               particleName == "sigma_c++" ||
    213226               particleName == "sigma+" ||
    214227               particleName == "sigma-" ||
     
    225238  G4EmProcessOptions opt;
    226239  opt.SetVerbose(verbose);
     240  //opt.SetApplyCuts(true);
    227241}
    228242
  • trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option2.cc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4EmStandardPhysics_option2.cc,v 1.11 2008/08/05 10:24:44 vnivanch Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4EmStandardPhysics_option2.cc,v 1.15 2008/11/21 17:59:23 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    161161    } else if (particleName == "e-") {
    162162
    163       pmanager->AddProcess(new G4MuMultipleScattering, -1, 1, 1);
     163      pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
    164164      pmanager->AddProcess(new G4eIonisation,         -1, 2, 2);
    165165      pmanager->AddProcess(new G4eBremsstrahlung,     -1,-3, 3);
    166       pmanager->AddDiscreteProcess(new G4CoulombScattering());
    167166
    168167    } else if (particleName == "e+") {
    169168
    170       pmanager->AddProcess(new G4MuMultipleScattering, -1, 1, 1);
     169      pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
    171170      pmanager->AddProcess(new G4eIonisation,         -1, 2, 2);
    172171      pmanager->AddProcess(new G4eBremsstrahlung,     -1,-3, 3);
    173172      pmanager->AddProcess(new G4eplusAnnihilation,    0,-1, 4);
    174       pmanager->AddDiscreteProcess(new G4CoulombScattering());
    175173
    176174    } else if (particleName == "mu+" ||
    177175               particleName == "mu-"    ) {
    178176
    179       pmanager->AddProcess(new G4MuMultipleScattering, -1, 1, 1);
     177      pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
    180178      pmanager->AddProcess(new G4MuIonisation,        -1, 2, 2);
    181179      pmanager->AddProcess(new G4MuBremsstrahlung,    -1,-3, 3);
     
    194192               particleName == "proton" ) {
    195193
    196       pmanager->AddProcess(new G4MuMultipleScattering, -1, 1, 1);
     194      pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
    197195      pmanager->AddProcess(new G4hIonisation,         -1, 2, 2);
    198196      pmanager->AddProcess(new G4hBremsstrahlung,     -1,-3, 3);
     
    208206               particleName == "anti_omega-" ||
    209207               particleName == "anti_proton" ||
     208               particleName == "anti_sigma_c+" ||
     209               particleName == "anti_sigma_c++" ||
    210210               particleName == "anti_sigma+" ||
    211211               particleName == "anti_sigma-" ||
     
    217217               particleName == "lambda_c+" ||
    218218               particleName == "omega-" ||
     219               particleName == "sigma_c+" ||
     220               particleName == "sigma_c++" ||
    219221               particleName == "sigma+" ||
    220222               particleName == "sigma-" ||
     
    238240  // Physics tables
    239241  //
    240   opt.SetMinEnergy(100*eV);
    241   opt.SetMaxEnergy(100*TeV);
    242   opt.SetDEDXBinning(120);
    243   opt.SetLambdaBinning(120);
    244   opt.SetSplineFlag(true);
     242  //opt.SetMinEnergy(100*eV);
     243  //opt.SetMaxEnergy(100*TeV);
     244  //opt.SetDEDXBinning(84);
     245  //opt.SetLambdaBinning(84);
     246  //opt.SetSplineFlag(true);
    245247  opt.SetPolarAngleLimit(0.2);
    246248 
    247249  // Energy loss
    248250  //
    249   opt.SetLinearLossLimit(0.01);
     251  //opt.SetLinearLossLimit(0.01);
    250252 
    251253  // Ionization
  • trunk/source/physics_lists/builders/src/G4FTFBinaryNeutronBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 4*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("FTFB");
    3636
    3737  theStringModel = new G4FTFModel;
  • trunk/source/physics_lists/builders/src/G4FTFBinaryPiKBuilder.cc

    r825 r921  
    3333 {
    3434   theMin = 4*GeV;
    35    theModel = new G4TheoFSGenerator;
     35   theModel = new G4TheoFSGenerator("FTFB");
    3636
    3737   theStringModel = new G4FTFModel;
  • trunk/source/physics_lists/builders/src/G4FTFBinaryProtonBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 4*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("FTFB");
    3636
    3737  theStringModel = new G4FTFModel;
  • trunk/source/physics_lists/builders/src/G4FTFPNeutronBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 4*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("FTFP");
    3636
    3737  theStringModel = new G4FTFModel;
  • trunk/source/physics_lists/builders/src/G4FTFPPiKBuilder.cc

    r825 r921  
    3333 {
    3434   theMin = 4*GeV;
    35    theModel = new G4TheoFSGenerator;
     35   theModel = new G4TheoFSGenerator("FTFP");
    3636
    3737   theStringModel = new G4FTFModel;
  • trunk/source/physics_lists/builders/src/G4FTFPProtonBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 4*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("FTFP");
    3636
    3737  theStringModel = new G4FTFModel;
  • trunk/source/physics_lists/builders/src/G4HadronElasticPhysics.cc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4HadronElasticPhysics.cc,v 1.8 2008/05/19 10:21:34 vnivanch Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4HadronElasticPhysics.cc,v 1.9 2008/12/01 16:57:22 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    6464#include "G4VQCrossSection.hh"
    6565#include "G4UElasticCrossSection.hh"
     66#include "G4BGGNucleonElasticXS.hh"
     67#include "G4BGGPionElasticXS.hh"
    6668
    6769G4HadronElasticPhysics::G4HadronElasticPhysics(
     
    123125  {
    124126    G4ParticleDefinition* particle = theParticleIterator->value();
     127    G4ProcessManager* pmanager = particle->GetProcessManager();
    125128    G4String pname = particle->GetParticleName();
    126129    if(pname == "anti_lambda"  ||
     
    138141       pname == "lambda"    ||
    139142       pname == "omega-"    ||
    140        pname == "pi-"       ||
    141        pname == "pi+"       ||
    142        pname == "proton"    ||
    143143       pname == "sigma-"    ||
    144144       pname == "sigma+"    ||
     
    148148       pname == "triton") {
    149149     
    150       G4ProcessManager* pmanager = particle->GetProcessManager();
    151150      if(mname == "elastic") {
    152151        G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
     
    159158      hel->RegisterMe(model);
    160159      pmanager->AddDiscreteProcess(hel);
     160      if(verbose > 1)
     161        G4cout << "### HadronElasticPhysics added for "
     162               << particle->GetParticleName() << G4endl;
     163
     164      // proton case
     165    } else if(pname == "proton") {
     166      if(mname == "elastic") {
     167        G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
     168        h->SetQElasticCrossSection(man);
     169        hel = h;
     170        if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
     171      } else {                   
     172        hel = new G4HadronElasticProcess("hElastic");
     173      }
     174      hel->RegisterMe(model);
     175      pmanager->AddDiscreteProcess(hel);
     176      if(verbose > 1)
     177        G4cout << "### HadronElasticPhysics added for "
     178               << particle->GetParticleName() << G4endl;
    161179
    162180      // neutron case
    163181    } else if(pname == "neutron") {   
    164182
    165       G4ProcessManager* pmanager = particle->GetProcessManager();
    166183      if(mname == "elastic") {
    167184        G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
     
    172189        h->SetQElasticCrossSection(nhe->GetCS());
    173190        hel = h;
    174         if(glFlag) hel->AddDataSet(new G4UElasticCrossSection(particle));
     191        if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
    175192      } else {                   
    176193        hel = new G4HadronElasticProcess("hElastic");
     
    191208        G4cout << "### HadronElasticPhysics added for "
    192209               << particle->GetParticleName() << G4endl;
     210
     211      // pion case
     212    } else if(pname == "pi+" || pname == "pi-") {
     213      if(mname == "elastic") {
     214        G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
     215        h->SetQElasticCrossSection(man);
     216        hel = h;
     217        if(glFlag) hel->AddDataSet(new G4BGGPionElasticXS(particle));
     218      } else {                   
     219        hel = new G4HadronElasticProcess("hElastic");
     220      }
     221      hel->RegisterMe(model);
     222      pmanager->AddDiscreteProcess(hel);
     223
     224      if(verbose > 1)
     225        G4cout << "### HadronElasticPhysics added for "
     226               << particle->GetParticleName() << G4endl;
    193227    }
    194228  }
  • trunk/source/physics_lists/builders/src/G4NeutronTrackingCut.cc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4NeutronTrackingCut.cc,v 1.4 2006/11/24 16:30:13 gunter Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4NeutronTrackingCut.cc,v 1.5 2008/09/17 18:19:15 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    4747G4NeutronTrackingCut::G4NeutronTrackingCut(const G4String& name, G4int ver)
    4848  :  G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
    49 {}
     49{
     50  timeLimit          = 10.*microsecond;
     51  kineticEnergyLimit = 0.0;
     52}
    5053
    5154G4NeutronTrackingCut::~G4NeutronTrackingCut()
     
    5356  if(wasActivated)
    5457  {
    55       delete pNeutronKiller;
     58    delete pNeutronKiller;
    5659  }   
    5760}
     
    5962void G4NeutronTrackingCut::ConstructParticle()
    6063{
    61 
    62 // G4cout << "G4NeutronTrackingCut::ConstructParticle" << G4endl;
    63 
    6464  G4Neutron::NeutronDefinition();
    6565}
     
    6767void G4NeutronTrackingCut::ConstructProcess()
    6868{
    69   G4double timeLimit     =10*microsecond;
    70 //  G4double kineticEnergylimit =1*keV;
    7169  if(wasActivated) return;
    7270  wasActivated = true;
    7371
    74   // Add Decay Process
     72  // Add Process
     73
    7574  pNeutronKiller = new G4NeutronKiller();
    7675  G4ParticleDefinition * particle = G4Neutron::Neutron();
    7776  G4ProcessManager * pmanager = particle->GetProcessManager();
    78 //      if(verbose > 1)
    79         G4cout << "### Adding Neutron tracking cut for " << particle->GetParticleName() << G4endl;
    80         G4cout << "###  cut value is " << timeLimit/microsecond << " microseconds" <<  G4endl;
    81       pmanager -> AddDiscreteProcess(pNeutronKiller);
    82 //      pNeutronKiller->SetKinEnergyLimit(kineticEnergylimit);
    83       pNeutronKiller->SetTimeLimit(timeLimit);
     77
     78  if(verbose > 0) {
     79    G4cout << "### Adding tracking cuts for " << particle->GetParticleName()
     80           << "  TimeCut(ns)= " << timeLimit/ns
     81           << "  KinEnergyCut(MeV)= " <<  kineticEnergyLimit/MeV
     82           <<  G4endl;
     83  }
     84  pmanager -> AddDiscreteProcess(pNeutronKiller);
     85  pNeutronKiller->SetKinEnergyLimit(kineticEnergyLimit);
     86  pNeutronKiller->SetTimeLimit(timeLimit);
    8487}
    8588
  • trunk/source/physics_lists/builders/src/G4QGSBinaryNeutronBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 12*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSB");
    3636
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSBinaryPiKBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 12*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSB");
    3636
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSBinaryProtonBuilder.cc

    r825 r921  
    3333 {
    3434   theMin = 12*GeV;
    35    theModel = new G4TheoFSGenerator;
     35   theModel = new G4TheoFSGenerator("QGSB");
    3636
    3737   theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSCEflowNeutronBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 8*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSCElow");
    3636
    3737  theStringModel= new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSCEflowPiKBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 8*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSCEflow");
    3636 
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSCEflowProtonBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 8*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSCEflow");
    3636
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSCNeutronBuilder.cc

    r825 r921  
    3333 {
    3434   theMin = 8*GeV;
    35    theModel = new G4TheoFSGenerator;
     35   theModel = new G4TheoFSGenerator("QGSC");
    3636
    3737   theStringModel= new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSCPiKBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 8*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSC");
    3636 
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSCProtonBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 8*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSC");
    3636
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSPNeutronBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 12*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSP");
    3636
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSPPiKBuilder.cc

    r825 r921  
    3333{
    3434  theMin = 12*GeV;
    35   theModel = new G4TheoFSGenerator;
     35  theModel = new G4TheoFSGenerator("QGSP");
    3636
    3737  theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/builders/src/G4QGSPProtonBuilder.cc

    r825 r921  
    3333 {
    3434   theMin = 12*GeV;
    35    theModel = new G4TheoFSGenerator;
     35   theModel = new G4TheoFSGenerator("QGSP");
    3636
    3737   theStringModel = new G4QGSModel< G4QGSParticipants >;
  • trunk/source/physics_lists/lists/include/G4HadronInelasticQBBC.hh

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4HadronInelasticQBBC.hh,v 1.5 2008/08/05 10:25:00 vnivanch Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: G4HadronInelasticQBBC.hh,v 1.7 2008/09/24 18:10:51 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    102102  G4PreCompoundModel* thePreEquilib;
    103103  G4QuasiElasticChannel*    theQuasiElastic;
    104   //  G4GeneratorPrecompoundInterface* theCascade;
     104  G4GeneratorPrecompoundInterface* preCompound;
    105105  G4BinaryCascade* theCascade;
    106106  G4QStringChipsParticleLevelInterface * theCHIPSCascade;
    107107  G4QGSModel< G4QGSParticipants > * theQGStringModel;
    108108  G4ExcitedStringDecay* theQGStringDecay;
    109   G4ExcitedStringDecay* theFTFStringDecay;
    110   G4FTFModel*           theFTFStringModel;
     109  G4ExcitedStringDecay* theFTFBStringDecay;
     110  G4ExcitedStringDecay* theFTFCStringDecay;
     111  G4FTFModel*           theFTFBStringModel;
     112  G4FTFModel*           theFTFCStringModel;
    111113
    112114  G4int    verbose;
  • trunk/source/physics_lists/lists/include/QBBC.icc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: QBBC.icc,v 1.12 2008/08/05 10:25:00 vnivanch Exp $
    27 // GEANT4 tag $Name: HEAD $
     26// $Id: QBBC.icc,v 1.16 2008/11/25 15:36:19 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-cand-01 $
    2828//
    2929//---------------------------------------------------------------------------
     
    5555#include "G4HadronDElasticPhysics.hh"
    5656#include "G4HadronHElasticPhysics.hh"
     57#include "G4ChargeExchangePhysics.hh"
    5758#include "G4IonBinaryCascadePhysics.hh"
    5859#include "G4IonPhysics.hh"
     
    7980   // Hadron Physics
    8081  if(type == "QBBC") {
    81     this->RegisterPhysics( new G4HadronElasticPhysics("hElastic",ver,false,true));
     82    this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,false));
    8283    this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
    8384    this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC"));
    84     this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, true,
    85                 false, false, false, false));
     85    this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false,
     86                true, false, false, false));
    8687
    87   } else if(type == "QBBCG") {
    88     this->RegisterPhysics( new G4HadronElasticPhysics("hElastic",ver,false,true));
     88  } else if(type == "QBBBG") {
     89    this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,true));
     90    this->RegisterPhysics( new G4ChargeExchangePhysics(ver,true));
    8991    this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
    9092    this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC"));
     
    9294                false, false, false, true));
    9395
    94   } else if(type == "QBBC_DEL") {
    95     this->RegisterPhysics( new G4HadronDElasticPhysics(ver,false));
     96  } else if(type == "QBBCG") {
     97    this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,true));
     98    this->RegisterPhysics( new G4ChargeExchangePhysics(ver,true));
    9699    this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
    97100    this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC"));
    98101    this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false,
     102                true, false, false, true));
     103
     104  } else if(type == "QBBCF") {
     105    this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,false));
     106    this->RegisterPhysics( new G4ChargeExchangePhysics(ver,false));
     107    this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
     108    this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC"));
     109    this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, true,
    99110                true, false, false, false));
    100111
    101   } else if(type == "QBBC_HEL") {
    102     this->RegisterPhysics( new G4HadronHElasticPhysics(ver,false));
     112  } else if(type == "QBBC_HP") {
     113    this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,true,false));
    103114    this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
    104115    this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC"));
    105116    this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false,
    106                 true, false, false, false));
    107 
    108   } else if(type == "QBBC_HP") {
    109     this->RegisterPhysics( new G4HadronElasticPhysics("hElastic",ver,true,true));
    110     this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
    111     this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC"));
    112     this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false,
    113                 false, false, true, false));
     117                true, false, true, false));
    114118
    115119  } else {
  • trunk/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc

    r850 r921  
    2424// ********************************************************************
    2525//
    26 // $Id: G4HadronInelasticQBBC.cc,v 1.9 2008/08/05 10:25:00 vnivanch 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 $
    2828//
    2929//---------------------------------------------------------------------------
     
    5757#include "G4QStringChipsParticleLevelInterface.hh"
    5858#include "G4StringChipsInterface.hh"
     59#include "G4GeneratorPrecompoundInterface.hh"
    5960#include "G4QGSMFragmentation.hh"
    6061#include "G4LundStringFragmentation.hh"
     
    7879    chipsFlag(chips), hpFlag(hp), glFlag(glauber), wasActivated(false)
    7980{
    80   if(verbose > -1) G4cout << "### HadronInelasticQBBC" << G4endl;
    81   //  store = G4HadronProcessStore::Instance();
     81  if(verbose > 1) G4cout << "### HadronInelasticQBBC bertFlag= " <<  bertFlag <<G4endl;
    8282  theHPXSecI = 0;
    8383  theHPXSecC = 0;
    8484  theHPXSecF = 0;
    8585  theCascade = 0;
     86  preCompound = 0;
    8687  theCHIPSCascade   = 0;
    8788  theQuasiElastic   = 0;
    8889  theQGStringDecay  = 0;
    8990  theQGStringModel  = 0;
    90   theFTFStringDecay = 0;
    91   theFTFStringModel = 0;
     91  theFTFBStringDecay = 0;
     92  theFTFBStringModel = 0;
     93  theFTFCStringDecay = 0;
     94  theFTFCStringModel = 0;
    9295}
    9396
     
    9598{
    9699  delete theCascade;
     100  delete preCompound;
    97101  delete theCHIPSCascade;
    98102  delete theQuasiElastic;
    99103  delete theQGStringDecay;
    100104  delete theQGStringModel;
    101   delete theFTFStringDecay;
    102   delete theFTFStringModel;
     105  delete theFTFBStringDecay;
     106  delete theFTFCStringDecay;
     107  delete theFTFBStringModel;
     108  delete theFTFCStringModel;
    103109  delete theHPXSecI;
    104110  delete theHPXSecC;
     
    121127
    122128  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;
    128137
    129138  //Binary
     
    143152
    144153  //QGS
    145   theCascade = new G4BinaryCascade;
     154  theCascade = new G4BinaryCascade();
     155  preCompound = new G4GeneratorPrecompoundInterface();
     156
    146157  theCHIPSCascade = new G4QStringChipsParticleLevelInterface;
    147   G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator();
     158  G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator("QGSP");
    148159  theQGStringModel  = new G4QGSModel< G4QGSParticipants >;
    149160  theQGStringDecay  = new G4ExcitedStringDecay(new G4QGSMFragmentation());
    150161  theQGStringModel->SetFragmentationModel(theQGStringDecay);
    151   theQGSModel->SetTransport(theCHIPSCascade);
    152 
    153   theQuasiElastic = new G4QuasiElasticChannel;
     162  theQGSModel->SetTransport(preCompound);
     163
     164  theQuasiElastic = new G4QuasiElasticChannel();
    154165  theQGSModel->SetQuasiElasticChannel(theQuasiElastic);
    155166  theQGSModel->SetHighEnergyGenerator(theQGStringModel);
     
    157168  theQGSModel->SetMaxEnergy(100*TeV);
    158169
    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);
    170192
    171193  theParticleIterator->reset();
     
    205227        hp->AddDataSet(&theXSecP);
    206228
    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);
    209233 
    210234        if(bertFlag) hp->RegisterMe(theBERT);
     
    216240      } else if(pname == "neutron") {
    217241        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);
    220246
    221247        G4HadronCaptureProcess* theNeutronCapture =
     
    260286      } else if(pname == "pi-" || pname == "pi+") {
    261287        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);
    264292
    265293        hp->RegisterMe(theBERT);
     
    274302                pname == "kaon0S"    ||
    275303                pname == "kaon0L") {
    276         hp->RegisterMe(theFTFModel);
     304        hp->RegisterMe(theFTFBModel);
    277305        hp->RegisterMe(theBERT);
    278306        //hp->AddDataSet(new G4UInelasticCrossSection(particle));
     
    284312                pname == "xi0") {
    285313
    286         hp->RegisterMe(theFTFModel);
     314        hp->RegisterMe(theFTFBModel);
    287315        hp->RegisterMe(theBERT);
    288316        //hp->AddDataSet(new G4UInelasticCrossSection(particle));
    289317
    290318      } else if(pname == "anti_proton" || pname == "anti_neutron") {
    291         hp->RegisterMe(theFTFModel);
     319        hp->RegisterMe(theFTFBModel);
    292320        hp->RegisterMe(theCHIPS);
    293321        //hp->AddDataSet(new G4UInelasticCrossSection(particle));
    294322
    295323      } else {
    296         hp->RegisterMe(theFTFModel);
     324        hp->RegisterMe(theFTFBModel);
    297325        hp->RegisterMe(theCHIPS);
    298326        //hp->AddDataSet(new G4UInelasticCrossSection(particle));
Note: See TracChangeset for help on using the changeset viewer.