149 lines
6.0 KiB
C++
149 lines
6.0 KiB
C++
//
|
|
// ********************************************************************
|
|
// * DISCLAIMER *
|
|
// * *
|
|
// * The following disclaimer summarizes all the specific disclaimers *
|
|
// * of contributors to this software. The specific disclaimers,which *
|
|
// * govern, are listed with their locations in: *
|
|
// * http://cern.ch/geant4/license *
|
|
// * *
|
|
// * Neither the authors of this software system, nor their employing *
|
|
// * institutes,nor the agencies providing financial support for this *
|
|
// * work make any representation or warranty, express or implied, *
|
|
// * regarding this software system or assume any liability for its *
|
|
// * use. *
|
|
// * *
|
|
// * This code implementation is the intellectual property of the *
|
|
// * GEANT4 collaboration. *
|
|
// * By copying, distributing or modifying the Program (or any work *
|
|
// * based on the Program) you indicate your acceptance of this *
|
|
// * statement, and all its terms. *
|
|
// ********************************************************************
|
|
//
|
|
// Rich advanced example for Geant4
|
|
// RichTbMaterial.hh for Rich of LHCb
|
|
// History:
|
|
// Created: Sajan Easo (Sajan.Easo@cern.ch)
|
|
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef RichTbMaterial_h
|
|
#define RichTbMaterial_h 1
|
|
#include "globals.hh"
|
|
#include <vector>
|
|
#include "G4Material.hh"
|
|
#include "G4MaterialTable.hh"
|
|
#include "G4Element.hh"
|
|
#include "G4ElementTable.hh"
|
|
#include "G4OpticalSurface.hh"
|
|
#include "RichTbRunConfig.hh"
|
|
#include "AerogelTypeSpec.hh"
|
|
|
|
class RichTbMaterial {
|
|
|
|
public:
|
|
RichTbMaterial();
|
|
|
|
RichTbMaterial(RichTbRunConfig*);
|
|
virtual ~RichTbMaterial();
|
|
G4double ConvertAgelRIndex(G4double,G4int);
|
|
G4Material* getAir() {return RichTbAmbientAir;}
|
|
G4Material* getTAir() {return RichTbTubeAir;}
|
|
G4Material* getNitrogenGas() {return RichTbNitrogenGas;}
|
|
G4Material* getH2O() {return RichTbH2O;}
|
|
G4Material* getMirrorQuartz() {return RichTbMirrorQuartz;}
|
|
G4Material* getQuartzWMaterial() {return RichTbQuartzWindowMaterial;}
|
|
G4Material* getHpdQuartzWMaterial() {return HpdQuartzWindowMaterial;}
|
|
G4Material* getPadHpdQuartzWMaterial() {return PadHpdQuartzWindowMaterial;}
|
|
G4Material* getRichTbFilterMaterial(G4int FilterTNum )
|
|
{return RichTbFilterMaterial[FilterTNum] ; }
|
|
G4Material* getGlassD263FilterMaterial() {return GlassD263FilterMaterial;}
|
|
G4Material* getAerogelMaterial(G4int AgelNum )
|
|
{return RichTbAerogelMaterial[AgelNum]; }
|
|
G4Material* getAerogelTypeA() {return RichTbAerogelTypeA; }
|
|
G4Material* getAerogelTypeB() {return RichTbAerogelTypeB; }
|
|
G4Material* getAerogelTypeC() {return RichTbAerogelTypeC; }
|
|
G4Material* getAerogelTypeD() {return RichTbAerogelTypeD; }
|
|
G4Material* getAerogelTypeE() {return RichTbAerogelTypeE; }
|
|
G4Material* getC4F10() {return RichTbC4F10; }
|
|
G4Material* getCF4() {return RichTbCF4; }
|
|
G4Material* getVacuum() {return RichTbVacuum;}
|
|
G4Material* getAluminium() {return RichTbAluminium; }
|
|
G4Material* getHpdTubeMaterial() {return HpdTubeMaterial; }
|
|
G4Material* getHpdSiDetMaterial() {return HpdSiDetMaterial;}
|
|
G4Material* getHpdSiCoatingMaterial() {return HpdSiCoatingMaterial;}
|
|
G4Material* getPadHpdPhCathodeMaterial() {return PadHpdPhCathodeMaterial;}
|
|
|
|
G4Material* getPlasticAg() {return RichTbPlasticAg;}
|
|
G4OpticalSurface* getOpticalMirrorSurface()
|
|
{return RichTbOpticalMirrorSurface; }
|
|
G4OpticalSurface* getOpticalEnclosureSurface()
|
|
{return RichTbOpticalEnclosureSurface; }
|
|
G4OpticalSurface* getOpticalGasQuartzWSurface()
|
|
{return RichTbOpticalGasQuartzWSurface; }
|
|
G4OpticalSurface* getOpticalHpdMetalSurface()
|
|
{return RichTbOpticalHpdMetalSurface;}
|
|
G4OpticalSurface* getOpticalHpdTQuartzWSurface()
|
|
{return HpdTQuartzWSurface; }
|
|
G4OpticalSurface* getOpticalHpdQuartzWPhCathodeSurface()
|
|
{return HpdQuartzWPhCathodeSurface; }
|
|
G4OpticalSurface* getOpticalPhCathodeSkinSurface()
|
|
{return PhCathodeSkinSurface; }
|
|
G4OpticalSurface* getOpticalPhCathodeBorderSurface()
|
|
{return PhCathodeBorderSurface; }
|
|
G4OpticalSurface* getOpticalFilterSurface()
|
|
{return RichTbOpticalFilterSurface; }
|
|
G4OpticalSurface* getHpdSiCoatSurface()
|
|
{return HpdSiCoatSurface; }
|
|
|
|
private:
|
|
G4Material* RichTbAmbientAir;
|
|
G4Material* RichTbTubeAir;
|
|
G4Material* RichTbNitrogenGas;
|
|
G4Material* RichTbH2O;
|
|
G4Material* RichTbMirrorQuartz;
|
|
G4Material* RichTbQuartzWindowMaterial;
|
|
vector<G4Material*> RichTbAerogelMaterial;
|
|
|
|
G4Material* RichTbAerogelTypeA;
|
|
G4Material* RichTbAerogelTypeB;
|
|
G4Material* RichTbAerogelTypeC;
|
|
G4Material* RichTbAerogelTypeD;
|
|
G4Material* RichTbAerogelTypeE;
|
|
G4Material* RichTbC4F10;
|
|
G4Material* RichTbCF4;
|
|
G4Material* RichTbVacuum;
|
|
G4Material* RichTbAluminium;
|
|
G4Material* HpdTubeMaterial;
|
|
G4Material* HpdSiDetMaterial;
|
|
G4Material* HpdSiCoatingMaterial;
|
|
G4Material* HpdQuartzWindowMaterial;
|
|
G4Material* PadHpdQuartzWindowMaterial;
|
|
|
|
vector<G4Material*> RichTbFilterMaterial;
|
|
G4Material* GlassD263FilterMaterial;
|
|
G4Material* PadHpdPhCathodeMaterial;
|
|
G4Material* RichTbPlasticAg;
|
|
G4OpticalSurface* RichTbOpticalMirrorSurface;
|
|
G4OpticalSurface* RichTbOpticalEnclosureSurface;
|
|
G4OpticalSurface* RichTbOpticalGasQuartzWSurface;
|
|
G4OpticalSurface* HpdTQuartzWSurface;
|
|
G4OpticalSurface* HpdQuartzWPhCathodeSurface;
|
|
G4OpticalSurface* PhCathodeSkinSurface;
|
|
G4OpticalSurface* PhCathodeBorderSurface;
|
|
G4OpticalSurface* HpdSiCoatSurface;
|
|
//The following metal surface used although it would be redundant.
|
|
// The metal volume has no ref. index.
|
|
G4OpticalSurface* RichTbOpticalHpdMetalSurface;
|
|
|
|
G4OpticalSurface* RichTbOpticalFilterSurface;
|
|
|
|
|
|
RichTbRunConfig* rConfig;
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|