Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:58:52

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 //
0027 // P. Arce, June-2014 Conversion neutron_hp to particle_hp
0028 //
0029 // June-2019 - E. Mendoza --> perform some corrections
0030 
0031 #ifndef G4ParticleHPKallbachMannSyst_h
0032 #define G4ParticleHPKallbachMannSyst_h 1
0033 
0034 #include "globals.hh"
0035 
0036 class G4ParticleHPKallbachMannSyst
0037 {
0038   public:
0039     G4ParticleHPKallbachMannSyst(G4double aCompoundFraction, G4double anIncidentEnergy,
0040                                  G4double anIncidentMass, G4double aProductEnergy,
0041                                  G4double aProductMass, G4double aResidualMass, G4int aResidualA,
0042                                  G4int aResidualZ, G4double aTargetMass, G4int aTargetA,
0043                                  G4int aTargetZ, G4int aProjectileA, G4int aProjectileZ,
0044                                  G4int aProductA, G4int aProductZ)
0045     {
0046       theCompoundFraction = aCompoundFraction;
0047       theIncidentEnergy = anIncidentEnergy;
0048       theIncidentMass = anIncidentMass;
0049       theProductEnergy = aProductEnergy;
0050       theProductMass = aProductMass;
0051       theResidualMass = aResidualMass;
0052       theResidualA = aResidualA;
0053       theResidualZ = aResidualZ;
0054       theTargetMass = aTargetMass;
0055       theTargetA = aTargetA;
0056       theTargetZ = aTargetZ;
0057       theProjectileA = aProjectileA;
0058       theProjectileZ = aProjectileZ;
0059       theProductA = aProductA;
0060       theProductZ = aProductZ;
0061     }
0062 
0063     ~G4ParticleHPKallbachMannSyst() = default;
0064 
0065     G4double Sample(G4double anEnergy);
0066 
0067     G4double Kallbach(G4double cosTh, G4double anEnergy);
0068 
0069     G4double GetKallbachZero(G4double anEnergy);
0070 
0071     G4double A(G4double anEnergy);
0072 
0073     G4double SeparationEnergy(G4int Ac, G4int Nc, G4int AA, G4int ZA, G4int Abinding,
0074                               G4int Zbinding);
0075 
0076   private:
0077     G4double theCompoundFraction;
0078     G4double theIncidentEnergy;
0079     G4double theIncidentMass;
0080     G4double theProductEnergy;
0081     G4double theProductMass;
0082     G4double theResidualMass;
0083     G4double theTargetMass;
0084     G4int theResidualA;
0085     G4int theResidualZ;
0086     G4int theTargetA;
0087     G4int theTargetZ;
0088     G4int theProjectileA;
0089     G4int theProjectileZ;
0090     G4int theProductA;
0091     G4int theProductZ;
0092 };
0093 
0094 #endif