C program for neutron efficiency: Difference between revisions

From New IAC Wiki
Jump to navigation Jump to search
Oborn (talk | contribs)
No edit summary
 
Oborn (talk | contribs)
No edit summary
Line 1: Line 1:
/**************************************************************************
<nowiki>/**************************************************************************
  * Author: Rebecca Bodily
  * Author: Rebecca Bodily
  * Date: 05/02/2008
  * Date: 05/02/2008
Line 51: Line 51:
}
}


/***********************************************************************
/**********************************************************************
   * Equation for cross section of hydrogen according to
   * Equation for cross section of hydrogen according to
   * equation 15-9 from Radiation Detection and Measurement
   * equation 15-9 from Radiation Detection and Measurement
Line 57: Line 57:
   *********************************************************************/
   *********************************************************************/
   double crossSectionHydrogenFunction()
   double crossSectionHydrogenFunction()
    {
  {
      double neutronEnergy;
    double neutronEnergy;
      double crossSectionHydrogen;
    double crossSectionHydrogen;


      cout << endl;
    cout << endl;
      cout << "Enter neutron energy (in MeV): ";
    cout << "Enter neutron energy (in MeV): ";
      cin >> neutronEnergy;
    cin >> neutronEnergy;


      crossSectionHydrogen = ((4.83 / sqrt(neutronEnergy))
    crossSectionHydrogen = ((4.83 / sqrt(neutronEnergy))
                               - .578e-24);
                               - .578e-24);


      return crossSectionHydrogen;
    return crossSectionHydrogen;
    }
  }


/**********************************************************************
/**********************************************************************
* Equation for calculating the number of Carbons in
  * Equation for calculating the number of Carbons in
* the problem per cubic centimeter, dependent on what
  * the problem per cubic centimeter, dependent on what
* the user put in for the thickness of the detector.
  * the user put in for the thickness of the detector.
*********************************************************************/
  *********************************************************************/
double numberCarbonFunction(double thickness, const
  double numberCarbonFunction(double thickness, const
                            double CUBICCENTIMETERCARBON)
                              double CUBICCENTIMETERCARBON)
{
  {
  double numberCarbon;
    double numberCarbon;


  numberCarbon = thickness * CUBICCENTIMETERCARBON;
    numberCarbon = thickness * CUBICCENTIMETERCARBON;
  return numberCarbon;
    return numberCarbon;
}
  }  


/*********************************************************************
/*********************************************************************
* Equation for calculating the number of Hydrogens in
  * Equation for calculating the number of Hydrogens in
* the problem per cubic centimeter, dependent on what
  * the problem per cubic centimeter, dependent on what
  * the user put in for the thickness of the detector.
  * the user put in for the thickness of the detector.
********************************************************************/
  ********************************************************************/
double numberHydrogenFunction(double thickness, const
  double numberHydrogenFunction(double thickness, const
                              double CUBICCENTIMETERHYDROGEN)
                                double CUBICCENTIMETERHYDROGEN)
{
  {
  double numberHydrogen;
    double numberHydrogen;


  numberHydrogen = thickness * CUBICCENTIMETERHYDROGEN;
    numberHydrogen = thickness * CUBICCENTIMETERHYDROGEN;
  return numberHydrogen;
    return numberHydrogen;
}
  }


/*********************************************************************
/*********************************************************************
* Requesting the cross section from the Knoll book, and
  * Requesting the cross section from the Knoll book, and
* then calculating it from barns to centimeters.
  * then calculating it from barns to centimeters.
********************************************************************/
  ********************************************************************/
double crossSectionCarbonFunction()
  double crossSectionCarbonFunction()
{
  {
  double crossSectionCarbon;
    double crossSectionCarbon;


  cout << endl;
    cout << endl;
  cout << "Enter the cross section of Carbon by "
    cout << "Enter the cross section of Carbon by "
      << "looking in Radiation" << endl
        << "looking in Radiation" << endl
      << "Detection and Measurement by Glenn Knoll, on"
        << "Detection and Measurement by Glenn Knoll, on"
      << " page 535, " << endl
        << " page 535, " << endl
      << "Figure 15-15b (in square centimeters): ";
        << "Figure 15-15b (in square centimeters): ";
  cin >> crossSectionCarbon;
    cin >> crossSectionCarbon;


  return crossSectionCarbon;
    return crossSectionCarbon;
}
  }


/********************************************************************
/********************************************************************
   * Equation for efficiency according to equation 15-8b
   * Equation for efficiency according to equation 15-8b
   * from Radiation Detection and Measurement
   * from Radiation Detection and Measurement
   *                            by Glenn Knoll
   *                            by Glenn Knoll
   ******************************************************************/
   ******************************************************************/
