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

00001 /* BDSIM
00002 
00003 19 May 2008 by Marchiori G.
00004 17 Apr 2006 by Ilya Agapov
00005 
00006 */
00007 
00008 #ifndef BDSMULTIPOLE_H
00009 #define BDSMULTIPOLE_H
00010 
00011 #include "BDSMagnet.hh"
00012 
00013 #include "globals.hh"
00014 #include "G4Material.hh"
00015 
00016 #include <list>
00017 
00018 struct BDSBeamPipeInfo;
00019 struct BDSMagnetOuterInfo;
00020 
00021 class BDSMultipole: public BDSMagnet
00022 {
00023 public:
00024   BDSMultipole(G4String            name,
00025                G4double            length,
00026                std::list<G4double> akn, // list of normal multipole strengths
00027                // (NOT multiplied by multipole length)
00028                std::list<G4double> aks, // list of skew multipole strengths
00029                                     // (NOT multiplied by multipole length)
00030                BDSBeamPipeInfo*    beamPipeInfo,
00031                BDSMagnetOuterInfo  magnetOuterInfo,
00032                BDSTiltOffset       tiltOffset = BDSTiltOffset());
00033   ~BDSMultipole(){;};
00034   
00035 private:
00037   void CommonConstructor(std::list<G4double> akn, std::list<G4double> aks); 
00038   std::list<G4double> kn; // list of normal multipole strengths 1/Brho * Bn
00039                      // (NOT multiplied by multipole length)
00040   std::list<G4double> ks; // list of skew multipole strengths 1/Brho * Bsn
00041                      // (NOT multiplied by multipole length)
00042   G4int itsOrder;
00043   
00044   virtual void BuildBPFieldAndStepper();
00045 };
00046 
00047 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7