G4CompositeEMDataSet Class Reference

#include <G4CompositeEMDataSet.hh>

Inheritance diagram for G4CompositeEMDataSet:

G4VEMDataSet

Public Member Functions

 G4CompositeEMDataSet (G4VDataSetAlgorithm *argAlgorithm, G4double eUnit=CLHEP::MeV, G4double dataUnit=CLHEP::barn, G4int zMin=1, G4int zMax=99)
virtual ~G4CompositeEMDataSet ()
virtual G4double FindValue (G4double x, G4int componentId=0) const
virtual void PrintData (void) const
virtual const G4VEMDataSetGetComponent (G4int componentId) const
virtual void AddComponent (G4VEMDataSet *dataSet)
virtual size_t NumberOfComponents () const
virtual const G4DataVectorGetEnergies (G4int componentId) const
virtual const G4DataVectorGetData (G4int componentId) const
virtual const G4DataVectorGetLogEnergies (G4int componentId) const
virtual const G4DataVectorGetLogData (G4int componentId) const
virtual void SetEnergiesData (G4DataVector *x, G4DataVector *data, G4int componentId)
virtual void SetLogEnergiesData (G4DataVector *xData, G4DataVector *data, G4DataVector *xLogData, G4DataVector *Logdata, G4int componentId)
virtual G4bool LoadData (const G4String &fileName)
virtual G4bool LoadNonLogData (const G4String &fileName)
virtual G4bool SaveData (const G4String &fileName) const
virtual G4double RandomSelect (G4int componentId) const

Detailed Description

Definition at line 59 of file G4CompositeEMDataSet.hh.


Constructor & Destructor Documentation

G4CompositeEMDataSet::G4CompositeEMDataSet ( G4VDataSetAlgorithm argAlgorithm,
G4double  eUnit = CLHEP::MeV,
G4double  dataUnit = CLHEP::barn,
G4int  zMin = 1,
G4int  zMax = 99 
)

Definition at line 57 of file G4CompositeEMDataSet.cc.

References FatalException, G4CompositeEMDataSet(), and G4Exception().

Referenced by G4CompositeEMDataSet().

00062   :
00063   algorithm(argAlgorithm),
00064   unitEnergies(argUnitEnergies),
00065   unitData(argUnitData),
00066   minZ(argMinZ),
00067   maxZ(argMaxZ)
00068 {
00069   if (algorithm == 0) 
00070   G4Exception("G4CompositeEMDataSet::G4CompositeEMDataSet",
00071               "em1003",FatalException,"interpolation == 0");
00072 
00073 }

G4CompositeEMDataSet::~G4CompositeEMDataSet (  )  [virtual]

Definition at line 77 of file G4CompositeEMDataSet.cc.

00078 {
00079   CleanUpComponents();
00080   if (algorithm) delete algorithm;
00081 }


Member Function Documentation

virtual void G4CompositeEMDataSet::AddComponent ( G4VEMDataSet dataSet  )  [inline, virtual]

Implements G4VEMDataSet.

Definition at line 75 of file G4CompositeEMDataSet.hh.

Referenced by LoadData(), and LoadNonLogData().

00075 { components.push_back(dataSet); }

G4double G4CompositeEMDataSet::FindValue ( G4double  x,
G4int  componentId = 0 
) const [virtual]

Implements G4VEMDataSet.

Definition at line 84 of file G4CompositeEMDataSet.cc.

References FatalException, G4VEMDataSet::FindValue(), G4Exception(), and GetComponent().

00085 {
00086   const G4VEMDataSet* component(GetComponent(argComponentId));
00087  
00088   if (component) return component->FindValue(argEnergy);
00089 
00090   std::ostringstream message;
00091   message << "G4CompositeEMDataSet::FindValue - component " << argComponentId << " not found";
00092  
00093   G4Exception("G4CompositeEMDataSet::FindValue",
00094               "em1004",FatalException,message.str().c_str());
00095  
00096   return 0.;
00097 }

