Source: src/include/ArichDetector.hh


Annotated List
Files
Globals
Hierarchy
Index
#ifndef _ArichDetector_hh_
#define _ArichDetector_hh_
#include 
#include 
#include 
#include 


class ArichDetector{
public:
  ArichDetector();
  ~ArichDetector();
  HepDouble z();
  HepDouble SigmaPad();
  HepInt Digitization( ArichPhoton *p,HepInt type=0);
  HepInt Position2Hit(Hep3Vector x, HepInt &xch, HepInt &ych );
  Hep3Vector Hit2Position(HepInt ch, HepInt &xch, HepInt &ych );
  HepInt HitReconstruction();
  
  HepDouble Energy(int i);
  HepDouble QEBialkali(HepDouble energy);
  HepInt    DetectorQE(HepDouble energy);
  HepDouble PeakEfficiency();
  
  void     Clear();
  void     SetBit(HepInt bit);
 inline  HepBoolean   GetBit(HepInt bit);
  friend std::ostream& operator<< (std::ostream& o, ArichDetector& d);

  HepInt     *fBitMap;
  HepInt     fBitMapSize;
  HepInt     fBits;
  Hep3Vector fPosition; // central point of the detector
  Hep3Vector fCorner; // lower left corner of the detector;
  Hep3Vector fNorm;   // detector plane normal
  Hep3Vector fbX,fbY; // base vectors in the detector plane
  HepInt fNX,fNY;
  HepDouble  fPad;
  HepDouble  fsigma_pad;
  HepDouble  fThcMin;   
  HepDouble  fThcMax;
  HepDouble  fWideWinSize;
  HepDouble  fNarrowWinSize;
  
  
  HepDouble  fRadius[2];
  HepDouble  fEntrance;
  HepDouble  fEnergy[2];        // photon detector sensitive energy window
  HepDouble  fMagneticField;    // constant magnetic field B in the z direction
  HepDouble  fWindowThickness;  //  Thickness of the entrance window
  HepDouble  fWindowRefind;     // refractive index of the entrance window
private:
};



inline HepDouble ArichDetector::Energy(int i){
  return  fEnergy[i];
}



inline HepDouble ArichDetector::z(){
  return  fPosition.z();
}

inline HepDouble ArichDetector::SigmaPad(){
  return  fsigma_pad;
}

inline HepBoolean ArichDetector::GetBit(HepInt bit){
  //  HepBool test=fBitMap[bit/fBits] & ( 1 << (bit % fBits));
  //  if (test) cout << "Gbit " << bit << endl;
  return fBitMap[bit/fBits] & ( 1 << (bit % fBits));; 
}


inline HepInt ArichDetector::DetectorQE(HepDouble energy){
  return ( RandFlat::shoot(gRanluxEngine) < QEBialkali(energy)); 
}

inline HepDouble ArichDetector::PeakEfficiency(){
  return 0.15; // 
}


extern ArichDetector * gArichDetector;

#endif








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