ENSDF++ 1.1
An easy, fast and simple way to run querys towards the ENSDF database, written in C++.
Public Member Functions | Protected Attributes
InterestingDecayBetaGamma Class Reference

InterestingDecay for the DataQueryBetaGamma class. More...

#include <InterestingDecayBetaGamma.h>

Inheritance diagram for InterestingDecayBetaGamma:
InterestingDecay

List of all members.

Public Member Functions

 InterestingDecayBetaGamma (vector< vector< double > > finalAdjacencyMatrix, vector< LevelRecord * > Levels, list< BetaRecordWrapper * > Betas, Nukleid nukleid, MassObject parent, MassObject child)
 Constructor.
 ~InterestingDecayBetaGamma ()
 Destructor.
string toString (double betaFilter=0, double gammaFilter=0) const
 Get a string containing information about all beta decays stronger than betaFilter and all gamma decays stronger than gammaFilter that were found in one iteration in the DataQueryBetaGamma.
string toGammaString (double gammaFilter=0) const
 Get a string containing only the parent nucleid and the gamma energy emitted for all gamma decays stronger than gammaFilter in one iteration of the DataQueryBetaGamma.
string toChartString (double gammaFilter=0) const
 Get a string containing only the parent nucleid and the gamma energy emitted for all gamma decays stronger than gammaFilter in one iteration of the DataQueryBetaGamma.
string toTexString (double gammaFilter=0) const
 Get a string containing only the parent nucleid and the gamma energy emitted for all gamma decays stronger than gammaFilter in one iteration of the DataQueryBetaGamma.
list< BetaRecordWrapper * > getBetaDecays ()
 Get the Beta decays associated with the InterestingDecayBetaGamma object.

Protected Attributes

vector< vector< double > > myFinalAdjacencyMatrix
 The adjacency matrix for gamma levels.
vector< LevelRecord * > myLevels
 The LevelRecords.
list< BetaRecordWrapper * > myBetas
 The Beta records.
MassObject myParent
 The parent mass object (used for beta Q value computations).
MassObject myChild
 The child mass object (used for beta Q value computations).

Detailed Description

InterestingDecay for the DataQueryBetaGamma class.

Author:
Rikard Lundmark

Definition at line 46 of file InterestingDecayBetaGamma.h.


Constructor & Destructor Documentation

InterestingDecayBetaGamma::InterestingDecayBetaGamma ( vector< vector< double > >  finalAdjacencyMatrix,
vector< LevelRecord * >  Levels,
list< BetaRecordWrapper * >  Betas,
Nukleid  nukleid,
MassObject  parent,
MassObject  child 
)

Constructor.

See also:
DataQueryBetaGamma::RunQuery(double, double) for details about how the parameters are constructed.
Parameters:
finalAdjacencyMatrixThe adjacency matrix for the gamma levels.
LevelsThe level records corresponding to this adjacency matrix.
BetasThe beta records for this interesting decay.
nukleidThe Nukleid object for this interesting decay.
parentThe parent mass object (used for beta Q value computations).
childThe child object (used for beta Q value computations).

Definition at line 3 of file InterestingDecayBetaGamma.cpp.

References myBetas, myChild, myFinalAdjacencyMatrix, myLevels, and myParent.

  :InterestingDecay(nukleid)
{
  myBetas = Betas;
  myLevels = Levels;
  myFinalAdjacencyMatrix = finalAdjacencyMatrix;
  myParent = parent;
  myChild = child;
}

Member Function Documentation

list< BetaRecordWrapper * > InterestingDecayBetaGamma::getBetaDecays ( )

Get the Beta decays associated with the InterestingDecayBetaGamma object.

Returns:
a list with the associated beta decays.

Definition at line 18 of file InterestingDecayBetaGamma.cpp.

References myBetas.

{
  return myBetas;
}
string InterestingDecayBetaGamma::toChartString ( double  gammaFilter = 0) const

Get a string containing only the parent nucleid and the gamma energy emitted for all gamma decays stronger than gammaFilter in one iteration of the DataQueryBetaGamma.

Parameters:
gammaFilterSets the filter level for the gamma decays.

Definition at line 23 of file InterestingDecayBetaGamma.cpp.

References Nukleid::getA(), Nukleid::getElement(), InterestingDecay::getNukleid(), Nukleid::getZ(), myFinalAdjacencyMatrix, myLevels, and NULL.

{
  stringstream ss;
  for(unsigned int i = 1; i<myFinalAdjacencyMatrix.size(); i++)
    {
      if(myLevels[i-1]==NULL)
        throw DataFileException("NULL level detected in string creator function.");
      for(unsigned int j = i; j<myFinalAdjacencyMatrix.size(); j++)
        {
          if(myFinalAdjacencyMatrix[i][j]*100>=gammaFilter)
            {
              if(myLevels[i-1]->getEnergy()-myLevels[j-1]->getEnergy()>1E-3)
                ss << getNukleid().getZ() << " " << getNukleid().getA() << " " << getNukleid().getElement() << endl;
            }
        }
    }
  return ss.str();
}
string InterestingDecayBetaGamma::toGammaString ( double  gammaFilter = 0) const

Get a string containing only the parent nucleid and the gamma energy emitted for all gamma decays stronger than gammaFilter in one iteration of the DataQueryBetaGamma.

Parameters:
gammaFilterSets the filter level for the gamma decays.

Definition at line 63 of file InterestingDecayBetaGamma.cpp.

