00001 /* BDSIM code. Version 1.0 00002 Author: Grahame A. Blair, Royal Holloway, Univ. of London. 00003 Last modified 24.7.2002 00004 Copyright (c) 2002 by G.A.Blair. ALL RIGHTS RESERVED. 00005 */ 00006 00007 #ifndef BDSLaserWire_h 00008 #define BDSLaserWire_h 1 00009 00010 #include"globals.hh" 00011 #include "BDSAcceleratorComponent.hh" 00012 #include "BDSMaterials.hh" 00013 #include "G4LogicalVolume.hh" 00014 00015 #include "G4FieldManager.hh" 00016 #include "G4ChordFinder.hh" 00017 #include "G4Mag_UsualEqRhs.hh" 00018 #include "G4UserLimits.hh" 00019 #include "G4VisAttributes.hh" 00020 #include "BDSLaserCompton.hh" 00021 00022 class BDSLaserWire :public BDSAcceleratorComponent 00023 { 00024 public: 00025 BDSLaserWire(G4String aName,G4double aLength, 00026 G4double aWavelength, G4ThreeVector aDirection); 00027 ~BDSLaserWire(); 00028 00029 inline void SetLaserDirection(G4ThreeVector aDirection); 00030 inline G4ThreeVector GetLaserDirection(); 00031 00032 inline void SetLaserWavelength(G4double aWavelength); 00033 inline G4double GetLaserWavelength(); 00034 00035 protected: 00036 00037 private: 00038 void LaserWireLogicalVolume(); 00039 G4VisAttributes* SetVisAttributes(); 00040 G4VisAttributes* itsVisAttributes; 00041 00042 BDSLaserCompton* itsLaserCompton; // not used atm, JS 00043 G4ThreeVector itsLaserDirection; 00044 G4double itsLaserWavelength; 00045 }; 00046 00047 inline void BDSLaserWire::SetLaserDirection(G4ThreeVector aDirection) 00048 {itsLaserDirection=aDirection;} 00049 00050 inline G4ThreeVector BDSLaserWire::GetLaserDirection() 00051 {return itsLaserDirection;} 00052 00053 inline void BDSLaserWire::SetLaserWavelength(G4double aWavelength) 00054 {itsLaserWavelength=aWavelength;} 00055 00056 inline G4double BDSLaserWire::GetLaserWavelength() 00057 {return itsLaserWavelength;} 00058 00059 #endif