Source: src/include/ArichPhoton.hh
|
|
|
|
/**
Describes photon. Consists of method for photon propagation, reflection, refraction. Rayleigh scattering.
*/
#ifndef _ArichPhoton_hh_
#define _ArichPhoton_hh_
#include "ArichGeo.hh"
class ArichPhoton: public ArichGeo {
public:
/**
The constructor. */
ArichPhoton();
/**
The destructor. */
~ArichPhoton();
HepInt CherenkovPhotonEmission(Hep3Vector r,Hep3Vector dir,HepDouble beta);
HepInt CalculatePhoton(HepDouble thc,HepDouble fic,Hep3Vector r,Hep3Vector dir, Hep3Vector &dirf,Hep3Vector &polf);
HepDouble Track();
Hep3Vector R();
Hep3Vector Dir();
Hep3Vector Polarization();
HepDouble Energy();
void SetR(Hep3Vector x);
void SetDirection(Hep3Vector x);
void SetPolarization(Hep3Vector x);
void SetEnergy(HepDouble x);
void DoPropagate(HepDouble x,HepInt kaj);
Hep3Vector fDirection;
Hep3Vector fPosition;
Hep3Vector fPolarization;
HepDouble fEnergy;
HepInt fTracked;
HepDouble sigma;
HepDouble weight;
HepDouble fFic;
HepDouble fThc;
HepDouble fPath;
HepInt fProc;
friend std::ostream& operator<< (std::ostream& o, ArichPhoton& d);
};
inline Hep3Vector ArichPhoton::R(){ return fPosition;}
inline Hep3Vector ArichPhoton::Dir(){ return fDirection;}
inline Hep3Vector ArichPhoton::Polarization(){ return fPolarization;}
inline HepDouble ArichPhoton::Energy(){ return fEnergy;}
inline void ArichPhoton::SetR(Hep3Vector x){ fPosition=x;}
inline void ArichPhoton::SetDirection(Hep3Vector x){ fDirection=x;}
inline void ArichPhoton::SetPolarization(Hep3Vector x){ fPolarization=x;}
inline void ArichPhoton::SetEnergy(HepDouble x){ fEnergy=x;}
#endif
Generated by: rok on f9pc43.ijs.si on Wed Jun 18 12:02:34 2003, using kdoc 2.0a54. |