include/BDSBeamPipe.hh

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    Modified 22.03.05 by J.C.Carter, Royal Holloway, Univ. of London.
00007    Added GAB GetInnerLogicalVolume method
00008 */
00009 
00010 #ifndef BDSBeamPipe_h
00011 #define BDSBeamPipe_h 1
00012 
00013 #include"globals.hh"
00014 #include "BDSMaterials.hh"
00015 #include "G4LogicalVolume.hh"
00016 
00017 #include "G4FieldManager.hh"
00018 #include "G4ChordFinder.hh"
00019 #include "G4Mag_UsualEqRhs.hh"
00020 #include "G4UserLimits.hh"
00021 #include "G4VisAttributes.hh"
00022 #include "G4UniformMagField.hh"
00023 #include "G4IntersectionSolid.hh"
00024 #include "G4VSolid.hh"
00025 #include "G4Trd.hh"
00026 #include "G4Tubs.hh"
00027 #include "G4FieldManager.hh"
00028 
00029 #include "BDSEnergyCounterSD.hh"
00030 
00031 class BDSBeamPipe
00032 {
00033 public:
00034   BDSBeamPipe(const G4String& aName, G4double aLength, G4double aRadius,
00035               G4double angle=0);
00036   ~BDSBeamPipe();
00037   
00038   G4LogicalVolume* GetLogicalVolume();
00039   G4LogicalVolume* GetInnerLogicalVolume();
00040   G4ThreeVector GetPos();
00041   G4RotationMatrix* GetRot();
00042   
00043   void SetBPFieldManager(G4FieldManager* aFieldManager);
00044   void SetCoarseFieldManager(G4FieldManager* aFieldManager);
00045   
00046 protected:
00047   
00048 private:
00049   G4LogicalVolume* itsLogicalVolume;
00050   G4LogicalVolume* itsInnerLogicalVolume;
00051   G4LogicalVolume* itsCoarseInnerLogicalVolume;
00052   G4VisAttributes* SetVisAttributes();
00053   
00054   G4VisAttributes* itsVisAttributes;
00055   
00056   G4ThreeVector itsPos;
00057   G4RotationMatrix* itsRot;
00058   
00059   G4Trd* itsTrd1;
00060   G4Trd* itsTrd2;
00061   G4IntersectionSolid* itsTubeInTrd;
00062   G4IntersectionSolid* itsInnerTubeInTrd;
00063   
00064   G4Tubs* itsTube;
00065   G4Tubs* itsInnerTube;
00066   
00067   BDSEnergyCounterSD* itsECounter;
00068 };
00069 
00070 inline G4LogicalVolume* BDSBeamPipe::GetInnerLogicalVolume()
00071 {return itsInnerLogicalVolume;}
00072 
00073 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7