Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/electromagnetic/TestEm0/DirectAccess.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/extended/electromagnetic/TestEm0/DirectAccess.cc (Version 11.3.0) and /examples/extended/electromagnetic/TestEm0/DirectAccess.cc (Version 9.4.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 /// \file electromagnetic/TestEm0/DirectAccess << 
 27 /// \brief Main program of the electromagnetic << 
 28 //                                             << 
 29 //                                             << 
 30 //                                                 26 //
                                                   >>  27 // $Id: DirectAccess.cc,v 1.2 2006-06-29 16:35:25 gunter Exp $
                                                   >>  28 // GEANT4 tag $Name: geant4-09-04-patch-01 $
                                                   >>  29 // 
 31 // -------------------------------------------     30 // ------------------------------------------------------------
 32 //                                                 31 //
 33 //  To print cross sections per atom and mean      32 //  To print cross sections per atom and mean free path for simple material
 34 //                                                 33 //
 35 #include "G4BetheBlochModel.hh"                << 
 36 #include "G4BetheHeitlerModel.hh"              << 
 37 #include "G4BraggModel.hh"                     << 
 38 #include "G4DataVector.hh"                     << 
 39 #include "G4Electron.hh"                       << 
 40 #include "G4Gamma.hh"                          << 
 41 #include "G4KleinNishinaCompton.hh"            << 
 42 #include "G4Material.hh"                           34 #include "G4Material.hh"
                                                   >>  35 
                                                   >>  36 #include "G4PEEffectModel.hh"
                                                   >>  37 #include "G4KleinNishinaCompton.hh"
                                                   >>  38 #include "G4BetheHeitlerModel.hh"
                                                   >>  39 
                                                   >>  40 #include "G4eeToTwoGammaModel.hh"
                                                   >>  41 
 43 #include "G4MollerBhabhaModel.hh"                  42 #include "G4MollerBhabhaModel.hh"
                                                   >>  43 #include "G4eBremsstrahlungModel.hh"
                                                   >>  44 
                                                   >>  45 #include "G4BetheBlochModel.hh"
                                                   >>  46 #include "G4BraggModel.hh"
                                                   >>  47 
 44 #include "G4MuBetheBlochModel.hh"                  48 #include "G4MuBetheBlochModel.hh"
 45 #include "G4MuBremsstrahlungModel.hh"              49 #include "G4MuBremsstrahlungModel.hh"
 46 #include "G4MuPairProductionModel.hh"              50 #include "G4MuPairProductionModel.hh"
 47 #include "G4MuonPlus.hh"                       <<  51 
 48 #include "G4NistManager.hh"                    << 
 49 #include "G4PEEffectFluoModel.hh"              << 
 50 #include "G4ParticleTable.hh"                  << 
 51 #include "G4Positron.hh"                       << 
 52 #include "G4Proton.hh"                         << 
 53 #include "G4SeltzerBergerModel.hh"             << 
 54 #include "G4SystemOfUnits.hh"                  << 
 55 #include "G4UnitsTable.hh"                     << 
 56 #include "G4eeToTwoGammaModel.hh"              << 
 57 #include "globals.hh"                              52 #include "globals.hh"
                                                   >>  53 #include "G4UnitsTable.hh"
 58                                                    54 
 59 int main()                                     <<  55 #include "G4Gamma.hh"
 60 {                                              <<  56 #include "G4Positron.hh"
 61   G4UnitDefinition::BuildUnitsTable();         <<  57 #include "G4Electron.hh"
                                                   >>  58 #include "G4Proton.hh"
                                                   >>  59 #include "G4MuonPlus.hh"
 62                                                    60 
 63   G4ParticleDefinition* gamma = G4Gamma::Gamma <<  61 int main() {
 64   G4ParticleDefinition* posit = G4Positron::Po << 
 65   G4ParticleDefinition* elec = G4Electron::Ele << 
 66   G4ParticleDefinition* prot = G4Proton::Proto << 
 67   G4ParticleDefinition* muon = G4MuonPlus::Muo << 
 68   G4ParticleTable* partTable = G4ParticleTable << 
 69   partTable->SetReadiness();                   << 
 70                                                    62 
 71   G4DataVector cuts;                           <<  63   G4UnitDefinition::BuildUnitsTable();
 72   cuts.push_back(1 * keV);                     << 
 73                                                    64 
 74   // define materials                              65   // define materials
 75   //                                               66   //
 76   G4Material* material = G4NistManager::Instan <<  67   G4double Z, A;
 77                                                    68 
 78   G4cout << *(G4Material::GetMaterialTable())  <<  69   G4Material* material =
                                                   >>  70   new G4Material("Iodine", Z=53., A=126.90*g/mole, 4.93*g/cm3);
 79                                                    71 
 80   G4MaterialCutsCouple* couple = new G4Materia <<  72   G4cout << *(G4Material::GetMaterialTable()) << G4endl;
 81   couple->SetIndex(0);                         << 
 82                                                    73 
 83   // work only for simple materials            <<  74 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 84   G4double Z = material->GetZ();               << 
 85   G4double A = material->GetA();               << 
 86                                                    75 
 87   // initialise gamma processes (models)           76   // initialise gamma processes (models)
 88   //                                               77   //
 89   G4VEmModel* phot = new G4PEEffectFluoModel() <<  78   G4ParticleDefinition* gamma = G4Gamma::Gamma();
                                                   >>  79   
                                                   >>  80   G4VEmModel* phot = new G4PEEffectModel();
 90   G4VEmModel* comp = new G4KleinNishinaCompton     81   G4VEmModel* comp = new G4KleinNishinaCompton();
 91   G4VEmModel* conv = new G4BetheHeitlerModel() <<  82   G4VEmModel* conv = new G4BetheHeitlerModel(); 
 92   phot->Initialise(gamma, cuts);               <<  83   
 93   comp->Initialise(gamma, cuts);               << 
 94   conv->Initialise(gamma, cuts);               << 
 95                                                << 
 96   // valid pointer to a couple is needed for t << 
 97   phot->SetCurrentCouple(couple);              << 
 98                                                << 
 99   // compute CrossSection per atom and MeanFre     84   // compute CrossSection per atom and MeanFreePath
100   //                                               85   //
101   G4double Emin = 1.01 * MeV, Emax = 2.01 * Me <<  86   G4double Emin = 1.01*MeV, Emax = 2.01*MeV, dE = 100*keV;
102                                                    87 
103   G4cout << "\n #### Gamma : CrossSectionPerAt <<  88   G4cout << "\n #### Gamma : CrossSectionPerAtom and MeanFreePath for " 
104          << G4endl;                            <<  89          << material->GetName() << G4endl;
105   G4cout << "\n Energy \t PhotoElec \t Compton     90   G4cout << "\n Energy \t PhotoElec \t Compton \t Conversion \t";
106   G4cout << "\t PhotoElec \t Compton \t Conver <<  91   G4cout <<           "\t PhotoElec \t Compton \t Conversion" << G4endl;
107                                                <<  92   
108   for (G4double Energy = Emin; Energy <= Emax;     93   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
109     G4cout << "\n " << G4BestUnit(Energy, "Ene <<  94     G4cout << "\n " << G4BestUnit (Energy, "Energy")
110            << G4BestUnit(phot->ComputeCrossSec <<  95      << "\t" 
111            << G4BestUnit(comp->ComputeCrossSec <<  96      << G4BestUnit (phot->ComputeCrossSectionPerAtom(gamma,Energy,Z), "Surface")
112            << G4BestUnit(conv->ComputeCrossSec <<  97      << "\t"   
113            << G4BestUnit(phot->ComputeMeanFree <<  98      << G4BestUnit (comp->ComputeCrossSectionPerAtom(gamma,Energy,Z), "Surface")
114            << G4BestUnit(comp->ComputeMeanFree <<  99      << "\t"   
115            << G4BestUnit(conv->ComputeMeanFree << 100      << G4BestUnit (conv->ComputeCrossSectionPerAtom(gamma,Energy,Z), "Surface")
                                                   >> 101      << "\t \t"  
                                                   >> 102      << G4BestUnit (phot->ComputeMeanFreePath(gamma,Energy,material), "Length")
                                                   >> 103      << "\t"   
                                                   >> 104      << G4BestUnit (comp->ComputeMeanFreePath(gamma,Energy,material), "Length")
                                                   >> 105      << "\t"   
                                                   >> 106      << G4BestUnit (conv->ComputeMeanFreePath(gamma,Energy,material), "Length");
116   }                                               107   }
117                                                   108 
118   G4cout << G4endl;                               109   G4cout << G4endl;
119                                                   110 
                                                   >> 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
                                                   >> 112 
120   // initialise positron annihilation (model)     113   // initialise positron annihilation (model)
121   //                                           << 114   // 
                                                   >> 115   G4ParticleDefinition* posit = G4Positron::Positron();
                                                   >> 116    
122   G4VEmModel* anni = new G4eeToTwoGammaModel()    117   G4VEmModel* anni = new G4eeToTwoGammaModel();
123   anni->Initialise(posit, cuts);               << 118   
124                                                << 
125   // compute CrossSection per atom and MeanFre    119   // compute CrossSection per atom and MeanFreePath
126   //                                              120   //
127   Emin = 1.01 * MeV;                           << 121   Emin = 1.01*MeV; Emax = 2.01*MeV; dE = 100*keV;
128   Emax = 2.01 * MeV;                           << 
129   dE = 100 * keV;                              << 
130                                                   122 
131   G4cout << "\n #### e+ annihilation : CrossSe << 123   G4cout << "\n #### e+ annihilation : CrossSectionPerAtom and MeanFreePath for " 
132          << " for " << material->GetName() <<  << 124          << material->GetName() << G4endl;
133   G4cout << "\n Energy \t e+ annihil \t";         125   G4cout << "\n Energy \t e+ annihil \t";
134   G4cout << "\t e+ annihil" << G4endl;         << 126   G4cout <<           "\t e+ annihil" << G4endl;
135                                                << 127   
136   for (G4double Energy = Emin; Energy <= Emax;    128   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
137     G4cout << "\n " << G4BestUnit(Energy, "Ene << 129     G4cout << "\n " << G4BestUnit (Energy, "Energy")
138            << G4BestUnit(anni->ComputeCrossSec << 130      << "\t" 
139            << G4BestUnit(anni->ComputeMeanFree << 131      << G4BestUnit (anni->ComputeCrossSectionPerAtom(posit,Energy,Z), "Surface")
                                                   >> 132      << "\t \t"  
                                                   >> 133      << G4BestUnit (anni->ComputeMeanFreePath(posit,Energy,material), "Length");
140   }                                               134   }
141                                                   135 
142   G4cout << G4endl;                               136   G4cout << G4endl;
143                                                   137 
                                                   >> 138 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
                                                   >> 139 
144   // initialise electron processes (models)       140   // initialise electron processes (models)
145   //                                           << 141   // 
                                                   >> 142   G4ParticleDefinition* elec = G4Electron::Electron();
                                                   >> 143    
146   G4VEmModel* ioni = new G4MollerBhabhaModel()    144   G4VEmModel* ioni = new G4MollerBhabhaModel();
147   G4VEmModel* brem = new G4SeltzerBergerModel( << 145   G4VEmModel* brem = new G4eBremsstrahlungModel();
148   ioni->Initialise(elec, cuts);                << 146   
149   brem->Initialise(elec, cuts);                << 
150                                                << 
151   // compute CrossSection per atom and MeanFre    147   // compute CrossSection per atom and MeanFreePath
152   //                                              148   //
153   Emin = 1.01 * MeV;                           << 149   Emin = 1.01*MeV; Emax = 101.01*MeV; dE = 10*MeV;
154   Emax = 101.01 * MeV;                         << 150   G4double Ecut = 100*keV;
155   dE = 10 * MeV;                               << 
156   G4double Ecut = 100 * keV;                   << 
157                                                << 
158   G4cout << "\n ####electron: CrossSection, Me << 
159          << " for " << material->GetName() <<  << 
160          << G4endl;                            << 
161                                                   151 
                                                   >> 152   G4cout << "\n ####electron: CrossSection, MeanFreePath and StoppingPower for "
                                                   >> 153          << material->GetName() 
                                                   >> 154    << ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
                                                   >> 155    
162   G4cout << "\n Energy \t ionization \t bremss    156   G4cout << "\n Energy \t ionization \t bremsstra \t";
163   G4cout << "\t ionization \t bremsstra \t";   << 157   G4cout <<           "\t ionization \t bremsstra \t";
164   G4cout << "\t ionization \t bremsstra" << G4 << 158   G4cout <<           "\t ionization \t bremsstra" << G4endl;
165                                                << 159   
166   for (G4double Energy = Emin; Energy <= Emax;    160   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
167     G4cout << "\n " << G4BestUnit(Energy, "Ene << 161     G4cout << "\n " << G4BestUnit (Energy, "Energy")
168            << G4BestUnit(ioni->ComputeCrossSec << 162      << "\t" 
169            << "\t"                             << 163      << G4BestUnit (ioni->ComputeCrossSectionPerAtom(elec,Energy,Z,A,Ecut),
170            << G4BestUnit(brem->ComputeCrossSec << 164                    "Surface")
171            << "\t \t"                          << 165      << "\t" 
172            << G4BestUnit(ioni->ComputeMeanFree << 166      << G4BestUnit (brem->ComputeCrossSectionPerAtom(elec,Energy,Z,A,Ecut),
173            << G4BestUnit(brem->ComputeMeanFree << 167                    "Surface")      
174            << "\t \t"                          << 168      << "\t \t"  
175            << G4BestUnit(ioni->ComputeDEDXPerV << 169      << G4BestUnit (ioni->ComputeMeanFreePath(elec,Energy,material,Ecut),
176            << "\t"                             << 170                    "Length")
177            << G4BestUnit(brem->ComputeDEDXPerV << 171      << "\t"   
                                                   >> 172      << G4BestUnit (brem->ComputeMeanFreePath(elec,Energy,material,Ecut),
                                                   >> 173                    "Length")       
                                                   >> 174      << "\t \t"  
                                                   >> 175      << G4BestUnit (ioni->ComputeDEDXPerVolume(material,elec,Energy,Ecut),
                                                   >> 176                    "Energy/Length")
                                                   >> 177      << "\t"   
                                                   >> 178      << G4BestUnit (brem->ComputeDEDXPerVolume(material,elec,Energy,Ecut),
                                                   >> 179                    "Energy/Length");             
178   }                                               180   }
179                                                << 181   
180   G4cout << G4endl;                               182   G4cout << G4endl;
                                                   >> 183   
                                                   >> 184 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
181                                                   185 
182   // initialise proton processes (models)      << 
183   //                                           << 
184   ioni = new G4BetheBlochModel();              << 
185   ioni->Initialise(prot, cuts);                << 
186                                                   186 
                                                   >> 187   // initialise proton processes (models)
                                                   >> 188   // 
                                                   >> 189   G4ParticleDefinition* prot = G4Proton::Proton();
                                                   >> 190    
                                                   >> 191   ioni = new G4BetheBlochModel(prot);
                                                   >> 192   
187   // compute CrossSection per atom and MeanFre    193   // compute CrossSection per atom and MeanFreePath
188   //                                              194   //
189   Emin = 1.01 * MeV;                           << 195   Emin = 1.01*MeV; Emax = 102.01*MeV; dE = 10*MeV;
190   Emax = 102.01 * MeV;                         << 196   Ecut = 100*keV;
191   dE = 10 * MeV;                               << 
192   Ecut = 100 * keV;                            << 
193                                                << 
194   G4cout << "\n #### proton : CrossSection, Me << 
195          << " for " << material->GetName() <<  << 
196          << G4endl;                            << 
197                                                   197 
                                                   >> 198   G4cout << "\n #### proton : CrossSection, MeanFreePath and StoppingPower for "
                                                   >> 199          << material->GetName() 
                                                   >> 200    << ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
                                                   >> 201    
198   G4cout << "\n Energy \t ionization \t";         202   G4cout << "\n Energy \t ionization \t";
199   G4cout << "\t ionization \t";                << 203   G4cout <<           "\t ionization \t";
200   G4cout << "\t ionization" << G4endl;         << 204   G4cout <<           "\t ionization" << G4endl;
201                                                << 205   
202   for (G4double Energy = Emin; Energy <= Emax;    206   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
203     G4cout << "\n " << G4BestUnit(Energy, "Ene << 207     G4cout << "\n " << G4BestUnit (Energy, "Energy")
204            << G4BestUnit(ioni->ComputeCrossSec << 208      << "\t" 
205            << "\t \t"                          << 209      << G4BestUnit (ioni->ComputeCrossSectionPerAtom(prot,Energy,Z,A,Ecut),
206            << G4BestUnit(ioni->ComputeMeanFree << 210                    "Surface")
207            << "\t \t"                          << 211      << "\t \t"  
208            << G4BestUnit(ioni->ComputeDEDXPerV << 212      << G4BestUnit (ioni->ComputeMeanFreePath(prot,Energy,material,Ecut),
                                                   >> 213                    "Length")     
                                                   >> 214      << "\t \t"  
                                                   >> 215      << G4BestUnit (ioni->ComputeDEDXPerVolume(material,prot,Energy,Ecut),
                                                   >> 216                    "Energy/Length");
209   }                                               217   }
210                                                << 218   
211   G4cout << G4endl;                               219   G4cout << G4endl;
212                                                << 220   
213   // low energy : Bragg Model                     221   // low energy : Bragg Model
                                                   >> 222   
214   ioni = new G4BraggModel(prot);                  223   ioni = new G4BraggModel(prot);
215   ioni->Initialise(prot, cuts);                << 224   
216                                                << 
217   // compute CrossSection per atom and MeanFre    225   // compute CrossSection per atom and MeanFreePath
218   //                                              226   //
219   Emin = 1.1 * keV;                            << 227   Emin = 1.1*keV; Emax = 2.01*MeV; dE = 300*keV;
220   Emax = 2.01 * MeV;                           << 228   Ecut = 10*keV;
221   dE = 300 * keV;                              << 229   
222   Ecut = 10 * keV;                             << 
223                                                << 
224   G4cout << "\n #### proton : low energy model    230   G4cout << "\n #### proton : low energy model (Bragg) "
225          << ";\tEnergy cut = " << G4BestUnit(E << 231    << ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
226                                                << 232        
227   G4cout << "\n Energy \t ionization \t";         233   G4cout << "\n Energy \t ionization \t";
228   G4cout << "\t ionization \t";                << 234   G4cout <<           "\t ionization \t";
229   G4cout << "\t ionization" << G4endl;         << 235   G4cout <<           "\t ionization" << G4endl;
230                                                << 236   
231   for (G4double Energy = Emin; Energy <= Emax;    237   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
232     G4cout << "\n " << G4BestUnit(Energy, "Ene << 238     G4cout << "\n " << G4BestUnit (Energy, "Energy")
233            << G4BestUnit(ioni->ComputeCrossSec << 239      << "\t" 
234            << "\t \t"                          << 240      << G4BestUnit (ioni->ComputeCrossSectionPerAtom(prot,Energy,Z,A,Ecut),
235            << G4BestUnit(ioni->ComputeMeanFree << 241                    "Surface")
236            << "\t \t"                          << 242      << "\t \t"  
237            << G4BestUnit(ioni->ComputeDEDXPerV << 243      << G4BestUnit (ioni->ComputeMeanFreePath(prot,Energy,material,Ecut),
                                                   >> 244                    "Length")     
                                                   >> 245      << "\t \t"  
                                                   >> 246      << G4BestUnit (ioni->ComputeDEDXPerVolume(material,prot,Energy,Ecut),
                                                   >> 247                    "Energy/Length");
238   }                                               248   }
239                                                << 249   
240   G4cout << G4endl;                               250   G4cout << G4endl;
241                                                << 251     
                                                   >> 252 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
                                                   >> 253   
242   // initialise muon processes (models)           254   // initialise muon processes (models)
243   //                                           << 255   // 
244   ioni = new G4MuBetheBlochModel();            << 256   G4ParticleDefinition* muon = G4MuonPlus::MuonPlus();
245   brem = new G4MuBremsstrahlungModel();        << 257    
246   G4VEmModel* pair = new G4MuPairProductionMod << 258               ioni = new G4MuBetheBlochModel(muon);
247   ioni->Initialise(muon, cuts);                << 259               brem = new G4MuBremsstrahlungModel(muon);
248   brem->Initialise(muon, cuts);                << 260   G4VEmModel* pair = new G4MuPairProductionModel(muon);
249   pair->Initialise(muon, cuts);                << 261    
250                                                << 
251   // compute CrossSection per atom and MeanFre    262   // compute CrossSection per atom and MeanFreePath
252   //                                              263   //
253   Emin = 1.01 * GeV;                           << 264   Emin = 1.01*GeV; Emax = 101.01*GeV; dE = 10*GeV;
254   Emax = 101.01 * GeV;                         << 265   Ecut = 10*MeV;
255   dE = 10 * GeV;                               << 
256   Ecut = 10 * MeV;                             << 
257                                                << 
258   G4cout << "\n ####muon: CrossSection and Mea << 
259          << ";\tEnergy cut = " << G4BestUnit(E << 
260                                                   266 
                                                   >> 267   G4cout << "\n ####muon: CrossSection and MeanFreePath for "
                                                   >> 268          << material->GetName() 
                                                   >> 269    << ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
                                                   >> 270    
261   G4cout << "\n Energy \t ionization \t bremss    271   G4cout << "\n Energy \t ionization \t bremsstra \t pair_prod \t";
262   G4cout << "\t ionization \t bremsstra \t pai << 272   G4cout <<           "\t ionization \t bremsstra \t pair_prod" << G4endl;
263                                                << 273   
264   for (G4double Energy = Emin; Energy <= Emax;    274   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
265     G4cout << "\n " << G4BestUnit(Energy, "Ene << 275     G4cout << "\n " << G4BestUnit (Energy, "Energy")
266            << G4BestUnit(ioni->ComputeCrossSec << 276      << "\t" 
267            << "\t"                             << 277      << G4BestUnit (ioni->ComputeCrossSectionPerAtom(muon,Energy,Z,A,Ecut),
268            << G4BestUnit(brem->ComputeCrossSec << 278                    "Surface")
269            << "\t"                             << 279      << "\t" 
270            << G4BestUnit(pair->ComputeCrossSec << 280      << G4BestUnit (brem->ComputeCrossSectionPerAtom(muon,Energy,Z,A,Ecut),
271            << "\t \t"                          << 281                    "Surface")
272            << G4BestUnit(ioni->ComputeMeanFree << 282      << "\t"       
273            << G4BestUnit(brem->ComputeMeanFree << 283      << G4BestUnit (pair->ComputeCrossSectionPerAtom(muon,Energy,Z,A,Ecut),
274            << G4BestUnit(pair->ComputeMeanFree << 284                    "Surface")            
                                                   >> 285      << "\t \t"  
                                                   >> 286      << G4BestUnit (ioni->ComputeMeanFreePath(muon,Energy,material,Ecut),
                                                   >> 287                    "Length")
                                                   >> 288      << "\t"   
                                                   >> 289      << G4BestUnit (brem->ComputeMeanFreePath(muon,Energy,material,Ecut),
                                                   >> 290                    "Length")
                                                   >> 291      << "\t"   
                                                   >> 292      << G4BestUnit (pair->ComputeMeanFreePath(muon,Energy,material,Ecut),
                                                   >> 293                    "Length");                            
275   }                                               294   }
276                                                << 295   
277   G4cout << G4endl;                               296   G4cout << G4endl;
278                                                << 297   
279   G4cout << "\n ####muon: StoppingPower for "  << 298   G4cout << "\n ####muon: StoppingPower for "
280          << ";\tEnergy cut = " << G4BestUnit(E << 299          << material->GetName() 
281                                                << 300    << ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
                                                   >> 301    
282   G4cout << "\n Energy \t ionization \t bremss    302   G4cout << "\n Energy \t ionization \t bremsstra \t pair_prod \t" << G4endl;
283                                                << 303   
284   for (G4double Energy = Emin; Energy <= Emax;    304   for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
285     G4cout << "\n " << G4BestUnit(Energy, "Ene << 305     G4cout << "\n " << G4BestUnit (Energy, "Energy")
286            << G4BestUnit(ioni->ComputeDEDXPerV << 306      << "\t"   
287            << "\t"                             << 307      << G4BestUnit (ioni->ComputeDEDXPerVolume(material,muon,Energy,Ecut),
288            << G4BestUnit(brem->ComputeDEDXPerV << 308                    "Energy/Length")
289            << "\t"                             << 309      << "\t"   
290            << G4BestUnit(pair->ComputeDEDXPerV << 310      << G4BestUnit (brem->ComputeDEDXPerVolume(material,muon,Energy,Ecut),
                                                   >> 311                    "Energy/Length")
                                                   >> 312      << "\t"   
                                                   >> 313      << G4BestUnit (pair->ComputeDEDXPerVolume(material,muon,Energy,Ecut),
                                                   >> 314                    "Energy/Length");                   
291   }                                               315   }
292                                                << 316   
293   G4cout << G4endl;                               317   G4cout << G4endl;
294   return EXIT_SUCCESS;                         << 318     
295 }                                              << 
296                                                << 
297 //....oooOO0OOooo........oooOO0OOooo........oo    319 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
                                                   >> 320                                  
                                                   >> 321 return EXIT_SUCCESS;
                                                   >> 322 }
298                                                   323