// // ******************************************************************** // * 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 #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; std::vector 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; std::vector 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