Source: src/include/ArichPhoton.hh


Annotated List
Files
Globals
Hierarchy
Index
/**
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.