ROBAST logo
// Author: Akira Okumura <mailto:oxon@mac.com>
/******************************************************************************
 * Copyright (C) 2006-, Akira Okumura                                         *
 * All rights reserved.                                                       *
 *****************************************************************************/

#ifndef A_LENS_H
#define A_LENS_H

#include "TGraph.h"

#include "AOpticalComponent.h"
#include "ARefractiveIndex.h"

///////////////////////////////////////////////////////////////////////////////
//
// ALens
//
// Lens class
//
///////////////////////////////////////////////////////////////////////////////

class ALens : public AOpticalComponent {
 private:
  std::shared_ptr<ARefractiveIndex> fIndex;  // Refractive index

 public:
  ALens();
  ALens(const char* name, const TGeoShape* shape, const TGeoMedium* med = 0);
  virtual ~ALens(){};

  virtual Double_t GetAbsorptionLength(Double_t lambda) const;
  virtual Double_t GetExtinctionCoefficient(Double_t lambda) const;
  virtual Double_t GetRefractiveIndex(Double_t lambda) const;
  virtual void SetRefractiveIndex(std::shared_ptr<ARefractiveIndex> index) {
    fIndex = index;
  }

  ClassDef(ALens, 1)
};

#endif  // A_LENS_H
 ALens.h:1
 ALens.h:2
 ALens.h:3
 ALens.h:4
 ALens.h:5
 ALens.h:6
 ALens.h:7
 ALens.h:8
 ALens.h:9
 ALens.h:10
 ALens.h:11
 ALens.h:12
 ALens.h:13
 ALens.h:14
 ALens.h:15
 ALens.h:16
 ALens.h:17
 ALens.h:18
 ALens.h:19
 ALens.h:20
 ALens.h:21
 ALens.h:22
 ALens.h:23
 ALens.h:24
 ALens.h:25
 ALens.h:26
 ALens.h:27
 ALens.h:28
 ALens.h:29
 ALens.h:30
 ALens.h:31
 ALens.h:32
 ALens.h:33
 ALens.h:34
 ALens.h:35
 ALens.h:36
 ALens.h:37
 ALens.h:38
 ALens.h:39
 ALens.h:40
 ALens.h:41
 ALens.h:42