virtual const G4VEMDataSet* G4CompositeEMDataSet::GetComponent ( G4int  componentId  )  const [inline, virtual]

Implements G4VEMDataSet.

Definition at line 74 of file G4CompositeEMDataSet.hh.

Referenced by FindValue(), GetData(), GetEnergies(), GetLogData(), GetLogEnergies(), PrintData(), RandomSelect(), and SaveData().

00074 { return components[componentId]; }

virtual const G4DataVector& G4CompositeEMDataSet::GetData ( G4int  componentId  )  const [inline, virtual]

Implements G4VEMDataSet.

Definition at line 79 of file G4CompositeEMDataSet.hh.

References GetComponent(), and G4VEMDataSet::GetData().

00079 { return GetComponent(componentId)->GetData(0); }

virtual const G4DataVector& G4CompositeEMDataSet::GetEnergies ( G4int  componentId  )  const [inline, virtual]

Implements G4VEMDataSet.

Definition at line 78 of file G4CompositeEMDataSet.hh.

References GetComponent(), and G4VEMDataSet::GetEnergies().

00078 { return GetComponent(componentId)->GetEnergies(0); }

virtual const G4DataVector& G4CompositeEMDataSet::GetLogData ( G4int  componentId  )  const [inline, virtual]

Implements G4VEMDataSet.

Definition at line 81 of file G4CompositeEMDataSet.hh.

References GetComponent(), and G4VEMDataSet::GetLogData().

00081 { return GetComponent(componentId)->GetLogData(0); }

virtual const G4DataVector& G4CompositeEMDataSet::GetLogEnergies ( G4int  componentId  )  const [inline, virtual]

Implements G4VEMDataSet.

Definition at line 80 of file G4CompositeEMDataSet.hh.

References GetComponent(), and G4VEMDataSet::GetLogEnergies().

00080 { return GetComponent(componentId)->GetLogEnergies(0); }

G4bool G4CompositeEMDataSet::LoadData ( const G4String fileName  )  [virtual]

Implements G4VEMDataSet.

Definition at line 155 of file G4CompositeEMDataSet.cc.

References AddComponent(), and G4VDataSetAlgorithm::Clone().

00156 {
00157   CleanUpComponents(); 
00158 
00159   for (G4int z(minZ); z<maxZ; z++)
00160     {
00161       G4VEMDataSet* component = new G4EMDataSet(z, algorithm->Clone(), unitEnergies, unitData);
00162       if (!component->LoadData(argFileName))
00163         {
00164           delete component;
00165           return false;
00166         }
00167       AddComponent(component);
00168     }
00169   return true;
00170 }

G4bool G4CompositeEMDataSet::LoadNonLogData ( const G4String fileName  )  [virtual]

Implements G4VEMDataSet.

Definition at line 173 of file G4CompositeEMDataSet.cc.

References AddComponent(), and G4VDataSetAlgorithm::Clone().

00174 {
00175   CleanUpComponents(); 
00176 
00177   for (G4int z(minZ); z<maxZ; z++)
00178     {
00179       G4VEMDataSet* component = new G4EMDataSet(z, algorithm->Clone(), unitEnergies, unitData);
00180       if (!component->LoadNonLogData(argFileName))
00181         {
00182           delete component;
00183           return false;
00184         }
00185       AddComponent(component);
00186     }
00187   return true;
00188 }

virtual size_t G4CompositeEMDataSet::NumberOfComponents ( void   )  const [inline, virtual]

Implements G4VEMDataSet.

Definition at line 76 of file G4CompositeEMDataSet.hh.

Referenced by PrintData().

00076 { return components.size(); }

void G4CompositeEMDataSet::PrintData ( void   )  const [virtual]

Implements G4VEMDataSet.

Definition at line 99 of file G4CompositeEMDataSet.cc.

