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

#ifndef A_OPTICAL_COMPONENT_H
#define A_OPTICAL_COMPONENT_H

#include "ABorderSurfaceCondition.h"
#include "TGeoVolume.h"
#include "TObjArray.h"

///////////////////////////////////////////////////////////////////////////////
//
// AOpticalComponent
//
// Abstract class for optical components
//
///////////////////////////////////////////////////////////////////////////////

class AOpticalComponent : public TGeoVolume {
 private:
  TObjArray* fBorderSurfaceConditionArray;

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

  void AddBorderSurfaceCondition(ABorderSurfaceCondition* condition);
  ABorderSurfaceCondition* FindBorderSurfaceCondition(
      AOpticalComponent* component2);
  TGeoMaterial* GetOpaqueVacuumMaterial() const;
  TGeoMaterial* GetTransparentVacuumMaterial() const;
  TGeoMedium* GetOpaqueVacuumMedium() const;
  TGeoMedium* GetTransparentVacuumMedium() const;

  ClassDef(AOpticalComponent, 1)
};

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