Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/include/G4LENDManager.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 ]

  1 //
  2 // ********************************************************************
  3 // * License and Disclaimer                                           *
  4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.                             *
 10 // *                                                                  *
 11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                                                  *
 18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // ********************************************************************
 25 //
 26 #ifndef G4LENDManager_h
 27 #define G4LENDManager_h 1
 28 
 29 // Class Description
 30 // Manager of LEND (Low Energy Nuclear Data) target (nucleus) 
 31 // LEND is Geant4 interface for GIDI (General Interaction Data Interface) 
 32 // which gives a discription of nuclear and atomic reactions, such as
 33 //    Binary collision cross sections
 34 //    Particle number multiplicity distributions of reaction products
 35 //    Energy and angular distributions of reaction products
 36 //    Derived calculational constants
 37 // GIDI is developped at Lawrence Livermore National Laboratory
 38 // Class Description - End
 39 
 40 // 071025 First implementation done by T. Koi (SLAC/SCCS)
 41 // 101118 Name modifications for release T. Koi (SLAC/PPA)
 42 
 43 #include "G4LENDHeader.hh"
 44 #include "G4ParticleDefinition.hh"
 45 #include "G4NistElementBuilder.hh" 
 46 #include "G4IonTable.hh"
 47 
 48 #include <map>
 49 
 50 struct lend_target
 51 {
 52 // properties for the traget
 53    G4GIDI* lend;
 54    G4GIDI_target* target;
 55    
 56    G4ParticleDefinition* proj;
 57    G4int target_code;
 58    G4String evaluation;
 59 };
 60 
 61 
 62 
 63 class G4LENDManager 
 64 {
 65 
 66       static G4LENDManager* lend_manager;
 67    
 68    //protected: 
 69    private: 
 70       G4LENDManager();
 71       G4LENDManager( const G4LENDManager& );
 72       G4LENDManager& operator=(const G4LENDManager&);
 73 
 74       ~G4LENDManager();
 75 
 76    public:
 77       static G4LENDManager* GetInstance() 
 78       {
 79          if ( lend_manager == NULL) lend_manager = new G4LENDManager();
 80          return lend_manager;
 81       };
 82 
 83       G4GIDI_target* GetLENDTarget( G4ParticleDefinition* , const G4String& , G4int iZ , G4int iA , G4int iM = 0 );
 84       std::vector< G4String > IsLENDTargetAvailable( G4ParticleDefinition* , G4int iZ , G4int iA , G4int iM = 0 );
 85       G4int GetNucleusEncoding ( G4int iZ , G4int iA , G4int iM );
 86 
 87       G4NistElementBuilder* GetNistElementBuilder(){ return nistElementBuilder; };
 88 
 89       G4int GetVerboseLevel(){ return verboseLevel; };
 90       G4bool RequestChangeOfVerboseLevel( G4int );
 91       G4double GetExcitationEnergyOfExcitedIsomer( G4int , G4int , G4int );
 92    
 93    private:
 94 
 95       G4int verboseLevel;
 96 
 97       std::vector< lend_target > v_lend_target; 
 98 
 99       //        proj                              
100       std::map< G4ParticleDefinition* , G4GIDI* > proj_lend_map; 
101 
102 //    std::map< G4ParticleDefinition* , std::vector< G4int > > proj_checked_map; 
103 
104       G4IonTable* ionTable;
105 
106       G4NistElementBuilder* nistElementBuilder; 
107 
108       void printBanner();
109 
110         //nucleus code
111         //of excited isomer target, excitation energy 
112       std::map< G4int , G4double > mExcitationEnergy;
113 };
114 
115 #endif
116