ROBAST logo
/******************************************************************************
 * Copyright (C) 2006-, Akira Okumura                                         *
 * All rights reserved.                                                       *
 *****************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//
// ACauchyFormula
//
// Cauchy's formula for calculation of refractive index
// See http://en.wikipedia.org/wiki/Cauchy's_equation
//
///////////////////////////////////////////////////////////////////////////////

#include "ACauchyFormula.h"
#include "AOpticsManager.h"
#include "TMath.h"

ClassImp(ACauchyFormula);

ACauchyFormula::ACauchyFormula() : ARefractiveIndex() {}

//_____________________________________________________________________________
ACauchyFormula::ACauchyFormula(Double_t A, Double_t B, Double_t C) {
  // n(lambda) = A + B/lambda^2 + C/lambda^4
  // where lambda is measured in (um)
  fPar[0] = A;
  fPar[1] = B;
  fPar[2] = C;
}

//_____________________________________________________________________________
ACauchyFormula::ACauchyFormula(const Double_t* p) {
  for (Int_t i = 0; i < 3; i++) {
    fPar[i] = p[i];
  }
}

//_____________________________________________________________________________
Double_t ACauchyFormula::GetRefractiveIndex(Double_t lambda) const {
  // Calculate the refractive index at wavelength = lambda (m)
  // Use AOpticsManager::m() to get the unit length in (m)
  lambda /= AOpticsManager::um();  // Convert (m) to (um)
  return fPar[0] + fPar[1] * TMath::Power(lambda, -2) +
         fPar[2] * TMath::Power(lambda, -4);
}
 ACauchyFormula.cxx:1
 ACauchyFormula.cxx:2
 ACauchyFormula.cxx:3
 ACauchyFormula.cxx:4
 ACauchyFormula.cxx:5
 ACauchyFormula.cxx:6
 ACauchyFormula.cxx:7
 ACauchyFormula.cxx:8
 ACauchyFormula.cxx:9
 ACauchyFormula.cxx:10
 ACauchyFormula.cxx:11
 ACauchyFormula.cxx:12
 ACauchyFormula.cxx:13
 ACauchyFormula.cxx:14
 ACauchyFormula.cxx:15
 ACauchyFormula.cxx:16
 ACauchyFormula.cxx:17
 ACauchyFormula.cxx:18
 ACauchyFormula.cxx:19
 ACauchyFormula.cxx:20
 ACauchyFormula.cxx:21
 ACauchyFormula.cxx:22
 ACauchyFormula.cxx:23
 ACauchyFormula.cxx:24
 ACauchyFormula.cxx:25
 ACauchyFormula.cxx:26
 ACauchyFormula.cxx:27
 ACauchyFormula.cxx:28
 ACauchyFormula.cxx:29
 ACauchyFormula.cxx:30
 ACauchyFormula.cxx:31
 ACauchyFormula.cxx:32
 ACauchyFormula.cxx:33
 ACauchyFormula.cxx:34
 ACauchyFormula.cxx:35
 ACauchyFormula.cxx:36
 ACauchyFormula.cxx:37
 ACauchyFormula.cxx:38
 ACauchyFormula.cxx:39
 ACauchyFormula.cxx:40
 ACauchyFormula.cxx:41
 ACauchyFormula.cxx:42
 ACauchyFormula.cxx:43
 ACauchyFormula.cxx:44
 ACauchyFormula.cxx:45
 ACauchyFormula.cxx:46