Ignore:
Timestamp:
Apr 6, 2009, 12:21:12 PM (15 years ago)
Author:
garnier
Message:

update processes

Location:
trunk/source/processes/electromagnetic/highenergy/include
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh

    r819 r961  
    2626//
    2727// $Id: G4AnnihiToMuPair.hh,v 1.2 2006/06/29 19:32:12 gunter Exp $
    28 // GEANT4 tag $Name: $
     28// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2929//
    3030//         ------------ G4AnnihiToMuPair physics process ------
  • trunk/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BetheBlochNoDeltaModel.hh,v 1.7 2006/06/29 19:32:14 gunter Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4BetheBlochNoDeltaModel.hh,v 1.8 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6868                                        G4double cutEnergy);
    6969
    70   virtual G4double ComputeCrossSectionPerElectron(
    71                                         const G4ParticleDefinition*,
    72                                         G4double kineticEnergy,
    73                                         G4double cutEnergy,
    74                                         G4double maxEnergy);
     70  virtual G4double CrossSectionPerVolume(const G4Material*,
     71                                         const G4ParticleDefinition*,
     72                                         G4double kineticEnergy,
     73                                         G4double cutEnergy,
     74                                         G4double maxEnergy);
    7575
    7676private:
     
    8484//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    8585
    86 inline G4double G4BetheBlochNoDeltaModel::ComputeDEDXPerVolume(
    87                             const G4Material* material,
    88                             const G4ParticleDefinition* pd,
    89                             G4double kinEnergy, G4double)
    90 {
    91   G4double dedx = G4BetheBlochModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);
    92   return dedx;
    93 }
    94 
    95 inline G4double G4BetheBlochNoDeltaModel::ComputeCrossSectionPerElectron(
    96                             const G4ParticleDefinition*,
    97                             G4double, G4double, G4double)
    98 {
    99   return 0.0;
    100 }
    101 
    102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    103 
    10486#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BraggNoDeltaModel.hh,v 1.6 2006/06/29 19:32:16 gunter Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4BraggNoDeltaModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6868                                        G4double cutEnergy);
    6969
    70   virtual G4double ComputeCrossSectionPerElectron(
     70  virtual G4double CrossSectionPerVolume(const G4Material*,
    7171                                         const G4ParticleDefinition*,
    7272                                         G4double kineticEnergy,
    7373                                         G4double cutEnergy,
    7474                                         G4double maxEnergy);
    75 
    7675private:
    7776
     
    8483//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    8584
    86 inline G4double G4BraggNoDeltaModel::ComputeDEDXPerVolume(
    87                             const G4Material* material,
    88                             const G4ParticleDefinition* pd,
    89                             G4double kinEnergy, G4double)
    90 {
    91   G4double dedx = G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);
    92   return dedx;
    93 }
    94 
    95 inline G4double G4BraggNoDeltaModel::ComputeCrossSectionPerElectron(
    96                             const G4ParticleDefinition*,
    97                             G4double, G4double, G4double)
    98 {
    99   return 0.0;
    100 }
    101 
    102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    103 
    10485#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh

    r819 r961  
    2626//
    2727// $Id: G4GammaConversionToMuons.hh,v 1.2 2006/06/29 19:32:18 gunter Exp $
    28 // GEANT4 tag $Name: $
     28// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2929//
    3030//         ------------ G4GammaConversionToMuons physics process ------
  • trunk/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4Vee2hadrons.hh,v 1.3 2007/05/22 17:37:30 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4Vee2hadrons.hh,v 1.4 2008/07/10 18:06:38 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6363public:
    6464
    65   G4Vee2hadrons() {};
     65  G4Vee2hadrons() : lowEnergy(0.0), highEnergy(1.1*GeV) {};
    6666
    6767  virtual ~G4Vee2hadrons() {};
     
    7676
    7777  virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
    78                       G4double, const G4ThreeVector&) const = 0;
     78                                 G4double, const G4ThreeVector&) = 0;
     79
     80  void SetLowEnergy(G4double val) {lowEnergy = val;};
     81
     82  G4double LowEnergy() const {return lowEnergy;};
     83
     84  void SetHighEnergy(G4double val) {highEnergy = val;};
     85
     86  G4double HighEnergy() const {return highEnergy;};
    7987
    8088private:
     
    8492  G4Vee2hadrons(const  G4Vee2hadrons&);
    8593
     94  G4double lowEnergy;
     95  G4double highEnergy;
     96
    8697};
    8798
  • trunk/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eeCrossSections.hh,v 1.2 2006/06/29 19:32:22 gunter Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4eeCrossSections.hh,v 1.3 2008/07/10 18:06:38 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    7070  G4double CrossSection3pi(G4double);
    7171
     72  G4double CrossSectionPi0G(G4double);
     73
     74  G4double CrossSectionEtaG(G4double);
     75
    7276  G4double CrossSection2Kcharged(G4double);
    7377
    7478  G4double CrossSection2Kneutral(G4double);
     79
     80  std::complex<G4double> DpRho(G4double e);
    7581
    7682private:
     
    95101  G4double WidthPhi(G4double e);
    96102
    97   std::complex<G4double> DpRho(G4double e);
    98 
    99103  std::complex<G4double> DpOm(G4double e);
    100104
    101105  std::complex<G4double> DpPhi(G4double e);
    102 
    103106
    104107  // hide assignment operator
  • trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eeToHadrons.hh,v 1.8 2007/05/23 08:50:41 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4eeToHadrons.hh,v 1.9 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    7070
    7171  // Print out of the class parameters
    72   void PrintInfo();
     72  virtual void PrintInfo();
    7373
    7474  // Set the factor to artificially increase the crossSection (default 1)
     
    7777protected:
    7878
    79   void InitialiseProcess(const G4ParticleDefinition*);
     79  virtual void InitialiseProcess(const G4ParticleDefinition*);
    8080
    8181private:
     
    9292};
    9393
    94 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    95 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    96 
    97 inline G4bool G4eeToHadrons::IsApplicable(const G4ParticleDefinition& p)
    98 {
    99   return (&p == G4Positron::Positron());
    100 }
    101 
    10294//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    10395
  • trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eeToHadronsModel.hh,v 1.6 2007/05/22 17:37:30 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4eeToHadronsModel.hh,v 1.7 2008/07/10 18:06:38 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6363public:
    6464
    65   G4eeToHadronsModel(const G4Vee2hadrons*, G4int ver=0,
     65  G4eeToHadronsModel(G4Vee2hadrons*, G4int ver=0,
    6666                     const G4String& nam = "eeToHadrons");
    6767
     
    6969
    7070  virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
    71 
    72   G4double PeakEnergy() const;
    7371
    7472  virtual G4double CrossSectionPerVolume(const G4Material*,
     
    9997  G4DynamicParticle* GenerateCMPhoton(G4double);
    10098
     99  inline G4double PeakEnergy() const;
     100
    101101private:
    102102
     
    107107  G4eeToHadronsModel(const  G4eeToHadronsModel&);
    108108
    109   const G4Vee2hadrons*  model;
     109  G4Vee2hadrons*        model;
    110110  G4ParticleDefinition* theGamma;
    111111  G4PhysicsVector*      crossPerElectron;
     
    133133//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    134134
    135 inline G4double G4eeToHadronsModel::CrossSectionPerVolume(
    136                                       const G4Material* mat,
    137                                       const G4ParticleDefinition* p,
    138                                       G4double kineticEnergy,
    139                                       G4double, G4double)
    140 {
    141   return mat->GetElectronDensity()*
    142     ComputeCrossSectionPerElectron(p, kineticEnergy);
    143 }
    144 
    145 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    146 
    147 inline G4double G4eeToHadronsModel::ComputeCrossSectionPerAtom(
    148                                       const G4ParticleDefinition* p,
    149                                       G4double kineticEnergy,
    150                                       G4double Z, G4double,
    151                                       G4double, G4double)
    152 {
    153   return Z*ComputeCrossSectionPerElectron(p, kineticEnergy);
    154 }
    155 
    156 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    157 
    158135#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eeToHadronsMultiModel.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4eeToHadronsMultiModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    5959
    6060class G4eeCrossSections;
     61class G4Vee2hadrons;
    6162
    6263class G4eeToHadronsMultiModel : public G4VEmModel
     
    8485                                         G4double maxEnergy = DBL_MAX);
    8586
    86   virtual G4double ComputeCrossSectionPerElectron(
    87                                          const G4ParticleDefinition*,
    88                                          G4double kineticEnergy,
    89                                          G4double cutEnergy = 0.0,
    90                                          G4double maxEnergy = DBL_MAX);
    91 
    9287  virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
    9388                                 const G4MaterialCutsCouple*,
     
    9691                                 G4double maxEnergy = DBL_MAX);
    9792
    98   void PrintInfo();
     93  virtual void PrintInfo();
    9994
    10095  // Set the factor to artificially increase the crossSection (default 1)
    10196  void SetCrossSecFactor(G4double fac);
    10297
     98  inline G4double ComputeCrossSectionPerElectron(
     99                                         const G4ParticleDefinition*,
     100                                         G4double kineticEnergy,
     101                                         G4double cutEnergy = 0.0,
     102                                         G4double maxEnergy = DBL_MAX);
     103
    103104private:
     105
     106  void AddEEModel(G4Vee2hadrons*);
    104107
    105108  // hide assignment operator
     
    128131//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    129132
    130 inline G4double G4eeToHadronsMultiModel::CrossSectionPerVolume(
    131                                       const G4Material* mat,
    132                                       const G4ParticleDefinition* p,
    133                                       G4double kineticEnergy,
    134                                       G4double, G4double)
    135 {
    136   return mat->GetElectronDensity()*
    137     ComputeCrossSectionPerElectron(p, kineticEnergy);
    138 }
    139 
    140 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    141 
    142 inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerAtom(
    143                                       const G4ParticleDefinition* p,
    144                                       G4double kineticEnergy,
    145                                       G4double Z, G4double,
    146                                       G4double, G4double)
    147 {
    148   return Z*ComputeCrossSectionPerElectron(p, kineticEnergy);
    149 }
    150 
    151 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    152 
    153133inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerElectron(
    154134                                      const G4ParticleDefinition*,
     
    169149//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    170150
    171 inline
    172 void G4eeToHadronsMultiModel::SampleSecondaries(std::vector<G4DynamicParticle*>* newp,
    173                                                 const G4MaterialCutsCouple* couple,
    174                                                 const G4DynamicParticle* dp,
    175                                                 G4double, G4double)
    176 {
    177   G4double kinEnergy = dp->GetKineticEnergy();
    178   if (kinEnergy > thKineticEnergy) {
    179     G4double q = cumSum[nModels-1]*G4UniformRand();
    180     for(G4int i=0; i<nModels; i++) {
    181       if(q <= cumSum[i]) {
    182         (models[i])->SampleSecondaries(newp, couple,dp);
    183         if(newp->size() > 0) fParticleChange->ProposeTrackStatus(fStopAndKill);
    184         break;
    185       }
    186     }
    187   }
    188 }
    189 
    190 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    191 
    192151#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4eeToTwoPiModel.hh,v 1.3 2007/05/22 17:37:30 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4eeToTwoPiModel.hh,v 1.5 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6767  virtual ~G4eeToTwoPiModel();
    6868
    69   G4double ThresholdEnergy() const;
     69  virtual G4double ThresholdEnergy() const;
    7070
    71   G4double PeakEnergy() const;
     71  virtual G4double PeakEnergy() const;
    7272
    73   G4double ComputeCrossSection(G4double) const;
     73  virtual G4double ComputeCrossSection(G4double) const;
    7474
    75   G4PhysicsVector* PhysicsVector(G4double, G4double) const;
     75  virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const;
    7676
    7777  virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
    78               G4double, const G4ThreeVector&) const;
     78              G4double, const G4ThreeVector&);
    7979
    8080private:
    81 
    82   void Initialise();
    8381
    8482  // hide assignment operator
     
    9088  G4double massPi;
    9189  G4double massRho;
    92   G4double highEnergy;
    9390
    9491};
     
    9693//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    9794
    98 inline G4double G4eeToTwoPiModel::ThresholdEnergy() const
    99 {
    100   return 2.0*massPi;
    101 }
    102 
    103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    104 
    105 inline G4double G4eeToTwoPiModel::PeakEnergy() const
    106 {
    107   return massRho;
    108 }
    109 
    110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    111 
    112 inline G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const
    113 {
    114   G4double ee = std::min(GeV,e);
    115   return cross->CrossSection2pi(ee);
    116 }
    117 
    118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    119 
    12095#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4hhIonisation.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4hhIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6969  virtual ~G4hhIonisation();
    7070
    71   G4bool IsApplicable(const G4ParticleDefinition& p);
     71  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
    7272
    73   G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
    74                             const G4Material*, G4double cut);
     73  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
     74                                    const G4Material*, G4double cut);
    7575
    7676  // Print out of the class parameters
     
    104104
    105105//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    106 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    107 
    108 inline G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p)
    109 {
    110   return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV &&
    111          !p.IsShortLived());
    112 }
    113 
    114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    115 
    116 inline G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,
    117                                                 const G4Material*,
    118                                                 G4double cut)
    119 {
    120   G4double x = 0.5*cut/electron_mass_c2;
    121   G4double y = electron_mass_c2/mass;
    122   G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y));
    123   return mass*(g - 1.0);
    124 }
    125 
    126 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    127106
    128107#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4mplIonisation.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4mplIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    7272  virtual ~G4mplIonisation();
    7373
    74   G4bool IsApplicable(const G4ParticleDefinition& p);
     74  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
    7575
    7676  // Print out of the class parameters
     
    9494
    9595//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    96 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    97 
    98 inline G4bool G4mplIonisation::IsApplicable(const G4ParticleDefinition& p)
    99 {
    100   return (p.GetParticleName() == "monopole");
    101 }
    102 
    103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    10496
    10597#endif
  • trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4mplIonisationModel.hh,v 1.6 2007/11/13 18:36:29 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4mplIonisationModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    120120
    121121//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    122 
    123 inline void G4mplIonisationModel::SampleSecondaries(std::vector<G4DynamicParticle*>*,
    124                                                     const G4MaterialCutsCouple*,
    125                                                     const G4DynamicParticle*,
    126                                                     G4double,
    127                                                     G4double)
    128 {}
    129 
    130 inline G4double G4mplIonisationModel::Dispersion(
    131                           const G4Material* material,
    132                           const G4DynamicParticle* dp,
    133                                 G4double& tmax,
    134                                 G4double& length)
    135 {
    136   G4double siga = 0.0;
    137   G4double tau   = dp->GetKineticEnergy()/mass;
    138   if(tau > 0.0) {
    139     G4double electronDensity = material->GetElectronDensity();
    140     G4double gam   = tau + 1.0;
    141     G4double invbeta2 = (gam*gam)/(tau * (tau+2.0));
    142     siga  = (invbeta2 - 0.5) * twopi_mc2_rcl2 * tmax * length
    143       * electronDensity * chargeSquare;
    144   }
    145   return siga;
    146 }
    147 
    148 
    149 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Note: See TracChangeset for help on using the changeset viewer.