Difference between revisions of "C program for neutron efficiency"

From New IAC Wiki
Jump to navigation Jump to search
 
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; }