Ignore:
Timestamp:
Sep 30, 2010, 2:47:17 PM (14 years ago)
Author:
garnier
Message:

tag geant4.9.4 beta 1 + modifs locales

Location:
trunk/examples/advanced/microbeam
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/examples/advanced/microbeam/History

    r1313 r1337  
    11-------------------------------------------------------------------
    2 $Id: History,v 1.25 2010/06/07 03:18:01 sincerti Exp $
     2$Id: History,v 1.28 2010/06/10 09:54:05 vnivanch Exp $
    33-------------------------------------------------------------------
    44
     
    99                       Package History file
    1010                       --------------------
     11
     1210 June 2010 - V.Ivanchenko - tag microbeam-V09-03-06
     13- Added option "ionGasModel" to the Physics List
     14
     1509 June 2010 - J. Perl - tag microbeam-V09-03-05
     16- Have vis.mac disabled by default
     17
     1809 June 2010 - S. Incerti - tag microbeam-V09-03-04
     19- Switched to physics_list library.
     20microbeam.mac adapted.
    1121
    122206 June 2010 - S. Incerti - tag microbeam-V09-03-03
  • trunk/examples/advanced/microbeam/Microbeam.cc

    r807 r1337  
    2525//
    2626// -------------------------------------------------------------------
    27 // $Id: Microbeam.cc,v 1.9 2007/08/28 09:48:40 gcosmo Exp $
     27// $Id: Microbeam.cc,v 1.10 2010/06/09 18:13:46 sincerti Exp $
    2828// -------------------------------------------------------------------
    2929//  GEANT4 - Microbeam example
     
    9090 
    9191  // initialize G4 kernel
    92   runManager->Initialize();
     92  // runManager->Initialize();
    9393   
    9494  // get the pointer to the User Interface manager
  • trunk/examples/advanced/microbeam/README

    r807 r1337  
    11-------------------------------------------------------------------
    2 $Id: README,v 1.10 2007/02/27 12:02:09 sincerti Exp $
     2$Id: README,v 1.11 2010/06/09 18:13:46 sincerti Exp $
    33-------------------------------------------------------------------
    44
     
    1717* e-mail:incerti@cenbg.in2p3.fr
    1818
    19 Last modified by S. Incerti, 27/02/2007
     19Last modified by S. Incerti, 09/06/2010
    2020
    2121---->0. INTRODUCTION.                                                   
     
    128128- a standard Geant4 example GNUmakefile is provided                     
    129129
    130 setup with:                                                             
    131 compiler = gcc-3.2.3
    132 G4SYSTEM = linux-g++                                                   
    133 
    134130The following section gives the necessary environment variables.                     
    135131
     
    178174> $G4WORDIR/bin/Linux-g++/Microbeam
    179175
    180 The macro microbeam.mac is executed by default. To get vizualisation, make
    181 sure to uncomment the /vis/... lines in the microbeam.mac macro.
    182 The Microbeam code reads the phantom.dat file containing all the necessary
    183 information describing the cell phantom. 10 alphas particles are generated.
     176The macro microbeam.mac is executed by default.
     177All visualisation commands are in the vis.mac macro file.
    184178
    185179
    186180---->5. PHYSICS
    187181
    188 Low energy electromagnetic processes (for alphas, electrons, photons) and
    189 hadronic elastic and inelastic scattering for alphas are activated by default.
    190 Low energy electromagnetic electronic and nuclear stopping power are computed
    191 from ICRU tables.
    192        
     182Livermore, Binary and Binary_ion physics lists are used by default,
     183see microbeam.mac
    193184
    194185---->6. SIMULATION OUTPUT AND RESULT ANALYZIS                                   
  • trunk/examples/advanced/microbeam/include/MicrobeamPhysicsList.hh

    r807 r1337  
    2424// ********************************************************************
    2525//
    26 // -------------------------------------------------------------------
    27 // $Id: MicrobeamPhysicsList.hh,v 1.5 2006/06/29 16:05:09 gunter Exp $
    28 // -------------------------------------------------------------------
     26//
     27// $Id: MicrobeamPhysicsList.hh,v 1.7 2010/06/10 09:54:05 vnivanch Exp $
     28// GEANT4 tag $Name: geant4-09-04-beta-01 $
     29//
     30//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     31//
     32// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList
     33//
     34//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     35//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    2936
    3037#ifndef MicrobeamPhysicsList_h
    3138#define MicrobeamPhysicsList_h 1
    3239
    33 #include "G4VUserPhysicsList.hh"
     40#include "G4VModularPhysicsList.hh"
     41#include "globals.hh"
    3442
    35 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     43class G4VPhysicsConstructor;
     44class G4StepLimiter;
     45class MicrobeamPhysicsListMessenger;
    3646
    37 class MicrobeamPhysicsList: public G4VUserPhysicsList
     47//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     48
     49class MicrobeamPhysicsList: public G4VModularPhysicsList
    3850{
    3951public:
     52
    4053  MicrobeamPhysicsList();
    41   ~MicrobeamPhysicsList();
     54  virtual ~MicrobeamPhysicsList();
     55
     56  void ConstructParticle();
     57   
     58  void SetCuts();
     59  void SetCutForGamma(G4double);
     60  void SetCutForElectron(G4double);
     61  void SetCutForPositron(G4double);
     62       
     63  void AddPhysicsList(const G4String& name);
     64  void ConstructProcess();
     65   
     66  void AddStepMax();       
     67  G4StepLimiter* GetStepMaxProcess() {return stepMaxProcess;};
    4268
    4369private:
    44  
     70
     71  void AddIonGasModels();
     72
    4573  G4double cutForGamma;
    4674  G4double cutForElectron;
    4775  G4double cutForPositron;
    48  
    49 protected:
    50  
    51   void ConstructParticle();
    52   void ConstructBosons();
    53   void ConstructLeptons();
    54   void ConstructBaryons();
    5576
    56   void ConstructProcess();
    57   void ConstructEM();
    58   void ConstructHad();
    59   void ConstructGeneral();
    60   void SetCuts();
    61  
     77  G4bool helIsRegisted;
     78  G4bool bicIsRegisted;
     79  G4bool biciIsRegisted;
     80   
     81  G4String                             emName;
     82  G4VPhysicsConstructor*               emPhysicsList;
     83  G4VPhysicsConstructor*               decPhysicsList;
     84  std::vector<G4VPhysicsConstructor*>  hadronPhys;
     85   
     86  G4StepLimiter* stepMaxProcess;
     87
     88  MicrobeamPhysicsListMessenger* pMessenger;
    6289};
     90
     91//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     92
    6393#endif
    6494
    65 
    66 
  • trunk/examples/advanced/microbeam/microbeam.mac

    r1313 r1337  
    11/tracking/storeTrajectory 1
    22
    3 /control/execute vis.mac
     3/microbeam/phys/addPhysics emlivermore
     4/microbeam/phys/addPhysics binary
     5/microbeam/phys/addPhysics binary_ion
     6
     7/run/initialize
     8
     9/process/inactivate nuclearStopping
     10
     11# Uncomment this line of you want visualization
     12#/control/execute vis.mac
    413
    514/tracking/verbose 0
  • trunk/examples/advanced/microbeam/microbeam.out

    r1313 r1337  
    55
    66*************************************************************
    7  Geant4 version Name: geant4-09-03-ref-04    (9-April-2010)
     7 Geant4 version Name: geant4-09-03-ref-06    (25-June-2010)
    88                      Copyright : Geant4 Collaboration
    99                      Reference : NIM A 506 (2003), 250-303
     
    1111*************************************************************
    1212
    13 Visualization Manager instantiating...
     13Visualization Manager instantiating with verbosity "warnings (3)"...
    1414Visualization Manager initialising...
    1515Registering graphics systems...
     
    2525  VRML2FILE (VRML2FILE)
    2626  gMocrenFile (gMocrenFile)
     27  OpenGLStoredX (OGL)
     28  OpenGLImmediateX (OGLI)
     29  OpenGLStoredX (OGLS)
    2730  OpenGLImmediateX (OGLIX)
    2831  OpenGLStoredX (OGLSX)
     
    132135 ==========> The phantom contains 53480 voxels
    133136
    134 MicrobeamPhysicsList::SetCuts:CutLength : 10 nm
     137### G4GoudsmitSaundersonTable loading PDF data
     138### G4GoudsmitSaundersonMscModel loading ELSEPA data
     139G4NeutronInelasticXS::G4NeutronInelasticXS: Initialise
     140G4NeutronCaptureXS::G4NeutronCaptureXS: Initialise
     141PhysicsList::SetCuts:CutLength : 10 nm
     142G4ProcessTable::Insert : arguments are 0 pointer
     143G4ProcessTable::Insert : arguments are 0 pointer
     144G4ProcessTable::Insert : arguments are 0 pointer
     145G4ProcessTable::Insert : arguments are 0 pointer
    135146
    136147phot:   for  gamma    SubType= 12
    137148      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    138  LivermorePhElectric :     Emin=          0 eV         Emax=   100 GeV
    139        PhotoElectric :     Emin=        100 GeV        Emax=   10 TeV
     149 LivermorePhElectric :     Emin=          0 eV         Emax=   1 GeV
     150       PhotoElectric :     Emin=          1 GeV        Emax=   10 TeV
    140151
    141152compt:   for  gamma    SubType= 13
    142       Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
    143       ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    144     LivermoreCompton :     Emin=          0 eV         Emax=   100 GeV
    145        Klein-Nishina :     Emin=        100 GeV        Emax=   10 TeV
     153      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
     154      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     155    LivermoreCompton :     Emin=          0 eV         Emax=   1 GeV
     156       Klein-Nishina :     Emin=          1 GeV        Emax=   10 TeV
    146157
    147158conv:   for  gamma    SubType= 14
    148       Lambda tables from 1.022 MeV to 10 TeV in 77 bins, spline: 1
    149       ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    150  LivermoreConversion :     Emin=          0 eV         Emax=   100 GeV
    151        Bethe-Heitler :     Emin=        100 GeV        Emax=   10 TeV
     159      Lambda tables from 1.022 MeV to 10 TeV in 220 bins, spline: 1
     160      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     161 LivermoreConversion :     Emin=          0 eV         Emax=   1 GeV
     162       Bethe-Heitler :     Emin=          1 GeV        Emax=   10 TeV
    152163
    153164Rayl:   for  gamma    SubType= 11
    154165      Lambda tables from 100 eV  to 10 TeV in 200 bins, spline: 1
    155166      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    156    LivermoreRayleigh :     Emin=          0 eV         Emax=   100 GeV
     167   LivermoreRayleigh :     Emin=          0 eV         Emax=   1 GeV
     168   LivermoreRayleigh :     Emin=          1 GeV        Emax=   100 GeV
    157169
    158170msc:   for e-    SubType= 10
    159       Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
     171      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
    160172      RangeFactor= 0.04, stepLimitType: 2, latDisplacement: 1, skin= 1, geomFactor= 2.5
    161173      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    162           UrbanMsc92 :     Emin=          0 eV         Emax=   10 TeV
     174  GoudsmitSaunderson :     Emin=          0 eV         Emax=   10 TeV
    163175
    164176eIoni:   for  e-    SubType= 2
    165       dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
    166       Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
     177      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     178      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
    167179      finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
    168180      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    169        LowEnergyIoni :     Emin=          0 eV         Emax=   100 GeV
    170         MollerBhabha :     Emin=        100 GeV        Emax=   10 TeV
     181       LowEnergyIoni :     Emin=          0 eV         Emax=   1 MeV
     182        MollerBhabha :     Emin=          1 MeV        Emax=   10 TeV
    171183
    172184eBrem:   for  e-    SubType= 3
    173       dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
    174       Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
     185      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     186      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
    175187      LPM flag: 1 for E > 1 GeV
    176188      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    177            LowEnBrem :     Emin=          0 eV         Emax=   100 GeV
    178             eBremRel :     Emin=        100 GeV        Emax=   10 TeV
     189           LowEnBrem :     Emin=          0 eV         Emax=   1 GeV
     190            eBremRel :     Emin=          1 GeV        Emax=   10 TeV
    179191
    180192eIoni:   for  e+    SubType= 2
    181       dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
    182       Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
     193      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     194      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
    183195      finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
    184196      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     
    186198
    187199eBrem:   for  e+    SubType= 3
    188       dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
    189       Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
     200      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     201      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
    190202      LPM flag: 1 for E > 1 GeV
    191203      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     
    194206
    195207annihil:   for  e+    SubType= 5
    196       Lambda tables from 100 eV  to 10 TeV in 77 bins, spline: 1
     208      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
    197209      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    198210            eplus2gg :     Emin=          0 eV         Emax=   10 TeV
     211
     212msc:   for proton    SubType= 10
     213      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
     214      RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
     215      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     216          UrbanMsc90 :     Emin=          0 eV         Emax=   10 TeV
     217
     218hIoni:   for  proton    SubType= 2
     219      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     220      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     221      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     222      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     223               Bragg :     Emin=          0 eV         Emax=   2 MeV
     224          BetheBloch :     Emin=          2 MeV        Emax=   10 TeV
     225
     226hBrems:   for  proton    SubType= 3
     227      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     228      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     229      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     230               hBrem :     Emin=          0 eV         Emax=   10 TeV
     231
     232hPairProd:   for  proton    SubType= 4
     233      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     234      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     235      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     236           hPairProd :     Emin=          0 eV         Emax=   10 TeV
    199237
    200238msc:   for GenericIon    SubType= 10
     
    204242
    205243ionIoni:   for  GenericIon    SubType= 2
    206       dE/dx and range tables from 100 eV  to 10 TeV in 77 bins
    207       Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
    208       finalRange(mm)= 0.02, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
     244      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     245      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     246      finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02
    209247      Stopping Power data for 17 ion/material pairs, nuclearStopping: 1
    210248      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
    211249         ParamICRU73 :     Emin=          0 eV         Emax=   10 TeV
     250
     251nuclearStopping:   for  GenericIon    SubType= 1
     252      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     253   ICRU49NucStopping :     Emin=          0 eV         Emax=   10 TeV
     254
     255nuclearStopping:   for  alpha    SubType= 1
     256      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     257   ICRU49NucStopping :     Emin=          0 eV         Emax=   10 TeV
     258
     259hIoni:   for  anti_proton    SubType= 2
     260      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     261      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     262      finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     263      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     264            ICRU73QO :     Emin=          0 eV         Emax=   2 MeV
     265          BetheBloch :     Emin=          2 MeV        Emax=   10 TeV
     266
     267hIoni:   for  kaon+    SubType= 2
     268      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     269      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     270      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     271      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     272               Bragg :     Emin=          0 eV         Emax=   1.05231 MeV
     273          BetheBloch :     Emin=    1.05231 MeV        Emax=   10 TeV
     274
     275hBrems:   for  kaon+    SubType= 3
     276      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     277      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     278      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     279               hBrem :     Emin=          0 eV         Emax=   10 TeV
     280
     281hPairProd:   for  kaon+    SubType= 4
     282      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     283      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     284      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     285           hPairProd :     Emin=          0 eV         Emax=   10 TeV
     286
     287hIoni:   for  kaon-    SubType= 2
     288      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     289      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     290      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     291      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     292            ICRU73QO :     Emin=          0 eV         Emax=   1.05231 MeV
     293          BetheBloch :     Emin=    1.05231 MeV        Emax=   10 TeV
     294
     295hBrems:   for  kaon-    SubType= 3
     296      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     297      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     298      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     299               hBrem :     Emin=          0 eV         Emax=   10 TeV
     300
     301hPairProd:   for  kaon-    SubType= 4
     302      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     303      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     304      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     305           hPairProd :     Emin=          0 eV         Emax=   10 TeV
     306
     307muMsc:   for mu+    SubType= 10
     308      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
     309      RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 11.4592
     310      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     311        WentzelVIUni :     Emin=          0 eV         Emax=   10 TeV
     312
     313muIoni:   for  mu+    SubType= 2
     314      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     315      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     316      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     317      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     318               Bragg :     Emin=          0 eV         Emax=   200 keV
     319          BetheBloch :     Emin=        200 keV        Emax=   1 GeV
     320        MuBetheBloch :     Emin=          1 GeV        Emax=   10 TeV
     321
     322muBrems:   for  mu+    SubType= 3
     323      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     324      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     325      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     326              MuBrem :     Emin=          0 eV         Emax=   10 TeV
     327
     328muPairProd:   for  mu+    SubType= 4
     329      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     330      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     331      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     332          muPairProd :     Emin=          0 eV         Emax=   10 TeV
     333
     334CoulombScat:   for  mu+    SubType= 1
     335      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
     336      11.4592 < Theta(degree) < 180, Eth(MeV)= 10; pLimit(GeV^1)= 0.139531
     337      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     338  eCoulombScattering :     Emin=          0 eV         Emax=   10 TeV
     339
     340muIoni:   for  mu-    SubType= 2
     341      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     342      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     343      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     344      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     345            ICRU73QO :     Emin=          0 eV         Emax=   200 keV
     346          BetheBloch :     Emin=        200 keV        Emax=   1 GeV
     347        MuBetheBloch :     Emin=          1 GeV        Emax=   10 TeV
     348
     349muBrems:   for  mu-    SubType= 3
     350      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     351      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     352      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     353              MuBrem :     Emin=          0 eV         Emax=   10 TeV
     354
     355muPairProd:   for  mu-    SubType= 4
     356      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     357      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     358      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     359          muPairProd :     Emin=          0 eV         Emax=   10 TeV
     360
     361CoulombScat:   for  mu-    SubType= 1
     362      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
     363      11.4592 < Theta(degree) < 180, Eth(MeV)= 10; pLimit(GeV^1)= 0.139531
     364      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     365  eCoulombScattering :     Emin=          0 eV         Emax=   10 TeV
     366G4NeutronInelasticXS::BuildPhysicsTable:
     367neutron
     368G4NEUTRONXSDATA environment variable not set
     369G4NeutronCaptureXS::BuildPhysicsTable:
     370neutron
     371G4NEUTRONXSDATA environment variable not set
     372
     373hIoni:   for  pi+    SubType= 2
     374      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     375      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     376      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     377      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     378               Bragg :     Emin=          0 eV         Emax=   297.504 keV
     379          BetheBloch :     Emin=    297.504 keV        Emax=   10 TeV
     380
     381hBrems:   for  pi+    SubType= 3
     382      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     383      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     384      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     385               hBrem :     Emin=          0 eV         Emax=   10 TeV
     386
     387hPairProd:   for  pi+    SubType= 4
     388      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     389      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     390      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     391           hPairProd :     Emin=          0 eV         Emax=   10 TeV
     392
     393msc:   for pi-    SubType= 10
     394      Lambda tables from 100 eV  to 10 TeV in 220 bins, spline: 1
     395      RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1
     396      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     397          UrbanMsc90 :     Emin=          0 eV         Emax=   10 TeV
     398
     399hIoni:   for  pi-    SubType= 2
     400      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     401      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     402      finalRange(mm)= 0.05, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
     403      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     404            ICRU73QO :     Emin=          0 eV         Emax=   297.504 keV
     405          BetheBloch :     Emin=    297.504 keV        Emax=   10 TeV
     406
     407hBrems:   for  pi-    SubType= 3
     408      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     409      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     410      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     411               hBrem :     Emin=          0 eV         Emax=   10 TeV
     412
     413hPairProd:   for  pi-    SubType= 4
     414      dE/dx and range tables from 100 eV  to 10 TeV in 220 bins
     415      Lambda tables from threshold to 10 TeV in 220 bins, spline: 1
     416      ===== EM models for the G4Region  DefaultRegionForTheWorld ======
     417           hPairProd :     Emin=          0 eV         Emax=   10 TeV
    212418============================================================================================
    213419             HADRONIC PROCESSES SUMMARY (verbose level 1)
     420
     421                     Hadronic Processes for <anti_neutron>
     422          CHIPS_Inelastic
     423
     424                     Hadronic Processes for <anti_proton>
     425          CHIPS_Inelastic
     426
     427                     Hadronic Processes for <kaon+>
     428          hInelastic  Models:                      FTFP: Emin(GeV)=     4  Emax(GeV)= 100000
     429                                        Bertini Cascade: Emin(GeV)=     0  Emax(GeV)= 5
     430
     431                     Hadronic Processes for <kaon->
     432          hInelastic  Models:                      FTFP: Emin(GeV)=     4  Emax(GeV)= 100000
     433                                        Bertini Cascade: Emin(GeV)=     0  Emax(GeV)= 5
     434
     435                     Hadronic Processes for <lambda>
     436          hInelastic  Models:                      FTFP: Emin(GeV)=     4  Emax(GeV)= 100000
     437                                        Bertini Cascade: Emin(GeV)=     0  Emax(GeV)= 5
     438
     439                     Hadronic Processes for <neutron>
     440          hInelastic  Models:                      QGSP: Emin(GeV)=  12.5  Emax(GeV)= 100000
     441                                                   FTFP: Emin(GeV)=     4  Emax(GeV)= 25
     442                                        Bertini Cascade: Emin(GeV)=     1  Emax(GeV)= 5
     443                                         Binary Cascade: Emin(GeV)=     0  Emax(GeV)= 1.5
     444            nCapture  Models:               nRadCapture: Emin(GeV)=     0  Emax(GeV)= 100000
     445
     446                     Hadronic Processes for <pi+>
     447          hInelastic  Models:                      QGSP: Emin(GeV)=  12.5  Emax(GeV)= 100000
     448                                                   FTFP: Emin(GeV)=     4  Emax(GeV)= 25
     449                                        Bertini Cascade: Emin(GeV)=     0  Emax(GeV)= 5
     450
     451                     Hadronic Processes for <pi->
     452          hInelastic  Models:                      QGSP: Emin(GeV)=  12.5  Emax(GeV)= 100000
     453                                                   FTFP: Emin(GeV)=     4  Emax(GeV)= 25
     454                                        Bertini Cascade: Emin(GeV)=     0  Emax(GeV)= 5
     455
     456                     Hadronic Processes for <proton>
     457          hInelastic  Models:                      QGSP: Emin(GeV)=  12.5  Emax(GeV)= 100000
     458                                                   FTFP: Emin(GeV)=     4  Emax(GeV)= 25
     459                                        Bertini Cascade: Emin(GeV)=     1  Emax(GeV)= 5
     460                                         Binary Cascade: Emin(GeV)=     0  Emax(GeV)= 1.5
    214461============================================================================================
    215462
     
    312559   ===> Sorry, the incident alpha particle has missed the targeted cell !
    313560
    314 G4VisManager: Using G4TrajectoryDrawByCharge as default trajectory model.
    315 See commands in /vis/modeling/trajectories/ for other options.
    316 Trajectory drawing configuration will be based on imode value of 50
    317 WARNING: G4VisManager::IsValidView(): Attempt to draw when no graphics system
    318   has been instantiated.  Use "/vis/open" or "/vis/sceneHandler/create".
    319   Alternatively, to avoid this message, suppress instantiation of vis
    320   manager (G4VisExecutive), possibly by setting G4VIS_NONE, and ensure
    321   drawing code is executed only if G4VVisManager::GetConcreteInstance()
    322   is non-zero.
    323561-> Event # 2 generated
    324562   ===> Sorry, the incident alpha particle has missed the targeted cell !
     
    335573-> Event # 6 generated
    336574   ===> The incident alpha particle has reached the targeted cell :
    337    -----> total absorbed dose within Nucleus   is (Gy) = 0.36355394124985
    338    -----> total absorbed dose within Cytoplasm is (Gy) = 0.05491229519248
     575   -----> total absorbed dose within Nucleus   is (Gy) = 0.32255533337593
     576   -----> total absorbed dose within Cytoplasm is (Gy) = 0.022024262696505
    339577
    340578-> Event # 7 generated
     
    348586
    349587-> Event # 10 generated
    350    ===> The incident alpha particle has reached the targeted cell :
    351    -----> total absorbed dose within Nucleus   is (Gy) = 0.33644217252731
    352    -----> total absorbed dose within Cytoplasm is (Gy) = 0.084216192364693
     588   ===> Sorry, the incident alpha particle has missed the targeted cell !
    353589
    354590ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer.
    355 -> Total number of particles detected by the gas detector : 2
     591-> Total number of particles detected by the gas detector : 1
    356592
    357593Idle> Graphics systems deleted.
  • trunk/examples/advanced/microbeam/src/MicrobeamEventAction.cc

    r807 r1337  
    2525//
    2626// -------------------------------------------------------------------
    27 // $Id: MicrobeamEventAction.cc,v 1.6 2006/06/29 16:05:29 gunter Exp $
     27// $Id: MicrobeamEventAction.cc,v 1.8 2010/06/07 03:18:01 sincerti Exp $
    2828// -------------------------------------------------------------------
    2929
    3030#include "G4Event.hh"
    31 #include "G4TrajectoryContainer.hh"
    32 #include "G4Trajectory.hh"
    33 #include "G4VVisManager.hh"
    3431#include "Randomize.hh"
    3532
     
    6057//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    6158
    62 void MicrobeamEventAction::EndOfEventAction(const G4Event* evt)
     59void MicrobeamEventAction::EndOfEventAction(const G4Event* )
    6360
    6461 
     
    8178        G4cout << G4endl;
    8279}
    83 
    84 
    85 if (G4VVisManager::GetConcreteInstance())
    86     {
    87       G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer();
    88       G4int n_trajectories = 0;
    89       if (trajectoryContainer) n_trajectories = trajectoryContainer->entries();
    90      
    91       for (G4int i=0; i<n_trajectories; i++)
    92         {
    93           //G4cout<< "Iteration" << i <<G4endl;
    94           G4Trajectory* trj = (G4Trajectory*)((*(evt->GetTrajectoryContainer()))[i]);
    95           if (drawFlag == "all")
    96             {
    97               trj->DrawTrajectory(50);
    98             }
    99           else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.))       
    100             {
    101               trj->DrawTrajectory(50);
    102             }
    103         }
    104 
    105             //save rndm status
    106      
    107       /*
    108       if (Run->GetRndmFreq() == 2)
    109         {
    110           HepRandom::saveEngineStatus("endOfEvent.rndm");   
    111           G4int evtNb = evt->GetEventID();
    112           if (evtNb%printModulo == 0)
    113             {
    114               //G4cout << "\n---> End of Event: " << evtNb << G4endl;
    115               //HepRandom::showEngineStatus();
    116             }
    117         }
    118       */   
    119     }
    120 
    12180}
  • trunk/examples/advanced/microbeam/src/MicrobeamPhantomConfiguration.cc

    r1230 r1337  
    2525//
    2626// -------------------------------------------------------------------
    27 // $Id: MicrobeamPhantomConfiguration.cc,v 1.6 2008/06/16 07:46:11 sincerti Exp $
     27// $Id: MicrobeamPhantomConfiguration.cc,v 1.9 2010/06/25 09:41:03 gunter Exp $
    2828// -------------------------------------------------------------------
    2929
     
    5555
    5656  G4int ncols;
    57   G4float vx, vy, vz, tmp, mat, den, density;
     57  G4float vx, vy, vz, tmp, density;
     58  G4int den, mat;
    5859  G4float denCyto1, denCyto2, denCyto3, denNucl1, denNucl2, denNucl3;
    5960  FILE* fMap;
     
    6768  nucleusMass=0;
    6869  cytoplasmMass=0;
     70  density=0;
    6971
    7072  // READ PHANTOM PARAMETERS
     
    8385  for (G4int i=0; i<phantomTotalPixels; i++)
    8486  {
    85     ncols = fscanf(fMap,"%f %f %f %f %f %f",&vx, &vy, &vz, &mat, &den, &tmp);
     87    ncols = fscanf(fMap,"%f %f %f %i %i %f",&vx, &vy, &vz, &mat, &den, &tmp);
    8688
    87     if (mat==2) // NUCLEUS
     89    if (std::abs(mat-2)<1.e-30) // NUCLEUS
    8890        {
    89           if (den==1) density = denNucl1*(g/cm3);
    90           if (den==2) density = denNucl2*(g/cm3);
    91           if (den==3) density = denNucl3*(g/cm3);
     91          if (std::abs(den-1)<1.e-30) density = denNucl1*(g/cm3);
     92          if (std::abs(den-2)<1.e-30) density = denNucl2*(g/cm3);
     93          if (std::abs(den-3)<1.e-30) density = denNucl3*(g/cm3);
    9294          nucleusMass   = nucleusMass   + density * dx * dy * dz ;
    9395        }
    9496
    95     if (mat==1) // CYTOPLASM
     97    if (std::abs(mat-1)<1.e-30) // CYTOPLASM
    9698        {
    97           if (den==1) density = denCyto1*(g/cm3);
    98           if (den==2) density = denCyto2*(g/cm3);
    99           if (den==3) density = denCyto3*(g/cm3);
     99          if (std::abs(den-1)<1e-30) density = denCyto1*(g/cm3);
     100          if (std::abs(den-2)<1e-30) density = denCyto2*(g/cm3);
     101          if (std::abs(den-3)<1e-30) density = denCyto3*(g/cm3);
    100102          cytoplasmMass = cytoplasmMass + density * dx * dy * dz ;
    101103        }
  • trunk/examples/advanced/microbeam/src/MicrobeamPhysicsList.cc

    r1230 r1337  
    2424// ********************************************************************
    2525//
    26 // -------------------------------------------------------------------
    27 // $Id: MicrobeamPhysicsList.cc,v 1.8 2009/04/30 10:23:57 sincerti Exp $
    28 // -------------------------------------------------------------------
    29 
    30 #include "G4ParticleDefinition.hh"
     26// $Id: MicrobeamPhysicsList.cc,v 1.10 2010/06/10 09:54:05 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-04-beta-01 $
     28//
     29//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     30//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     31
     32#include "MicrobeamPhysicsList.hh"
     33#include "MicrobeamPhysicsListMessenger.hh"
     34
     35#include "G4StepLimiter.hh"
     36
     37#include "G4EmStandardPhysics.hh"
     38#include "G4EmStandardPhysics_option1.hh"
     39#include "G4EmStandardPhysics_option2.hh"
     40#include "G4EmStandardPhysics_option3.hh"
     41#include "G4EmLivermorePhysics.hh"
     42#include "G4EmPenelopePhysics.hh"
     43
     44#include "G4DecayPhysics.hh"
     45
     46#include "G4HadronElasticPhysics.hh"
     47#include "G4HadronDElasticPhysics.hh"
     48#include "G4HadronHElasticPhysics.hh"
     49#include "G4HadronQElasticPhysics.hh"
     50#include "G4HadronInelasticQBBC.hh"
     51#include "G4IonBinaryCascadePhysics.hh"
     52
     53#include "G4LossTableManager.hh"
     54#include "G4EmConfigurator.hh"
     55#include "G4UnitsTable.hh"
     56
    3157#include "G4ProcessManager.hh"
    32 #include "G4ParticleTypes.hh"
    33 #include "G4StepLimiter.hh"
    34 #include "G4BaryonConstructor.hh"                     
    35 #include "G4IonConstructor.hh"   
    36 #include "G4MesonConstructor.hh"         
    37 
    38 #include "MicrobeamPhysicsList.hh"
    39 
    40 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    41 
    42 MicrobeamPhysicsList::MicrobeamPhysicsList():  G4VUserPhysicsList()
    43 {
     58#include "G4Decay.hh"
     59
     60#include "G4IonFluctuations.hh"
     61#include "G4IonParametrisedLossModel.hh"
     62
     63#include "G4BraggIonGasModel.hh"
     64#include "G4BetheBlochIonGasModel.hh"
     65
     66//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     67
     68MicrobeamPhysicsList::MicrobeamPhysicsList() : G4VModularPhysicsList()
     69{
     70  G4LossTableManager::Instance();
    4471  defaultCutValue = 0.01*micrometer;
    4572  cutForGamma     = defaultCutValue;
    4673  cutForElectron  = defaultCutValue;
    4774  cutForPositron  = defaultCutValue;
     75
     76  helIsRegisted  = false;
     77  bicIsRegisted  = false;
     78  biciIsRegisted = false;
     79
     80  pMessenger = new MicrobeamPhysicsListMessenger(this);
     81
    4882  SetVerboseLevel(1);
    49 }
    50 
    51 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     83
     84  // EM physics
     85  emName = G4String("emstandard_opt0"); 
     86
     87  emPhysicsList = new G4EmStandardPhysics(1);
     88
     89  // Deacy physics and all particles
     90  decPhysicsList = new G4DecayPhysics();
     91}
     92
     93//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    5294
    5395MicrobeamPhysicsList::~MicrobeamPhysicsList()
    54 {}
    55 
    56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     96{
     97  delete pMessenger;
     98  delete emPhysicsList;
     99  delete decPhysicsList;
     100  for(size_t i=0; i<hadronPhys.size(); i++) {delete hadronPhys[i];}
     101}
     102
     103//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    57104
    58105void MicrobeamPhysicsList::ConstructParticle()
    59106{
    60   ConstructBosons();
    61   ConstructLeptons();
    62   ConstructBaryons();
    63 }
    64 
    65 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    66 
    67 void MicrobeamPhysicsList::ConstructBosons()
    68 {
    69   // gamma
    70   G4Gamma::GammaDefinition();
    71 
    72   // optical photon
    73   G4OpticalPhoton::OpticalPhotonDefinition();
    74 }
    75  //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    76 
    77 void MicrobeamPhysicsList::ConstructLeptons()
    78 {
    79   // leptons
    80   G4Electron::ElectronDefinition();
    81   G4Positron::PositronDefinition();
    82 }
    83 
    84 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    85 
    86 void MicrobeamPhysicsList::ConstructBaryons()
    87 {
    88   //  baryons
    89   G4BaryonConstructor bConstructor;
    90   bConstructor.ConstructParticle();
    91 
    92   G4IonConstructor iConstructor;
    93   iConstructor.ConstructParticle();
    94 
    95   G4MesonConstructor mConstructor;
    96   mConstructor.ConstructParticle();
    97 }
    98 
    99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     107  decPhysicsList->ConstructParticle();
     108}
     109
     110//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    100111
    101112void MicrobeamPhysicsList::ConstructProcess()
    102113{
     114  // transportation
     115  //
    103116  AddTransportation();
    104   ConstructEM();
    105   ConstructHad();
    106   ConstructGeneral();
    107 }
    108 
    109 // *** Processes and models
    110 
    111 // gamma
    112 
    113 #include "G4PhotoElectricEffect.hh"
    114 #include "G4LivermorePhotoElectricModel.hh"
    115 
    116 #include "G4ComptonScattering.hh"
    117 #include "G4LivermoreComptonModel.hh"
    118 
    119 #include "G4GammaConversion.hh"
    120 #include "G4LivermoreGammaConversionModel.hh"
    121 
    122 #include "G4RayleighScattering.hh"
    123 #include "G4LivermoreRayleighModel.hh"
    124 
    125 // e-
    126 
    127 #include "G4eMultipleScattering.hh"
    128 #include "G4UniversalFluctuation.hh"
    129 
    130 #include "G4eIonisation.hh"
    131 #include "G4LivermoreIonisationModel.hh"
    132 
    133 #include "G4eBremsstrahlung.hh"
    134 #include "G4LivermoreBremsstrahlungModel.hh"
    135 
    136 // e+
    137 
    138 #include "G4eplusAnnihilation.hh"
    139 
    140 // mu
    141 
    142 #include "G4MuIonisation.hh"
    143 #include "G4MuBremsstrahlung.hh"
    144 #include "G4MuPairProduction.hh"
    145 
    146 // hadrons
    147 
    148 #include "G4hMultipleScattering.hh"
    149 #include "G4MscStepLimitType.hh"
    150 
    151 #include "G4hBremsstrahlung.hh"
    152 #include "G4hPairProduction.hh"
    153 
    154 #include "G4hIonisation.hh"
    155 #include "G4ionIonisation.hh"
    156 #include "G4IonParametrisedLossModel.hh"
    157 
    158 //
    159 
    160 #include "G4LossTableManager.hh"
    161 #include "G4EmProcessOptions.hh"
    162 
    163 
    164 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    165 
    166 void MicrobeamPhysicsList::ConstructEM()
    167 {
     117 
     118  // electromagnetic physics list
     119  //
     120  emPhysicsList->ConstructProcess();
     121
     122  // decay physics list
     123  //
     124  decPhysicsList->ConstructProcess();
     125 
     126  // hadronic physics lists
     127  for(size_t i=0; i<hadronPhys.size(); i++) {
     128    hadronPhys[i]->ConstructProcess();
     129  }
     130
     131  // step limitation (as a full process)
     132  // 
     133  AddStepMax(); 
     134 
     135}
     136
     137//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     138
     139void MicrobeamPhysicsList::AddPhysicsList(const G4String& name)
     140{
     141  if (verboseLevel>1) {
     142    G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
     143  }
     144
     145  if (name == emName) return;
     146
     147  if (name == "emstandard_opt0") {
     148
     149    emName = name;
     150    delete emPhysicsList;
     151    emPhysicsList = new G4EmStandardPhysics(1);
     152
     153  } else if (name == "emstandard_opt1") {
     154
     155    emName = name;
     156    delete emPhysicsList;
     157    emPhysicsList = new G4EmStandardPhysics_option1();
     158
     159  } else if (name == "emstandard_opt2") {
     160
     161    emName = name;
     162    delete emPhysicsList;
     163    emPhysicsList = new G4EmStandardPhysics_option2();
     164   
     165  } else if (name == "emstandard_opt3") {
     166
     167    emName = name;
     168    delete emPhysicsList;
     169    emPhysicsList = new G4EmStandardPhysics_option3();   
     170
     171  } else if (name == "emlivermore") {
     172    emName = name;
     173    delete emPhysicsList;
     174    emPhysicsList = new G4EmLivermorePhysics();
     175
     176  } else if (name == "empenelope") {
     177    emName = name;
     178    delete emPhysicsList;
     179    emPhysicsList = new G4EmPenelopePhysics();
     180
     181  } else if (name == "ionGasModels") {
     182
     183    AddPhysicsList("emstandard_opt3");
     184    emName = name;
     185    AddIonGasModels();
     186
     187  } else if (name == "elastic" && !helIsRegisted) {
     188    hadronPhys.push_back( new G4HadronElasticPhysics());
     189    helIsRegisted = true;
     190
     191  } else if (name == "DElastic" && !helIsRegisted) {
     192    hadronPhys.push_back( new G4HadronDElasticPhysics());
     193    helIsRegisted = true;
     194
     195  } else if (name == "HElastic" && !helIsRegisted) {
     196    hadronPhys.push_back( new G4HadronHElasticPhysics());
     197    helIsRegisted = true;
     198
     199  } else if (name == "QElastic" && !helIsRegisted) {
     200    hadronPhys.push_back( new G4HadronQElasticPhysics());
     201    helIsRegisted = true;
     202
     203  } else if (name == "binary" && !bicIsRegisted) {
     204    hadronPhys.push_back(new G4HadronInelasticQBBC());
     205    bicIsRegisted = true;
     206
     207  } else if (name == "binary_ion" && !biciIsRegisted) {
     208    hadronPhys.push_back(new G4IonBinaryCascadePhysics());
     209    biciIsRegisted = true;
     210
     211  } else {
     212
     213    G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
     214           << " is not defined"
     215           << G4endl;
     216  }
     217}
     218
     219
     220//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     221
     222void MicrobeamPhysicsList::AddStepMax()
     223{
     224  // Step limitation seen as a process
     225  stepMaxProcess = new G4StepLimiter();
     226
    168227  theParticleIterator->reset();
    169 
    170   while( (*theParticleIterator)() ){
    171 
     228  while ((*theParticleIterator)()){
    172229    G4ParticleDefinition* particle = theParticleIterator->value();
    173230    G4ProcessManager* pmanager = particle->GetProcessManager();
    174     G4String particleName = particle->GetParticleName();
    175 
    176     if (particleName == "gamma") {
    177 
    178 
    179       G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
    180       G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel = new G4LivermorePhotoElectricModel();
    181       thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
    182       pmanager->AddDiscreteProcess(thePhotoElectricEffect);
    183 
    184       G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
    185       G4LivermoreComptonModel* theLivermoreComptonModel = new G4LivermoreComptonModel();
    186       theComptonScattering->AddEmModel(0, theLivermoreComptonModel);
    187       pmanager->AddDiscreteProcess(theComptonScattering);
    188 
    189       G4GammaConversion* theGammaConversion = new G4GammaConversion();
    190       G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel = new G4LivermoreGammaConversionModel();
    191       theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
    192       pmanager->AddDiscreteProcess(theGammaConversion);
    193 
    194       G4RayleighScattering* theRayleigh = new G4RayleighScattering();
    195       G4LivermoreRayleighModel* theRayleighModel = new G4LivermoreRayleighModel();
    196       theRayleigh->AddEmModel(0, theRayleighModel);
    197       pmanager->AddDiscreteProcess(theRayleigh);
    198      
    199       pmanager->AddProcess(new G4StepLimiter(), -1, -1, 5);
    200      
    201     } else if (particleName == "e-") {
    202      
    203       G4eMultipleScattering* msc = new G4eMultipleScattering();
    204       msc->SetStepLimitType(fUseDistanceToBoundary);
    205       pmanager->AddProcess(msc,                   -1, 1, 1);
    206      
    207       // Ionisation
    208       G4eIonisation* eIoni = new G4eIonisation();
    209       eIoni->AddEmModel(0, new G4LivermoreIonisationModel(), new G4UniversalFluctuation() );
    210       eIoni->SetStepFunction(0.2, 100*um); //     
    211       pmanager->AddProcess(eIoni,                 -1, 2, 2);
    212      
    213       // Bremsstrahlung
    214       G4eBremsstrahlung* eBrem = new G4eBremsstrahlung();
    215       eBrem->AddEmModel(0, new G4LivermoreBremsstrahlungModel());
    216       pmanager->AddProcess(eBrem,                 -1,-3, 3);
    217 
    218       pmanager->AddProcess(new G4StepLimiter(), -1, -1, 4);
    219      
    220     } else if (particleName == "e+") {
    221 
    222       // Identical to G4EmStandardPhysics_option3
    223    
    224       G4eMultipleScattering* msc = new G4eMultipleScattering();
    225       msc->SetStepLimitType(fUseDistanceToBoundary);
    226       pmanager->AddProcess(msc,                   -1, 1, 1);
    227 
    228       G4eIonisation* eIoni = new G4eIonisation();
    229       eIoni->SetStepFunction(0.2, 100*um);     
    230       pmanager->AddProcess(eIoni,                 -1, 2, 2);
    231      
    232       pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
    233      
    234       pmanager->AddProcess(new G4eplusAnnihilation,0,-1, 4);
    235      
    236       pmanager->AddProcess(new G4StepLimiter(), -1, -1, 5);
    237 
    238     } else if (particleName == "GenericIon") {
    239 
    240       pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
    241 
    242       G4ionIonisation* ionIoni = new G4ionIonisation();
    243       ionIoni->SetEmModel(new G4IonParametrisedLossModel());
    244       ionIoni->SetStepFunction(0.1, 20*um);
    245       pmanager->AddProcess(ionIoni,                   -1, 2, 2);
    246 
    247       pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3);
    248 
    249     } else if (particleName == "alpha" ||
    250                particleName == "He3" ) {
    251 
    252       // Identical to G4EmStandardPhysics_option3
    253      
    254       pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
    255 
    256       G4ionIonisation* ionIoni = new G4ionIonisation();
    257       ionIoni->SetStepFunction(0.1, 20*um);
    258       pmanager->AddProcess(ionIoni,                   -1, 2, 2);
    259 
    260       pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3);
    261     }
    262 
    263    //
    264 
    265   }
    266 }
    267 
    268 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    269 
    270 #include "G4HadronElasticProcess.hh"
    271 #include "G4LElastic.hh"
    272 
    273 #include "G4AlphaInelasticProcess.hh"
    274 #include "G4BinaryLightIonReaction.hh"
    275 #include "G4TripathiCrossSection.hh"
    276 #include "G4IonsShenCrossSection.hh"
    277 #include "G4LEAlphaInelastic.hh"
    278 
    279 void MicrobeamPhysicsList::ConstructHad()
    280 {
    281 
    282   G4HadronElasticProcess * theElasticProcess = new G4HadronElasticProcess;
    283   theElasticProcess->RegisterMe( new G4LElastic() );
    284 
    285   theParticleIterator->reset();
    286   while( (*theParticleIterator)() )
    287   {
    288     G4ParticleDefinition* particle = theParticleIterator->value();
    289     G4ProcessManager* pManager = particle->GetProcessManager();
    290 
    291     if (particle->GetParticleName() == "alpha")
    292        {
    293 
    294           // INELASTIC SCATTERING
    295           // Binary Cascade
    296           G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction();
    297           theBC -> SetMinEnergy(80.*MeV);
    298           theBC -> SetMaxEnergy(40.*GeV);
    299  
    300           // TRIPATHI CROSS SECTION
    301           // Implementation of formulas in analogy to NASA technical paper 3621 by
    302           // Tripathi, et al. Cross-sections for ion ion scattering
    303           G4TripathiCrossSection* TripathiCrossSection = new G4TripathiCrossSection;
    304  
    305           // IONS SHEN CROSS SECTION
    306           // Implementation of formulas
    307           // Shen et al. Nuc. Phys. A 491 130 (1989)
    308           // Total Reaction Cross Section for Heavy-Ion Collisions
    309           G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection;
    310  
    311           // Final state production model for Alpha inelastic scattering below 20 GeV
    312           G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic;
    313           theAIModel -> SetMaxEnergy(100.*MeV);
    314 
    315           G4AlphaInelasticProcess * theIPalpha = new G4AlphaInelasticProcess;             
    316           theIPalpha->AddDataSet(TripathiCrossSection);
    317           theIPalpha->AddDataSet(aShen);
    318 
    319           // Register the Alpha Inelastic and Binary Cascade Model
    320           theIPalpha->RegisterMe(theAIModel);
    321           theIPalpha->RegisterMe(theBC);
    322          
    323           // Activate the alpha inelastic scattering using the alpha inelastic and binary cascade model
    324           pManager -> AddDiscreteProcess(theIPalpha);
    325          
    326           // Activate the Hadron Elastic Process
    327           pManager -> AddDiscreteProcess(theElasticProcess);
    328            
    329        }
    330   }
    331 
    332 }
    333 
    334 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    335 
    336 void MicrobeamPhysicsList::ConstructGeneral()
    337 { }
    338 
    339 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     231
     232    if (stepMaxProcess->IsApplicable(*particle) && pmanager)
     233      {
     234        pmanager ->AddDiscreteProcess(stepMaxProcess);
     235      }
     236  }
     237}
     238
     239//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    340240
    341241void MicrobeamPhysicsList::SetCuts()
    342242{
     243
    343244  if (verboseLevel >0){
    344     G4cout << "MicrobeamPhysicsList::SetCuts:";
     245    G4cout << "PhysicsList::SetCuts:";
    345246    G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
    346   } 
    347  
     247  }
     248
    348249  // set cut values for gamma at first and for e- second and next for e+,
    349   // because some processes for e+/e- need cut values for gamma 
     250  // because some processes for e+/e- need cut values for gamma
    350251  SetCutValue(cutForGamma, "gamma");
    351252  SetCutValue(cutForElectron, "e-");
    352253  SetCutValue(cutForPositron, "e+");
    353  
     254
    354255  if (verboseLevel>0) DumpCutValuesTable();
    355 
    356 }
    357 
     256}
     257
     258//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     259
     260void MicrobeamPhysicsList::SetCutForGamma(G4double cut)
     261{
     262  cutForGamma = cut;
     263  SetParticleCuts(cutForGamma, G4Gamma::Gamma());
     264}
     265
     266//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     267
     268void MicrobeamPhysicsList::SetCutForElectron(G4double cut)
     269{
     270  cutForElectron = cut;
     271  SetParticleCuts(cutForElectron, G4Electron::Electron());
     272}
     273
     274//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     275
     276void MicrobeamPhysicsList::SetCutForPositron(G4double cut)
     277{
     278  cutForPositron = cut;
     279  SetParticleCuts(cutForPositron, G4Positron::Positron());
     280}
     281
     282//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     283
     284void MicrobeamPhysicsList::AddIonGasModels()
     285{
     286  G4EmConfigurator* em_config = G4LossTableManager::Instance()->EmConfigurator();
     287  theParticleIterator->reset();
     288  while ((*theParticleIterator)())
     289  {
     290    G4ParticleDefinition* particle = theParticleIterator->value();
     291    G4String partname = particle->GetParticleName();
     292    if(partname == "alpha" || partname == "He3" || partname == "GenericIon") {
     293      G4BraggIonGasModel* mod1 = new G4BraggIonGasModel();
     294      G4BetheBlochIonGasModel* mod2 = new G4BetheBlochIonGasModel();
     295      G4double eth = 2.*MeV*particle->GetPDGMass()/proton_mass_c2;
     296      em_config->SetExtraEmModel(partname,"ionIoni",mod1,"",0.0,eth,
     297                                 new G4IonFluctuations());
     298      em_config->SetExtraEmModel(partname,"ionIoni",mod2,"",eth,100*TeV,
     299                                 new G4UniversalFluctuation());
     300
     301    }
     302  }
     303}
     304
     305//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
     306
Note: See TracChangeset for help on using the changeset viewer.