Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/standard/include/G4GammaConversion.hh

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 /processes/electromagnetic/standard/include/G4GammaConversion.hh (Version 11.3.0) and /processes/electromagnetic/standard/include/G4GammaConversion.hh (Version 1.0)


                                                   >>   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 <<   7 //
  6 // * the Geant4 Collaboration.  It is provided <<   8 // $Id: G4GammaConversion.hh,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
  7 // * conditions of the Geant4 Software License <<   9 // GEANT4 tag $Name: geant4-01-00 $
  8 // * LICENSE and available at  http://cern.ch/ <<  10 //
  9 // * include a list of copyright holders.      <<  11 // 
 10 // *                                           <<  12 // ------------------------------------------------------------
 11 // * Neither the authors of this software syst <<  13 //      GEANT 4 class header file
 12 // * institutes,nor the agencies providing fin <<  14 //      CERN Geneva Switzerland
 13 // * work  make  any representation or  warran <<  15 //
 14 // * regarding  this  software system or assum <<  16 //      For information related to this code contact:
 15 // * use.  Please see the license in the file  <<  17 //      CERN, CN Division, ASD group
 16 // * for the full disclaimer and the limitatio <<  18 //      History: first implementation, based on object model of
 17 // *                                           <<  19 //      2nd December 1995, G.Cosmo
 18 // * This  code  implementation is the result  <<  20 //      ------------ G4GammaConversion physics process ------
 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 //                                             << 
 26 //                                             << 
 27 //                                             << 
 28 //                                             << 
 29 //------------------ G4GammaConversion physics << 
 30 //                   by Michel Maire, 24 May 1     21 //                   by Michel Maire, 24 May 1996
 31 //                                             <<  22 // ************************************************************
 32 // 11-06-96, Added GetRandomAtom() method and      23 // 11-06-96, Added GetRandomAtom() method and new data member
 33 //           for cumulative total cross sectio     24 //           for cumulative total cross section, by M.Maire
 34 // 21-06-96, SetCuts inplementation, M.Maire       25 // 21-06-96, SetCuts inplementation, M.Maire
 35 // 16-09-96, Dynamical array PartialSumSigma,      26 // 16-09-96, Dynamical array PartialSumSigma, M.Maire
 36 // 14-01-97, crossection table + meanfreepath      27 // 14-01-97, crossection table + meanfreepath table.
 37 //           PartialSumSigma removed, M.Maire      28 //           PartialSumSigma removed, M.Maire
 38 // 14-03-97, new physics scheme for geant4alph     29 // 14-03-97, new physics scheme for geant4alpha, M.Maire
 39 // 13-08-98, new methods SetBining() PrintInfo <<  30 // 13-08-98, new methods SetBining() PrintInfo() 
 40 // 03-08-01, new methods Store/Retrieve Physic <<  31 // ------------------------------------------------------------
 41 // 06-08-01, BuildThePhysicsTable() called fro << 
 42 // 19-09-01, come back to previous ProcessName << 
 43 // 20-09-01, DoIt: fminimalEnergy = 1*eV (mma) << 
 44 // 01-10-01, come back to BuildPhysicsTable(co << 
 45 // 13-08-04, suppress .icc file                << 
 46 //           public ComputeCrossSectionPerAtom << 
 47 // 09-11-04, Remove Retrieve tables (V.Ivantch << 
 48 // 19-04-05, Redesign - use G4VEmProcess inter << 
 49 // 04-05-05, Make class to be default (V.Ivanc << 
 50 // 09-08-06, add SetModel(G4VEmModel*) (mma)   << 
 51 // 12-09-06, move SetModel(G4VEmModel*) in G4V << 
 52 // ------------------------------------------- << 
 53                                                << 
 54 // class description                           << 
 55 //                                             << 
 56                                                << 
 57 //....oooOO0OOooo........oooOO0OOooo........oo << 
 58 //....oooOO0OOooo........oooOO0OOooo........oo << 
 59                                                    32 
 60 #ifndef G4GammaConversion_h                        33 #ifndef G4GammaConversion_h
 61 #define G4GammaConversion_h 1                      34 #define G4GammaConversion_h 1
 62                                                    35 
                                                   >>  36 #include "G4ios.hh" 
 63 #include "globals.hh"                              37 #include "globals.hh"
 64 #include "G4VEmProcess.hh"                     <<  38 #include "Randomize.hh" 
 65 #include "G4Gamma.hh"                          <<  39 #include "G4VDiscreteProcess.hh"
                                                   >>  40 #include "G4PhysicsTable.hh"
                                                   >>  41 #include "G4PhysicsLogVector.hh"
                                                   >>  42 #include "G4Element.hh"
                                                   >>  43 #include "G4Gamma.hh" 
                                                   >>  44 #include "G4Electron.hh"
                                                   >>  45 #include "G4Positron.hh"
                                                   >>  46 #include "G4Step.hh"
                                                   >>  47  
                                                   >>  48 class G4GammaConversion : public G4VDiscreteProcess
                                                   >>  49  
                                                   >>  50 {  
                                                   >>  51   public:
                                                   >>  52  
                                                   >>  53      G4GammaConversion(const G4String& processName ="conv");
                                                   >>  54  
                                                   >>  55     ~G4GammaConversion();
 66                                                    56 
 67 //....oooOO0OOooo........oooOO0OOooo........oo <<  57      G4bool IsApplicable(const G4ParticleDefinition&);
 68                                                <<  58      
 69 class G4ParticleDefinition;                    <<  59      void SetPhysicsTableBining(G4double lowE, G4double highE, G4int nBins);
 70 class G4VEmModel;                              << 
 71 class G4MaterialCutsCouple;                    << 
 72 class G4DynamicParticle;                       << 
 73                                                << 
 74 class G4GammaConversion : public G4VEmProcess  << 
 75                                                    60 
 76 {                                              <<  61      void BuildPhysicsTable(const G4ParticleDefinition& GammaType);
 77 public:  // with description                   <<  62      
                                                   >>  63      void PrintInfoDefinition();
 78                                                    64 
 79   explicit G4GammaConversion(const G4String& p <<  65      G4double GetMeanFreePath(const G4Track& aTrack,
 80            G4ProcessType type = fElectromagnet <<  66                               G4double previousStepSize,
                                                   >>  67                               G4ForceCondition* condition);
 81                                                    68 
 82   ~G4GammaConversion() override;               <<  69      G4double GetMicroscopicCrossSection(const G4DynamicParticle* aDynamicGamma,
                                                   >>  70                                          G4Element*         anElement);
 83                                                    71 
 84   // true for Gamma only.                      <<  72      G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
 85   G4bool IsApplicable(const G4ParticleDefiniti <<  73                                     const G4Step& aStep);
                                                   >>  74  
                                                   >>  75   protected:
 86                                                    76 
 87   G4double MinPrimaryEnergy(const G4ParticleDe <<  77      virtual G4double ComputeMicroscopicCrossSection(G4double GammaEnergy, 
 88           const G4Material*) override;         <<  78                                              G4double AtomicNumber);
 89                                                    79 
 90   // print documentation in html format        <<  80      virtual G4double ComputeMeanFreePath (G4double GammaEnergy, 
 91   void ProcessDescription(std::ostream&) const <<  81                                            G4Material* aMaterial);
 92                                                    82 
 93   G4GammaConversion & operator=(const  G4Gamma <<  83   private:
 94   G4GammaConversion(const  G4GammaConversion&) << 
 95                                                    84 
 96 protected:                                     <<  85      G4Element* SelectRandomAtom(const G4DynamicParticle* aDynamicGamma,
                                                   >>  86                                  G4Material* aMaterial);
 97                                                    87 
 98   virtual void InitialiseProcess(const G4Parti <<  88      G4double ScreenFunction1(G4double ScreenVariable);
 99                                                    89 
100 private:                                       <<  90      G4double ScreenFunction2(G4double ScreenVariable);
101                                                    91      
102   G4bool isInitialised = false;                <<  92   private:
                                                   >>  93   
                                                   >>  94      // hide assignment operator as private 
                                                   >>  95      G4GammaConversion& operator=(const G4GammaConversion &right);
                                                   >>  96      G4GammaConversion(const G4GammaConversion& );
                                                   >>  97      
                                                   >>  98   private:
                                                   >>  99   
                                                   >> 100      G4PhysicsTable* theCrossSectionTable;    // table for crossection
                                                   >> 101      G4PhysicsTable* theMeanFreePathTable;
                                                   >> 102      
                                                   >> 103      G4double LowestEnergyLimit ;      // low  energy limit of the crossection formula
                                                   >> 104      G4double HighestEnergyLimit ;     // high energy limit of the crossection formula 
                                                   >> 105      G4int NumbBinTable ;              // number of bins in the crossection table
                                                   >> 106 
                                                   >> 107      G4double MeanFreePath;            // actual Mean Free Path (current medium)
103 };                                                108 };
104                                                   109 
105 //....oooOO0OOooo........oooOO0OOooo........oo << 110 #include "G4GammaConversion.icc"
106                                                   111   
107 #endif                                            112 #endif
108                                                   113  
109                                                   114