00001 #ifndef __AWAKE_MULTILAYER_SCREEN_H_ 00002 #define __AWAKE_MULTILAYER_SCREEN_H_ 00003 00004 #include "BDSMultilayerScreen.hh" 00005 00006 class BDSAwakeMultilayerScreen : public BDSMultilayerScreen{ 00007 public: 00008 BDSAwakeMultilayerScreen(G4String material, G4double thickness, G4double dgrain, G4double windowThickness, G4String windowMaterial); 00009 virtual ~BDSAwakeMultilayerScreen(); 00010 void surfaces(); 00011 void place(G4RotationMatrix* rot, G4ThreeVector pos, G4LogicalVolume* motherVol); 00012 00013 private: 00014 typedef BDSMultilayerScreen super; 00015 void layers(); 00016 void sampler(G4String name); 00017 void preWindowSampler(); 00018 void preScreenSampler(); 00019 void postScreenSampler(); 00020 void windowLayer(); 00021 void backLayer(); 00022 void substrateLayer(); 00023 void binderLayer(); 00024 void backBinderLayer(); 00025 void scintillatorLayer(); 00026 void backScintillatorLayer(); 00027 void frontScintillatorLayer1(); 00028 void frontScintillatorLayer2(); 00029 void frontLayer(); 00030 void reflectiveSurface(); 00031 void roughSurface(); 00032 G4String _material; 00033 G4double _thickness; 00034 G4double _gapWidth; 00035 G4double _gapSpacing; 00036 G4double _dgrain; 00037 G4double _windowThickness; 00038 G4String _windowMaterial; 00039 G4double _layerThickness; 00040 G4double _binderLayerThickness; 00041 G4double _firstLayerThickness; 00042 G4double _firstBinderLayerThickness; 00043 G4double _nScintLayers; 00044 G4double _fillFactor; 00045 }; 00046 00047 #endif