include/BDSPCLDrift.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 
00007 #ifndef BDSPCLDrift_h
00008 #define BDSPCLDrift_h 1
00009 
00010 #include "globals.hh"
00011 #include "BDSMaterials.hh"
00012 #include "BDSMagField.hh"
00013 #include "BDSDriftStepper.hh"
00014 #include "G4LogicalVolume.hh"
00015 
00016 #include "G4FieldManager.hh"
00017 #include "G4ChordFinder.hh"
00018 #include "G4Mag_UsualEqRhs.hh"
00019 #include "G4UserLimits.hh"
00020 #include "G4VisAttributes.hh"
00021 #include "G4PVPlacement.hh"               
00022 #include "G4CashKarpRKF45.hh"
00023 #include "G4ExactHelixStepper.hh"
00024 #include "BDSMultipole.hh"
00025 
00026 
00027 class BDSPCLDrift :public BDSMultipole
00028 {
00029 public:
00030   BDSPCLDrift(G4String aName, G4double aLength,
00031            std::list<G4double> blmLocZ, std::list<G4double> blmLocTheta, 
00032               G4double aperX, G4double aperyUp, G4double aperYDown, G4double aperDy,  G4String aTunnelMaterial="", G4double aper=0, G4double tunnelRadius=0., G4double tunnelOffsetX=BDSGlobalConstants::Instance()->GetTunnelOffsetX(), G4String Material="");
00033   ~BDSPCLDrift();
00034 
00035 protected:
00036 
00037 private:
00038   void BuildBLMs();
00039   void BuildBeampipe(G4String materialName = "");
00040   G4VisAttributes* SetVisAttributes();
00041   G4double itsYAperUp, itsYAperDown, itsDyAper;
00042 
00043   G4VSolid* outer_solid;
00044   G4VSolid* inner_solid;
00045 
00046   G4LogicalVolume* itsOuterBeamPipeLogicalVolume;
00047   G4LogicalVolume* itsInnerBeamPipeLogicalVolume;
00048   
00049   G4VPhysicalVolume* itsPhysiInner;
00050   G4VPhysicalVolume* itsPhysiOuter;
00051 
00052   G4VisAttributes* itsBeampipeVisAtt;
00053   G4VisAttributes* itsInnerBeampipeVisAtt;
00054 
00055   //  G4UserLimits* itsBeampipeUserLimits;
00056   //  G4UserLimits* itsInnerBeampipeUserLimits;
00057 
00059   void BuildBpFieldAndStepper();
00060   BDSDriftStepper* itsStepper;
00061   BDSMagField* itsMagField;
00062   G4Mag_UsualEqRhs* itsEqRhs;
00063 };
00064 
00065 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7