/home/cern/BDSIM_new/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   
00055   G4UserLimits* itsUserLimits;
00056   G4VisAttributes* itsVisAttributes;
00057   
00058   G4ThreeVector itsPos;
00059   G4RotationMatrix* itsRot;
00060   
00061   G4Trd* itsTrd1;
00062   G4Trd* itsTrd2;
00063   G4IntersectionSolid* itsTubeInTrd;
00064   G4IntersectionSolid* itsInnerTubeInTrd;
00065   
00066   G4Tubs* itsTube;
00067   G4Tubs* itsInnerTube;
00068   
00069   BDSEnergyCounterSD* itsECounter;
00070 };
00071 
00072 inline G4LogicalVolume* BDSBeamPipe::GetInnerLogicalVolume()
00073 {return itsInnerLogicalVolume;}
00074 
00075 #endif

Generated on Wed Mar 5 17:25:21 2008 for BDSIM by  doxygen 1.5.3