00001
00002
00003
00004
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
00021
00022 class BDSLaserWire :public BDSAcceleratorComponent
00023 {
00024 public:
00025 BDSLaserWire(G4String aName,G4double aLength,
00026 G4double aWavelength, G4ThreeVector aDirection,
00027 G4ThreeVector aPosition=0, G4double xSigma=0, G4double ySigma=0);
00028 ~BDSLaserWire();
00029
00030 inline void SetLaserDirection(G4ThreeVector aDirection);
00031 inline G4ThreeVector GetLaserDirection();
00032
00033 inline void SetLaserWavelength(G4double aWavelength);
00034 inline G4double GetLaserWavelength();
00035
00036
00037
00038 protected:
00039
00040 private:
00041 void LaserWireLogicalVolume();
00042 G4VisAttributes* SetVisAttributes();
00043 G4UserLimits* itsUserLimits;
00044 G4VisAttributes* itsVisAttributes;
00045
00046
00047 G4ThreeVector itsLaserDirection;
00048 G4double itsLaserWavelength;
00049 };
00050
00051 inline void BDSLaserWire::SetLaserDirection(G4ThreeVector aDirection)
00052 {itsLaserDirection=aDirection;}
00053
00054 inline G4ThreeVector BDSLaserWire::GetLaserDirection()
00055 {return itsLaserDirection;}
00056
00057 inline void BDSLaserWire::SetLaserWavelength(G4double aWavelength)
00058 {itsLaserWavelength=aWavelength;}
00059
00060 inline G4double BDSLaserWire::GetLaserWavelength()
00061 {return itsLaserWavelength;}
00062
00063
00064
00065
00066 #endif