MediumProperties

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#ifndef _Surface_MEDIUMPROPERTIES_H_
#define _Surface_MEDIUMPROPERTIES_H_

/** Constants describing material effects for a surface (for an
 * angle of incidence = pi/2).
 * If thickness = d:
 *   radLen = d/X0 (used for description of multiple scattering
 *                  and energy loss by electrons)
 *   xi = d[g/cm2] * 0.307075[MeV/(g/cm2)] * Z/A * 1/2
 *                 (used for energy loss acc. to Bethe-Bloch)
 */
class MediumProperties {
public:
  MediumProperties() : theRadLen(0), theXi(0) {}
  MediumProperties(float aRadLen, float aXi) : theRadLen(aRadLen), theXi(aXi) {}
  ~MediumProperties() {}

  /** Thickness in units of X0 (at normal incidence)
   */
  float radLen() const { return theRadLen; }
  /** Factor for Bethe-Bloch (at normal incidence;
   *  for definition see above)
   */
  float xi() const { return theXi; }

  bool isValid() const { return theRadLen != 0 || theXi != 0; }

private:
  float theRadLen;
  float theXi;
};
#endif