void efficiencyFunction(double numberHydrogen, double
  void efficiencyFunction(double numberHydrogen, double
                        numberCarbon, double crossSectionHydrogen,
                          numberCarbon, double crossSectionHydrogen,
                        double crossSectionCarbon, double
                          double crossSectionCarbon, double
                        thickness)
                          thickness)
{
  {
    double efficiency;
    double efficiency;
    double nHcH = numberHydrogen * crossSectionHydrogen;
    double nHcH = numberHydrogen * crossSectionHydrogen;
    double nCcC = numberCarbon * crossSectionCarbon;
    double nCcC = numberCarbon * crossSectionCarbon;


    efficiency = (((nHcH) / (nHcH + nCcC)) * (1-exp(-(nHcH
    efficiency = (((nHcH) / (nHcH + nCcC)) * (1-exp(-(nHcH
                                                   + nCcC))
                                                   + nCcC))
                                             * thickness) * 100);
                                             * thickness) * 100);
    cout.precision(4);
    cout.precision(4);
    cout << endl;
    cout << endl;
    cout << "Therefore, the efficiency of our "
    cout << "Therefore, the efficiency of our "
          << "system is: " << efficiency << "%" << endl;
        << "system is: " << efficiency << "%" << endl;
    cout << endl;
    cout << endl;
    return;
    return;
  }
  }
</nowiki>

Revision as of 16:23, 5 May 2008

/************************************************************************** * Author: Rebecca Bodily * Date: 05/02/2008 * Organization: Idaho State University *************************************************************************/ #include <iostream> #include <cmath> using namespace std; double crossSectionHydrogenFunction(); double numberCarbonFunction(double thickness, const double CUBICCENTIMETERCARBON); double numberHydrogenFunction(double thickness, const double CUBICCENTIMETERHYDROGEN); double crossSectionCarbonFunction(); void efficiencyFunction(double numberHydrogen, double numberCarbon, double crossSectionHydrogen, double crossSectionCarbon, double thickness); /************************************************************************* * This program is to find the * efficiency of a neutron detector. ************************************************************************/ double main() { double neutronEnergy; double numberHydrogen; double numberCarbon; double crossSectionHydrogen; double crossSectionCarbon; double thickness; const double CUBICCENTIMETERCARBON = 5.23e22; const double CUBICCENTIMETERHYDROGEN = 4.74e22; cout << endl; cout << "Enter thickness of detector (in centimeters): "; cin >> thickness; crossSectionHydrogen = crossSectionHydrogenFunction(); numberCarbon = numberCarbonFunction(thickness, CUBICCENTIMETERCARBON); numberHydrogen = numberHydrogenFunction(thickness, CUBICCENTIMETERHYDROGEN); crossSectionCarbon = crossSectionCarbonFunction(); efficiencyFunction(numberHydrogen, numberCarbon, crossSectionHydrogen, crossSectionCarbon, thickness); } /********************************************************************** * Equation for cross section of hydrogen according to * equation 15-9 from Radiation Detection and Measurement * by Glenn Knoll *********************************************************************/ double crossSectionHydrogenFunction() { double neutronEnergy; double crossSectionHydrogen; cout << endl; cout << "Enter neutron energy (in MeV): "; cin >> neutronEnergy; crossSectionHydrogen = ((4.83 / sqrt(neutronEnergy)) - .578e-24); return crossSectionHydrogen; } /********************************************************************** * Equation for calculating the number of Carbons in * the problem per cubic centimeter, dependent on what * the user put in for the thickness of the detector. *********************************************************************/ double numberCarbonFunction(double thickness, const double CUBICCENTIMETERCARBON) { double numberCarbon; numberCarbon = thickness * CUBICCENTIMETERCARBON; return numberCarbon; } /********************************************************************* * Equation for calculating the number of Hydrogens in * the problem per cubic centimeter, dependent on what * the user put in for the thickness of the detector. ********************************************************************/ double numberHydrogenFunction(double thickness, const double CUBICCENTIMETERHYDROGEN) { double numberHydrogen; numberHydrogen = thickness * CUBICCENTIMETERHYDROGEN; return numberHydrogen; } /********************************************************************* * Requesting the cross section from the Knoll book, and * then calculating it from barns to centimeters. ********************************************************************/ double crossSectionCarbonFunction() { double crossSectionCarbon; cout << endl; cout << "Enter the cross section of Carbon by " << "looking in Radiation" << endl << "Detection and Measurement by Glenn Knoll, on" << " page 535, " << endl << "Figure 15-15b (in square centimeters): "; cin >> crossSectionCarbon; return crossSectionCarbon; } /******************************************************************** * Equation for efficiency according to equation 15-8b * from Radiation Detection and Measurement * by Glenn Knoll ******************************************************************/ void efficiencyFunction(double numberHydrogen, double numberCarbon, double crossSectionHydrogen, double crossSectionCarbon, double thickness) { double efficiency; double nHcH = numberHydrogen * crossSectionHydrogen; double nCcC = numberCarbon * crossSectionCarbon; efficiency = (((nHcH) / (nHcH + nCcC)) * (1-exp(-(nHcH + nCcC)) * thickness) * 100); cout.precision(4); cout << endl; cout << "Therefore, the efficiency of our " << "system is: " << efficiency << "%" << endl; cout << endl; return; }