G4Generator2BN.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // $Id$
00027 //
00028 // -------------------------------------------------------------------
00029 //
00030 // GEANT4 Class file
00031 //
00032 //
00033 // File name:  G4Generator2BN
00034 //
00035 // Author:     Andreia Trindade (andreia@lip.pt)
00036 //             Pedro Rodrigues  (psilva@lip.pt)
00037 //             Luis Peralta      (luis@lip.pt)
00038 // 
00039 // Creation date: 2 June 2003
00040 //
00041 // Modifications: 
00042 // 02 Jun 2003                           First implementation acording with new design
00043 // 07 Nov 2003                           Lockup tables for fast initialization
00044 //               
00045 //
00046 // Class Description: 
00047 //
00048 // Concrete class for Bremsstrahlung Angular Distribution Generation - 2BN Distribution
00049 // Further documentation available from http://www.ge.infn.it/geant4/lowE
00050 
00051 // -------------------------------------------------------------------
00052 //
00053 
00054 #ifndef G4Generator2BN_h
00055 #define G4Generator2BN_h 1
00056 
00057 #include "G4ios.hh"
00058 #include "globals.hh"
00059 #include "G4VEmAngularDistribution.hh"
00060 #include "G4Generator2BS.hh"
00061 
00062 class G4Generator2BN : public G4VEmAngularDistribution
00063 {
00064 
00065 public:
00066 
00067   G4Generator2BN(const G4String& name = "");
00068 
00069   virtual ~G4Generator2BN();
00070 
00071   virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp,
00072                                          G4double out_energy,
00073                                          G4int Z,
00074                                          const G4Material* mat = 0);
00075 
00076   void PrintGeneratorInformation() const;
00077 
00078 public:
00079 
00080   void SetInterpolationThetaIncrement(G4double increment) {dtheta = increment;};
00081   G4double GetInterpolationThetaIncrement() {return dtheta;};
00082 
00083   void SetGammaCutValue(G4double cutValue) {kcut = cutValue;};
00084   G4double GetGammaCutValue() {return kcut;};
00085 
00086   void ConstructMajorantSurface();
00087 
00088 protected:
00089 
00090   G4double CalculateFkt(G4double k, G4double theta, G4double A, G4double c) const;
00091   G4double Calculatedsdkdt(G4double kout, G4double theta, G4double Eel) const;
00092 
00093 private:
00094 
00095   // hide assignment operator 
00096   G4Generator2BN & operator=(const  G4Generator2BN &right);
00097   G4Generator2BN(const  G4Generator2BN&);
00098 
00099   G4Generator2BS fGenerator2BS; 
00100 
00101   G4double b;
00102   G4int index_min, index_max;
00103   G4double kmin, Ekmin;
00104   G4double dtheta;
00105   G4double kcut;
00106   static G4double Atab[320];
00107   static G4double ctab[320];
00108 
00109   G4int nwarn;
00110 
00111 };
00112 
00113 #endif
00114 

Generated on Mon May 27 17:48:21 2013 for Geant4 by  doxygen 1.4.7