Difference between revisions of "C program for neutron efficiency"
Jump to navigation
Jump to search
| Line 10: | Line 10: | ||
double crossSectionCarbon, double thickness); | double crossSectionCarbon, double thickness); | ||
| − | <code>/ | + | <code>/************************************************************************ |
* This program is to find the | * This program is to find the | ||
* efficiency of a neutron detector. | * efficiency of a neutron detector. | ||
| Line 41: | Line 41: | ||
} | } | ||
| − | / | + | /********************************************************************* |
* 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 61: | Line 61: | ||
} | } | ||
| − | / | + | /********************************************************************* |
* 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 | ||
| Line 75: | Line 75: | ||
} | } | ||
| − | / | + | /******************************************************************** |
* 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 | ||
| Line 89: | Line 89: | ||
} | } | ||
| − | / | + | /******************************************************************** |
* 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. | ||
| Line 108: | Line 108: | ||
} | } | ||
| − | / | + | /****************************************************************** |
* 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 | ||
Revision as of 19:09, 5 May 2008
#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;
}