References Nukleid::getA(), InterestingDecay::getNukleid(), Nukleid::getZ(), myFinalAdjacencyMatrix, myLevels, and NULL.

{
  stringstream ss;
  for(unsigned int i = 1; i<myFinalAdjacencyMatrix.size(); i++)
    {
      if(myLevels[i-1]==NULL)
        throw DataFileException("NULL level detected in string creator function.");
      for(unsigned int j = i; j<myFinalAdjacencyMatrix.size(); j++)
        {
          if(myFinalAdjacencyMatrix[i][j]*100>=gammaFilter)
            {
              if(myLevels[i-1]->getEnergy()-myLevels[j-1]->getEnergy()>1E-3)
                ss << getNukleid().getA() << " " << getNukleid().getZ() << " " << myLevels[i-1]->getEnergy()-myLevels[j-1]->getEnergy() << " " << myFinalAdjacencyMatrix[i][j]*100 << endl;
            }
        }
    }
  return ss.str();
}
string InterestingDecayBetaGamma::toString ( double  betaFilter = 0,
double  gammaFilter = 0 
) const

Get a string containing information about all beta decays stronger than betaFilter and all gamma decays stronger than gammaFilter that were found in one iteration in the DataQueryBetaGamma.

Returns:
a string containing the mentioned information.
Parameters:
betaFilterSets the filter level for the beta decays.
gammaFilterSets the filter level for the gamma decays.

Definition at line 82 of file InterestingDecayBetaGamma.cpp.

References ELECTRONMASS, MassObject::getMassExcess(), InterestingDecay::getNukleid(), myBetas, myChild, myFinalAdjacencyMatrix, myLevels, myParent, Nukleid::toString(), and ExperimentalValue::value.

{
  stringstream ss;
  double QValue = 0;
  for(list<BetaRecordWrapper *>::const_iterator it = myBetas.begin(); it!=myBetas.end(); it++)
    {
      if((*it)->getIntensityOfBetaDecayBranch()>=betaFilter)
        {
          if(dynamic_cast<BetaMinusRecord *>(*it))
            {
              QValue = myParent.getMassExcess().value-myChild.getMassExcess().value;
              ss << "B-: ";
            }
          else
            {
              QValue = myParent.getMassExcess().value-myChild.getMassExcess().value-2*ELECTRONMASS;
              ss << "B+: ";
            }
          ss << getNukleid().toString();
          ss << " with Q-value: " << QValue << " keV, Half-life: " << (*it)->getParentRecord()->getHalfLife() << " s, Branch-strength: " << (*it)->getIntensityOfBetaDecayBranch() << " %, Ground-state energy : " << (*it)->getLevelRecord()->getEnergy() << " keV" << endl;
        }
    }
  if(myLevels.size()!=myFinalAdjacencyMatrix.size()-1)
    throw DataFileException("Wrong number of levels.");

  for(unsigned int i = 1; i<myFinalAdjacencyMatrix.size(); i++)
    {
      
      for(unsigned int j = i; j<myFinalAdjacencyMatrix.size(); j++)
        {
          if(myFinalAdjacencyMatrix[i][j]*100>=gammaFilter)
            {
              ss << "G: Probability: " << myFinalAdjacencyMatrix[i][j]*100 << "%, Energy: " << myLevels[i-1]->getEnergy()-myLevels[j-1]->getEnergy() << " keV, Energy of start level: " << myLevels[i-1]->getEnergy() << "keV." << endl;
            }
        }
    }
  return ss.str();
}
string InterestingDecayBetaGamma::toTexString ( double  gammaFilter = 0) const

Get a string containing only the parent nucleid and the gamma energy emitted for all gamma decays stronger than gammaFilter in one iteration of the DataQueryBetaGamma.

Parameters:
gammaFilterSets the filter level for the gamma decays.

Definition at line 43 of file InterestingDecayBetaGamma.cpp.

References Nukleid::getA(), Nukleid::getElement(), InterestingDecay::getNukleid(), Nukleid::getZ(), myBetas, myFinalAdjacencyMatrix, myLevels, and NULL.

{
  stringstream ss;
  for(unsigned int i = 1; i<myFinalAdjacencyMatrix.size(); i++)
    {
      if(myLevels[i-1]==NULL)
        throw DataFileException("NULL level detected in string creator function.");
      for(unsigned int j = i; j<myFinalAdjacencyMatrix.size(); j++)
        {
          if(myFinalAdjacencyMatrix[i][j]*100>=gammaFilter)
            {
              if(myLevels[i-1]->getEnergy()-myLevels[j-1]->getEnergy()>1E-3)
                ss << getNukleid().getA() << " " << getNukleid().getZ() << " " << getNukleid().getElement() << " " << myLevels[i-1]->getEnergy()-myLevels[j-1]->getEnergy() << " " << myFinalAdjacencyMatrix[i][j]*100 << " " << myBetas.front()->getParentRecord()->getHalfLife()*1000 << endl;
            }
        }
    }
  return ss.str();
}

Member Data Documentation

vector<vector<double> > InterestingDecayBetaGamma::myFinalAdjacencyMatrix [protected]

The adjacency matrix for gamma levels.

See also:
DataQueryBetaGamma::RunQuery(double, double) for information about computing this.

Definition at line 77 of file InterestingDecayBetaGamma.h.

Referenced by InterestingDecayBetaGamma(), toChartString(), toGammaString(), toString(), and toTexString().


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Enumerations Enumerator Defines

Back to the main page of the Precalibrated Ion Beam Identification Detector project

Created by Rikard Lundmark