/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSAwakeScintillatorScreen.hh

00001 /* BDSIM code.   
00002 A scintillator screen.
00003 Work in progress.  
00004 */
00005 
00006 #ifndef BDSAwakeScintillatorScreen_h
00007 #define BDSAwakeScintillatorScreen_h 
00008 
00009 #include "globals.hh"
00010 #include "BDSAcceleratorComponent.hh"
00011 #include "BDSAwakeMultilayerScreen.hh"
00012 #include "BDSCCDCamera.hh"
00013 #include "BDSTiltOffset.hh"
00014 
00015 #include "G4LogicalVolume.hh"
00016 #include "G4Mag_UsualEqRhs.hh"
00017 #include "G4UserLimits.hh"
00018 #include "G4VisAttributes.hh"
00019 #include "G4VSolid.hh"
00020 
00021 class BDSAwakeScintillatorScreen :public BDSAcceleratorComponent
00022 {
00023 public:
00024   BDSAwakeScintillatorScreen(G4String aName,
00025                              G4String material,
00026                              G4double thickness,
00027                              G4double angle,
00028                              G4double windowThickness,
00029                              G4String windowMaterial,
00030                              BDSTiltOffset tiltOffset = BDSTiltOffset());
00031   virtual ~BDSAwakeScintillatorScreen();
00032 
00033 protected:
00034 
00035 private:
00036   virtual void Build();
00037   void BuildCamera();
00038   void PlaceCamera();
00039   void BuildScreen();
00040   void PlaceScreen();
00041   void BuildAwakeScintillatorScreenTunnel();
00042   void BuildVacuumChamber1();
00043   void BuildVacuumChamber2();
00044   virtual void SetVisAttributes();
00045   void ComputeDimensions();
00046   virtual void BuildContainerLogicalVolume();
00047   void BuildCameraScoringPlane();
00048   void BuildScreenScoringPlane();
00049   void BuildAwakeScintillatorMaterial();
00050   void BuildAwakeScintillatorCompound();
00051   void BuildAwakeScintillatorOpticalProperties();
00052   void BuildFrontLayer();
00053   void BuildAwakeScintillatorLayer();
00054   void BuildBaseLayer();
00055   void BuildBackLayer();
00056   void BuildOpticalSurfaces();
00057   
00058 
00059   // Geometrical objects:
00060   G4VPhysicalVolume* itsCameraScoringPlanePhys;
00061   G4VPhysicalVolume* itsScreenScoringPlanePhys;
00062   G4LogicalVolume* itsCameraScoringPlaneLog;
00063   G4LogicalVolume* itsCameraScoringPlaneLog2;
00064   G4LogicalVolume* itsCameraScoringPlaneLog3;
00065   G4LogicalVolume* itsCameraScoringPlaneLog4;
00066   G4LogicalVolume* itsCameraScoringPlaneLog5;
00067   G4LogicalVolume* itsCameraScoringPlaneLog6;
00068   G4LogicalVolume* itsScreenScoringPlaneLog;
00069   G4LogicalVolume* itsScreenScoringPlaneLog2;
00070   G4VSolid* itsCameraScoringPlaneSolid;
00071   G4VSolid* itsScreenScoringPlaneSolid;
00072                     
00073   G4double itsOuterR;
00074   G4double itsXLength;
00075   G4double itsYLength;
00076 
00077   G4RotationMatrix* _screenRotationMatrix;
00078   G4RotationMatrix* _vacRotationMatrix;
00079 
00080   //scoring plane
00081   G4double _totalThickness;
00082   G4double _screenThickness;
00083   G4double _screenHeight;
00084   G4double _screenWidth;
00085   G4double _scoringPlaneThickness;
00086 
00087   //Vacuum chamber dimensions
00088   G4int _vacChambType;
00089   G4double _vacWindowHeight;
00090   G4double _vacMylarThickness;
00091   G4double _vacKevlarThickness;
00092   G4double _vacThickness;
00093   G4double _vacInnerHeight;
00094   G4double _vacInnerWidth;
00095   G4double _vacHeight;
00096   G4double _vacLength;
00097 
00098   G4double _vacWidth1;
00099   G4double _vacDispX1;
00100   G4double _vacDispY1;
00101   G4double _vacDispZ1;
00102 
00103   G4double _vacWidth2;
00104   G4double _vacDispX2;
00105   G4double _vacDispY2;
00106   G4double _vacDispZ2;
00107 
00108   G4VisAttributes* _visAttFront;
00109   G4VisAttributes* _visAttScint;
00110   G4VisAttributes* _visAttBase;
00111   G4VisAttributes* _visAttSampler;
00112 
00113   G4String _scoringPlaneName;
00114   G4String _screenScoringPlaneName;
00115   G4String _screenSamplerName;
00116   G4String _screenSamplerName2;
00117   G4String _samplerName;
00118   G4String _samplerName2;
00119   G4String _samplerName3;
00120   G4String _samplerName4;
00121   G4String _samplerName5;
00122   G4String _samplerName6;
00123   BDSAwakeMultilayerScreen* _mlScreen;
00124   BDSCCDCamera* _camera;
00125   G4double _cameraScreenDist;
00126   G4String _material;
00127   G4double _thickness;
00128   G4double _screenAngle;
00129   G4double _windowThickness;
00130   G4String _windowMaterial;
00131 };
00132 
00133 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7