References G4cout, G4endl, GetComponent(), CLHEP::detail::n, NumberOfComponents(), and G4VEMDataSet::PrintData().

00100 {
00101   const size_t n(NumberOfComponents());
00102 
00103   G4cout << "The data set has " << n << " components" << G4endl;
00104   G4cout << G4endl;
00105  
00106   size_t i(0);
00107  
00108   while (i<n)
00109     {
00110       G4cout << "--- Component " << i << " ---" << G4endl;
00111       GetComponent(i)->PrintData();
00112       i++;
00113     }
00114 }

G4double G4CompositeEMDataSet::RandomSelect ( G4int  componentId  )  const [virtual]

Implements G4VEMDataSet.

Definition at line 224 of file G4CompositeEMDataSet.cc.

References GetComponent(), and G4VEMDataSet::RandomSelect().

00225 {
00226   G4double value = 0.;
00227   if (componentId >= 0 && componentId < (G4int)components.size())
00228     {
00229       const G4VEMDataSet* dataSet = GetComponent(componentId);
00230       value = dataSet->RandomSelect();
00231     }
00232   return value;
00233 }

G4bool G4CompositeEMDataSet::SaveData ( const G4String fileName  )  const [virtual]

Implements G4VEMDataSet.

Definition at line 191 of file G4CompositeEMDataSet.cc.

References FatalException, G4Exception(), and GetComponent().

00192 {
00193   for (G4int z=minZ; z<maxZ; z++)
00194     {
00195       const G4VEMDataSet* component(GetComponent(z-minZ));
00196   
00197       if (!component)
00198         {
00199           std::ostringstream message;
00200           message << "G4CompositeEMDataSet::SaveData - component " << (z-minZ) << " not found";
00201           G4Exception("G4CompositeEMDataSet::SaveData",
00202               "em1004",FatalException,message.str().c_str());
00203           return false;
00204         }
00205 
00206       if (!component->SaveData(argFileName))
00207         return false;
00208     }
00209  
00210   return true;
00211 }

void G4CompositeEMDataSet::SetEnergiesData ( G4DataVector x,
G4DataVector data,
G4int  componentId 
) [virtual]

Implements G4VEMDataSet.

Definition at line 116 of file G4CompositeEMDataSet.cc.

References FatalException, G4Exception(), and G4VEMDataSet::SetEnergiesData().

00117 {
00118   G4VEMDataSet * component(components[argComponentId]);
00119  
00120   if (component)
00121     {
00122       component->SetEnergiesData(argEnergies, argData, 0);
00123       return;
00124     }
00125 
00126   std::ostringstream message;
00127   message << "G4CompositeEMDataSet::SetEnergiesData - component " << argComponentId << " not found";
00128  
00129   G4Exception("G4CompositeEMDataSet::SetEnergiesData",
00130               "em1004",FatalException,message.str().c_str());
00131 }

void G4CompositeEMDataSet::SetLogEnergiesData ( G4DataVector xData,
G4DataVector data,
G4DataVector xLogData,
G4DataVector Logdata,
G4int  componentId 
) [virtual]

Implements G4VEMDataSet.

Definition at line 133 of file G4CompositeEMDataSet.cc.

References FatalException, G4Exception(), and G4VEMDataSet::SetLogEnergiesData().

00138 {
00139   G4VEMDataSet * component(components[argComponentId]);
00140  
00141   if (component)
00142     {
00143       component->SetLogEnergiesData(argEnergies, argData, argLogEnergies, argLogData, 0);
00144       return;
00145     }
00146 
00147   std::ostringstream message;
00148   message << "G4CompositeEMDataSet::SetEnergiesData - component " << argComponentId << " not found";
00149  
00150   G4Exception("G4CompositeEMDataSet::SetLogEnergiesData",
00151               "em1004",FatalException,message.str().c_str());
00152 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:41 2013 for Geant4 by  doxygen 1.4.7