/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSMagnetOuterFactoryPolesSquare.hh

00001 #ifndef BDSMAGNETOUTERFACTORYPOLESSQUARE_H
00002 #define BDSMAGNETOUTERFACTORYPOLESSQUARE_H
00003 
00004 #include "BDSGeometryComponent.hh"
00005 #include "BDSMagnetOuterFactoryPolesBase.hh"
00006 #include "BDSBeamPipe.hh"
00007 
00008 #include "globals.hh"           // geant4 globals / types
00009 //#include "G4Colour.hh"
00010 //#include "G4Material.hh"
00011 #include "G4VSolid.hh"
00012 #include <vector>
00013 
00025 class BDSMagnetOuterFactoryPolesSquare: public BDSMagnetOuterFactoryPolesBase
00026 {
00027 public:
00028   static BDSMagnetOuterFactoryPolesSquare* Instance(); 
00029   
00030   ~BDSMagnetOuterFactoryPolesSquare();
00031 
00032 private:
00034   BDSMagnetOuterFactoryPolesSquare(); 
00035   static BDSMagnetOuterFactoryPolesSquare* _instance;
00036 
00037   virtual void CleanUp();
00038 
00039   virtual void CreatePoleSolid(G4String     name,
00040                                G4double     length,
00041                                G4int        order);
00042 
00044   virtual void CreateYokeAndContainerSolid(G4String      name,
00045                                            G4double      length,
00046                                            G4int         order);
00047 
00049   virtual void CreateLogicalVolumes(G4String    name,
00050                                     G4double    length,
00051                                     G4int       order,
00052                                     G4Material* outerMaterial);
00053 
00055   virtual void PlaceComponents(G4String name,
00056                                G4int    order);
00057 
00061   virtual BDSGeometryComponent* CommonConstructor(G4String     name,
00062                                                   G4double     length,
00063                                                   BDSBeamPipe* beamPipe,
00064                                                   G4int        order,
00065                                                   G4double     outerDiameter,
00066                                                   G4Material*  outerMaterial);
00067   
00070   std::vector<G4RotationMatrix*> poleRotations;
00071   std::vector<G4VSolid*> poleSolids;
00072   std::vector<G4LogicalVolume*> poleLVs;
00073   
00074 };
00075 
00076 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7