Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 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 // Author: Riccardo Capra <capra@ge.infn.it> 29 // 30 // History: 31 // ----------- 32 // 30 Jun 2005 RC Created 33 // 14 Oct 2007 MGP Removed in 34 // 15 Jul 2009 N.A.Karakatsanis New method 35 // to enhance 36 // 37 // ------------------------------------------- 38 39 // Class description: 40 // Low Energy Electromagnetic Physics 41 // Data set for an electromagnetic physics pro 42 // A strategy pattern is used to encapsulate a 43 // ------------------------------------------- 44 45 #ifndef G4CrossSectionDataSet_HH 46 #define G4CrossSectionDataSet_HH 1 47 48 #include <CLHEP/Units/SystemOfUnits.h> 49 50 #include "G4ShellEMDataSet.hh" 51 52 class G4CrossSectionDataSet : public G4VEMData 53 { 54 55 public: 56 explicit G4CrossSectionDataSet(G4VDataSetAlg 57 G4double xUnit=CLHEP::MeV, 58 G4double dataUnit=CLHEP::barn); 59 60 virtual ~G4CrossSectionDataSet(); 61 62 virtual G4double FindValue(G4double e, G4int 63 64 virtual void PrintData(void) const; 65 66 virtual const G4VEMDataSet* GetComponent(G4 67 { return components[componentId]; } 68 69 virtual void AddComponent(G4VEMDataSet* data 70 { components.push_back(dataSet); } 71 72 virtual size_t NumberOfComponents(void) cons 73 { return components.size(); } 74 75 virtual const G4DataVector& GetEnergies(G4in 76 { return GetComponent(componentId)->GetEnerg 77 78 virtual const G4DataVector& GetData(G4int co 79 { return GetComponent(componentId)->GetData( 80 81 virtual const G4DataVector& GetLogEnergies(G 82 { return GetComponent(componentId)->GetLogEn 83 84 virtual const G4DataVector& GetLogData(G4int 85 { return GetComponent(componentId)->GetLogDa 86 87 virtual void SetEnergiesData(G4DataVector* x 88 89 virtual void SetLogEnergiesData(G4DataVector 90 G4DataVector 91 G4DataVector 92 G4DataVector 93 G4int compon 94 95 virtual G4bool LoadData(const G4String & arg 96 virtual G4bool LoadNonLogData(const G4String 97 98 virtual G4bool SaveData(const G4String & arg 99 100 virtual G4double RandomSelect(G4int /*compon 101 102 private: 103 104 G4String FullFileName(const G4String & argFi 105 106 // Hide copy constructor and assignment oper 107 explicit G4CrossSectionDataSet(); 108 G4CrossSectionDataSet(const G4CrossSectionDa 109 G4CrossSectionDataSet& operator=(const G4Cro 110 111 G4double GetUnitEnergies() const { return un 112 G4double GetUnitData() const { return unitDa 113 const G4VDataSetAlgorithm* GetAlgorithm() co 114 115 void CleanUpComponents(void); 116 117 std::vector<G4VEMDataSet*> components; 118 119 G4VDataSetAlgorithm* algorithm; // 120 121 G4double unitEnergies; 122 G4double unitData; 123 124 G4int z = 0; 125 }; 126 #endif /* G4CrossSectionDataSet_HH */ 127