/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/TrkExtAlg/TrkExtAlg-00-00-64/src/ExteIonisation.cxx

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * DISCLAIMER                                                       *
00004 // *                                                                  *
00005 // * The following disclaimer summarizes all the specific disclaimers *
00006 // * of contributors to this software. The specific disclaimers,which *
00007 // * govern, are listed with their locations in:                      *
00008 // *   http://cern.ch/geant4/license                                  *
00009 // *                                                                  *
00010 // * Neither the authors of this software system, nor their employing *
00011 // * institutes,nor the agencies providing financial support for this *
00012 // * work  make  any representation or  warranty, express or implied, *
00013 // * regarding  this  software system or assume any liability for its *
00014 // * use.                                                             *
00015 // *                                                                  *
00016 // * This  code  implementation is the  intellectual property  of the *
00017 // * GEANT4 collaboration.                                            *
00018 // * By copying,  distributing  or modifying the Program (or any work *
00019 // * based  on  the Program)  you indicate  your  acceptance of  this *
00020 // * statement, and all its terms.                                    *
00021 // ********************************************************************
00022 //
00023 // $Id: ExteIonisation.cxx,v 1.7 2015/10/27 11:02:53 sunss Exp $
00024 // GEANT4 tag $Name: TrkExtAlg-00-00-64 $
00025 //
00026 // -------------------------------------------------------------------
00027 //
00028 // GEANT4 Class file
00029 //
00030 //
00031 // File name:     ExteIonisation
00032 //
00033 // Author:        Laszlo Urban
00034 //
00035 // Creation date: 20.03.1997
00036 //
00037 // Modifications:
00038 //
00039 // 07-04-98 remove 'tracking cut' of the ionizing particle, mma
00040 // 04-09-98 new methods SetBining() PrintInfo()
00041 // 07-09-98 Cleanup
00042 // 02-02-99 correction inDoIt , L.Urban
00043 // 10-02-00 modifications , new e.m. structure, L.Urban
00044 // 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation
00045 // 09-08-01 new methods Store/Retrieve PhysicsTable (mma)
00046 // 13-08-01 new function ComputeRestrictedMeandEdx()  (mma)
00047 // 17-09-01 migration of Materials to pure STL (mma)
00048 // 21-09-01 completion of RetrievePhysicsTable() (mma)
00049 // 29-10-01 all static functions no more inlined (mma)
00050 // 07-11-01 particleMass and Charge become local variables
00051 // 26-03-02 change access to cuts in BuildLossTables (V.Ivanchenko)
00052 // 30-04-02 V.Ivanchenko update to new design
00053 // 23-12-02 Change interface in order to move to cut per region (VI)
00054 // 26-12-02 Secondary production moved to derived classes (VI)
00055 // 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko)
00056 // 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko)
00057 // 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko)
00058 // 08-08-03 STD substitute standard  (V.Ivanchenko)
00059 // 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko)
00060 // ------------------------------------------------------------------------------------ 
00061 // 15-04-05 Omit the correction of momentum direction due to production of secenderies.
00062 //          This is needed for my Track Extrapotation. (L.L.Wang)
00063 // ------------------------------------------------------------------------------------
00064 // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko)
00065 // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko)
00066 //
00067 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00068 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00069 
00070 #include "TrkExtAlg/ExteIonisation.h"
00071 #include "G4Electron.hh"
00072 #include "G4MollerBhabhaModel.hh"
00073 #include "G4UniversalFluctuation.hh"
00074 #include "G4BohrFluctuations.hh"
00075 #include "G4UnitsTable.hh"
00076 
00077 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00078 
00079 using namespace std;
00080 
00081 ExteIonisation::ExteIonisation(const G4String& name)
00082   : G4VEnergyLossProcess(name),
00083     theElectron(G4Electron::Electron()),
00084     isElectron(true),
00085     isInitialised(false)
00086 {
00087   SetDEDXBinning(120);
00088   SetLambdaBinning(120);
00089   SetMinKinEnergy(0.1*keV);
00090   SetMaxKinEnergy(100.0*TeV);
00091   SetLossFluctuations(false);
00092 }
00093 
00094 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00095 
00096 ExteIonisation::~ExteIonisation()
00097 {}
00098 
00099 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00100 
00101 void ExteIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part,const G4ParticleDefinition*)
00102 {
00103   if(!isInitialised) {
00104           if(part == G4Positron::Positron()) isElectron = false;
00105           SetSecondaryParticle(theElectron);
00106 
00107           flucModel = new G4UniversalFluctuation();
00108 
00109           G4VEmModel* em = new G4MollerBhabhaModel();
00110           em->SetLowEnergyLimit(0.1*keV);
00111           em->SetHighEnergyLimit(100.0*TeV);
00112           AddEmModel(1, em, flucModel);
00113           isInitialised = true;
00114   }
00115 
00116 }
00117 
00118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00119 
00120 void ExteIonisation::PrintInfo()
00121 {
00122   G4cout << "      Delta cross sections from Moller+Bhabha, "
00123          << "good description from 1 KeV to 100 GeV."
00124          << G4endl;
00125 }
00126 
00127 //....ooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....

Generated on Tue Nov 29 23:14:12 2016 for BOSS_7.0.2 by  doxygen 1.4.7