Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. 1 // 3 // 2 // ******************************************* << 4 // By copying, distributing or modifying the Program (or any work 3 // * License and Disclaimer << 5 // based on the Program) you indicate your acceptance of this statement, 4 // * << 6 // and all its terms. 5 // * The Geant4 software is copyright of th << 6 // * the Geant4 Collaboration. It is provided << 7 // * conditions of the Geant4 Software License << 8 // * LICENSE and available at http://cern.ch/ << 9 // * include a list of copyright holders. << 10 // * << 11 // * Neither the authors of this software syst << 12 // * institutes,nor the agencies providing fin << 13 // * work make any representation or warran << 14 // * regarding this software system or assum << 15 // * use. Please see the license in the file << 16 // * for the full disclaimer and the limitatio << 17 // * << 18 // * This code implementation is the result << 19 // * technical work of the GEANT4 collaboratio << 20 // * By using, copying, modifying or distri << 21 // * any work based on the software) you ag << 22 // * use in resulting scientific publicati << 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* << 25 // 7 // >> 8 // $Id: G4ComptonScattering.hh,v 1.1.10.1 1999/12/07 20:50:47 gunter Exp $ >> 9 // GEANT4 tag $Name: geant4-01-01 $ 26 // 10 // 27 //------------------ G4ComptonScattering physi << 11 // 28 // by Michel Maire, April 19 << 12 // ------------------------------------------------------------ >> 13 // GEANT 4 class header file --- Copyright CERN 1995 >> 14 // CERN Geneva Switzerland 29 // 15 // 30 // 10-06-96, updated by M.Maire << 16 // For information related to this code contact: >> 17 // CERN, CN Division, ASD group >> 18 // History: first implementation, based on object model of >> 19 // 2nd December 1995, G.Cosmo >> 20 // ------------ G4ComptonScattering physics process ------ >> 21 // by Michel Maire, April 1996 >> 22 // ************************************************************ >> 23 // 10-06-96, updated by M.Maire 31 // 21-06-96, SetCuts implementation, M.Maire 24 // 21-06-96, SetCuts implementation, M.Maire 32 // 06-01-97, crossection table + meanfreepath 25 // 06-01-97, crossection table + meanfreepath table, M.Maire 33 // 17-02-97, New Physics scheme 26 // 17-02-97, New Physics scheme 34 // 25-02-97, GetMeanFreePath() now is public f 27 // 25-02-97, GetMeanFreePath() now is public function 35 // 12-03-97, new physics scheme again 28 // 12-03-97, new physics scheme again 36 // 13-08-98, new methods SetBining() PrintInf << 29 // 13-08-98, new methods SetBining() PrintInfo() 37 // 03-08-01, new methods Store/Retrieve Physic << 30 // ------------------------------------------------------------ 38 // 06-08-01, BuildThePhysicsTable() called fro << 39 // 19-09-01, come back to previous ProcessName << 40 // 20-09-01, DoIt: fminimalEnergy = 1*eV (mma) << 41 // 01-10-01, come back to BuildPhysicsTable(co << 42 // 13-08-04, suppress icc file; make public Co << 43 // 09-11-04, Remove Retrieve tables (V.Ivantch << 44 // 15-03-05, Redesign - use G4VEmProcess inter << 45 // 04-05-05, Make class to be default (V.Ivanc << 46 // 09-09-06, modify SetModel(G4VEmModel*) (mma << 47 // 12-09-06, move SetModel(G4VEmModel*) in G4V << 48 // ------------------------------------------- << 49 << 50 // class description << 51 // << 52 << 53 //....oooOO0OOooo........oooOO0OOooo........oo << 54 //....oooOO0OOooo........oooOO0OOooo........oo << 55 31 56 #ifndef G4ComptonScattering_h 32 #ifndef G4ComptonScattering_h 57 #define G4ComptonScattering_h 1 33 #define G4ComptonScattering_h 1 58 34 >> 35 #include "G4ios.hh" 59 #include "globals.hh" 36 #include "globals.hh" 60 #include "G4VEmProcess.hh" << 37 #include "Randomize.hh" >> 38 #include "G4VDiscreteProcess.hh" >> 39 #include "G4PhysicsTable.hh" >> 40 #include "G4PhysicsLogVector.hh" >> 41 #include "G4Element.hh" 61 #include "G4Gamma.hh" 42 #include "G4Gamma.hh" >> 43 #include "G4Electron.hh" >> 44 #include "G4Step.hh" 62 45 63 //....oooOO0OOooo........oooOO0OOooo........oo << 64 << 65 class G4ParticleDefinition; << 66 class G4VEmModel; << 67 class G4MaterialCutsCouple; << 68 class G4DynamicParticle; << 69 << 70 class G4ComptonScattering : public G4VEmProces << 71 46 72 { << 47 class G4ComptonScattering : public G4VDiscreteProcess 73 public: // with description << 48 >> 49 { >> 50 public: >> 51 >> 52 G4ComptonScattering(const G4String& processName ="compt"); >> 53 >> 54 ~G4ComptonScattering(); 74 55 75 explicit G4ComptonScattering(const G4String& << 56 G4bool IsApplicable(const G4ParticleDefinition&); 76 G4ProcessType type = fElectromagn << 57 77 << 58 void SetPhysicsTableBining(G4double lowE, G4double highE, G4int nBins); 78 ~G4ComptonScattering() override; << 59 >> 60 void BuildPhysicsTable(const G4ParticleDefinition& GammaType); >> 61 >> 62 void PrintInfoDefinition(); >> 63 >> 64 G4double GetMeanFreePath(const G4Track& aTrack, >> 65 G4double previousStepSize, >> 66 G4ForceCondition* condition); 79 67 80 // true for Gamma only. << 68 G4double GetMicroscopicCrossSection(G4DynamicParticle* aDynamicGamma, 81 G4bool IsApplicable(const G4ParticleDefiniti << 69 G4Element* anElement); 82 << 83 // print description in html << 84 void ProcessDescription(std::ostream&) const << 85 70 86 G4ComptonScattering & operator=(const G4Com << 71 G4VParticleChange* PostStepDoIt(const G4Track& aTrack, 87 G4ComptonScattering(const G4ComptonScatteri << 72 const G4Step& aStep); 88 73 89 protected: << 74 protected: 90 75 91 void InitialiseProcess(const G4ParticleDefin << 76 virtual G4double ComputeCrossSectionPerAtom(G4double GammaEnergy, >> 77 G4double AtomicNumber); 92 78 93 private: << 79 virtual G4double ComputeMeanFreePath(G4double GammaEnergy, >> 80 G4Material* aMaterial); >> 81 private: >> 82 >> 83 // hide assignment operator as private >> 84 G4ComptonScattering& operator=(const G4ComptonScattering &right); >> 85 G4ComptonScattering(const G4ComptonScattering& ); >> 86 >> 87 private: 94 88 95 G4bool isInitialised = false; << 89 G4PhysicsTable* theCrossSectionTable; // table for crosssection >> 90 G4PhysicsTable* theMeanFreePathTable; // table for mean free path >> 91 >> 92 G4double LowestEnergyLimit ; // low energy limit of the crossection formula >> 93 G4double HighestEnergyLimit ; // high energy limit of the crossection formula >> 94 G4int NumbBinTable ; // number of bins in the crossection table 96 }; 95 }; 97 96 98 //....oooOO0OOooo........oooOO0OOooo........oo << 97 #include "G4ComptonScattering.icc" 99 98 100 #endif 99 #endif 101 100 102 101