Source: src/include/ArichAerogel.hh


Annotated List
Files
Globals
Hierarchy
Index
#ifndef _ArichAerogel_hh_
#define _ArichAerogel_hh_
#include 
#include 
#include "ArichGeo.hh"

class ArichAerogel: public ArichGeo {
public:
  ArichAerogel();
  ~ArichAerogel();
  HepDouble z();
  HepDouble zin();
  HepDouble zout();
  
  HepDouble Refind(HepDouble energy);
  HepDouble RefindMax();
  HepDouble RayleighScatteringLength(HepDouble energy);
  HepDouble TransmissionLength();
  HepDouble Thickness();
  HepInt    Inside(Hep3Vector r);
  HepDouble NearestBorder(Hep3Vector r,Hep3Vector dir,Hep3Vector &norm, HepInt &type);

  Hep3Vector fPosition;      // position on the exit surface
  Hep3Vector fPosition0;      // position on the entrance surface
  Hep3Vector fNorm;
  HepDouble  fRind;
  HepDouble  fTransmissionLength;
  HepDouble  fThickness;
  HepDouble  fRadius2[2];   //sqr of inner and outer border
  HepDouble  fExit;
  HepDouble  fEntrance;


  // Cherenkov Photon constants
  HepDouble fSthc2Max;
  HepDouble Sthc2Max();
 
  HepDouble N0();
   friend std::ostream& operator<< (std::ostream& o, ArichAerogel& a);
};

inline  HepInt    ArichAerogel::Inside(Hep3Vector r){
  if (r(2)>fPosition(2) || r(2)<(fPosition(2)-fThickness)) return 0; 
  HepDouble r2=sqr(r(0))+sqr(r(1));
  if (r2 > fRadius2[1]) return 0;
  if (r2 < fRadius2[0]) return 0;
  return 1;					     
};

inline  HepDouble ArichAerogel::Sthc2Max(){ return fSthc2Max;}
inline  HepDouble ArichAerogel::z() {return fPosition.z();}
inline  HepDouble ArichAerogel::zout() {return fPosition.z();}
inline  HepDouble ArichAerogel::zin() {return fPosition0.z();}

inline  HepDouble ArichAerogel::Refind(HepDouble energy=0){ return fRind; };
inline  HepDouble ArichAerogel::RefindMax(){ return fRind;}



inline  HepDouble ArichAerogel::Thickness(){return fThickness;}
inline  HepDouble ArichAerogel::RayleighScatteringLength(HepDouble energy){
  HepDouble x=1240./energy/400;    
  return fTransmissionLength*x*x*x*x;
};
inline  HepDouble  ArichAerogel::TransmissionLength(){return  fTransmissionLength;}

   
extern ArichAerogel *gArichAerogel; 



#endif








Generated by: rok on f9pc43.ijs.si on Wed Jun 18 12:02:34 2003, using kdoc 2.0a54.