Files
geant4/examples/advanced/Rich/include/RichTbMaterial.hh
T
2016-06-09 10:28:22 +02:00

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