ROOT logo
// $Id$
// Author: Akira Okumura 2007/10/01

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

///////////////////////////////////////////////////////////////////////////////
//
// AGlassCatalog
//
// Glass catalog
//
///////////////////////////////////////////////////////////////////////////////

#include "AGlassCatalog.h"

ClassImp(AGlassCatalog)

const Char_t AGlassCatalog::kNameCauchy[kNCauchy][10] = {};
const Char_t AGlassCatalog::kNameSchott[kNSchott][10] = {};
const Char_t AGlassCatalog::kNameSellmeier[kNSellmeier][10] = {"N-BK7",
                                                               "SF6"};

const Double_t AGlassCatalog::kParCauchy[kNCauchy][3] = {};
const Double_t AGlassCatalog::kParSchott[kNSchott][6] = {};
const Double_t AGlassCatalog::kParSellmeier[kNSellmeier][6] =
// B1 B2 B3 C1 C2 C3
// data from "Optical Glass Data Sheets" by SCHOTT
// http://www.us.schott.com/advanced_optics/english/download/schott_optical_glass_collection_datasheets_dec_2011_us.pdf
  {{1.03961212e0,  2.31792344e-1, 1.01046945e0,
    6.00069867e-3, 2.00179144e-2, 1.03560653e2}, // N-BK7
   {1.72448482e0,  3.90104889e-1, 1.04572858e0,
    1.34871947e-2, 5.69318095e-2, 1.18557185e2} // SF6
  };

//_____________________________________________________________________________
AGlassCatalog::AGlassCatalog()
{
}

//_____________________________________________________________________________
AGlassCatalog::~AGlassCatalog()
{
}

//_____________________________________________________________________________
ARefractiveIndex* AGlassCatalog::GetRefractiveIndex(const char* name)
{
  for(Int_t i = 0; i < kNCauchy; i++){
    if(strcmp(name, kNameCauchy[i]) == 0){
      return new ACauchyFormula(&kParCauchy[i][0]);
      break;
    } //if
  } // i

  for(Int_t i = 0; i < kNSchott; i++){
    if(strcmp(name, kNameSchott[i]) == 0){
      return new ASchottFormula(&kParSchott[i][0]);
      break;
    } //if
  } // i

  for(Int_t i = 0; i < kNSellmeier; i++){
    if(strcmp(name, kNameSellmeier[i]) == 0){
      return new ASellmeierFormula(&kParSellmeier[i][0]);
      break;
    } //if
  } // i

  return 0;
}
 AGlassCatalog.cxx:1
 AGlassCatalog.cxx:2
 AGlassCatalog.cxx:3
 AGlassCatalog.cxx:4
 AGlassCatalog.cxx:5
 AGlassCatalog.cxx:6
 AGlassCatalog.cxx:7
 AGlassCatalog.cxx:8
 AGlassCatalog.cxx:9
 AGlassCatalog.cxx:10
 AGlassCatalog.cxx:11
 AGlassCatalog.cxx:12
 AGlassCatalog.cxx:13
 AGlassCatalog.cxx:14
 AGlassCatalog.cxx:15
 AGlassCatalog.cxx:16
 AGlassCatalog.cxx:17
 AGlassCatalog.cxx:18
 AGlassCatalog.cxx:19
 AGlassCatalog.cxx:20
 AGlassCatalog.cxx:21
 AGlassCatalog.cxx:22
 AGlassCatalog.cxx:23
 AGlassCatalog.cxx:24
 AGlassCatalog.cxx:25
 AGlassCatalog.cxx:26
 AGlassCatalog.cxx:27
 AGlassCatalog.cxx:28
 AGlassCatalog.cxx:29
 AGlassCatalog.cxx:30
 AGlassCatalog.cxx:31
 AGlassCatalog.cxx:32
 AGlassCatalog.cxx:33
 AGlassCatalog.cxx:34
 AGlassCatalog.cxx:35
 AGlassCatalog.cxx:36
 AGlassCatalog.cxx:37
 AGlassCatalog.cxx:38
 AGlassCatalog.cxx:39
 AGlassCatalog.cxx:40
 AGlassCatalog.cxx:41
 AGlassCatalog.cxx:42
 AGlassCatalog.cxx:43
 AGlassCatalog.cxx:44
 AGlassCatalog.cxx:45
 AGlassCatalog.cxx:46
 AGlassCatalog.cxx:47
 AGlassCatalog.cxx:48
 AGlassCatalog.cxx:49
 AGlassCatalog.cxx:50
 AGlassCatalog.cxx:51
 AGlassCatalog.cxx:52
 AGlassCatalog.cxx:53
 AGlassCatalog.cxx:54
 AGlassCatalog.cxx:55
 AGlassCatalog.cxx:56
 AGlassCatalog.cxx:57
 AGlassCatalog.cxx:58
 AGlassCatalog.cxx:59
 AGlassCatalog.cxx:60
 AGlassCatalog.cxx:61
 AGlassCatalog.cxx:62
 AGlassCatalog.cxx:63
 AGlassCatalog.cxx:64
 AGlassCatalog.cxx:65
 AGlassCatalog.cxx:66
 AGlassCatalog.cxx:67
 AGlassCatalog.cxx:68
 AGlassCatalog.cxx:69
 AGlassCatalog.cxx:70
 AGlassCatalog.cxx:71
 AGlassCatalog.cxx:72
 AGlassCatalog.cxx:73