/home/cern/BDSIM_new/include/myCorrectorDipoles.hh

00001 /*
00002  * Merlin C++ Class Library for Charged Particle Accelerator Simulations
00003  * 
00004  * Class library version 2.0 (1999)
00005  * 
00006  * file AcceleratorModel\StdComponent\CorrectorDipoles.h
00007  * last modified 07/06/99 23:07:04
00008  */
00009 /*
00010  * This file is derived from software bearing the following
00011  * restrictions:
00012  *
00013  * MERLIN C++ class library for 
00014  * Charge Particle Accelerator Simulations
00015  * Copyright (c) 1999 by N.J.Walker.  ALL RIGHTS RESERVED. 
00016  *
00017  * Permission to use, copy, modify, distribute and sell this
00018  * software and its documentation for any purpose is hereby
00019  * granted without fee, provided that the above copyright notice
00020  * appear in all copies and that both that copyright notice and
00021  * this permission notice appear in supporting documentation.
00022  * No representations about the suitability of this software for
00023  * any purpose is made. It is provided "as is" without express
00024  * or implied warranty.
00025  */
00026 
00027 #ifndef myCorrectorDipoles_h
00028 #define myCorrectorDipoles_h 1
00029 #include<vector>
00030 
00031 // gab:
00032 //#include "merlin_config.h"
00033 
00034 // RectMultipole
00035 //#include "AcceleratorModel/StdComponent/RectMultipole.h"
00036 #include "myRectMultipole.hh"
00037 #include "globals.hh"
00038 
00039 //class Tracker;
00040 
00041 //      A horizontal corrector dipole.
00042 class XCor : public myRectMultipole  
00043 {
00044   public:
00045       //        Constructor taking the identifier for the corrector, the
00046       //        length and the field (in Tesla).
00047       XCor (const G4String& id, G4double len, G4double B = 0);
00048 
00049       //        Virtual constructor.
00050   //      virtual ModelElement* Copy () const;
00051 
00052       //        Returns the unique index for this class of accelerator
00053       //        components.
00054   //      virtual IndexType GetIndex () const;
00055 
00056       //        Returns the type G4String for this component.
00057       virtual const G4String& GetType () const;
00058 
00059       //        Primary tracking interface. Prepares the specified
00060       //        Tracker object for tracking this component.
00061   //      virtual void PrepareTracker (Tracker& aTracker);
00062 
00063     // Data Members for Class Attributes
00064 
00065   //      static const IndexType ID;
00066 
00067   protected:
00068   private:
00069   private:
00070 };
00071 
00072 //      A vertical corrector dipole.
00073 
00074 class YCor : public myRectMultipole  
00075 {
00076   public:
00077       //        Constructor taking the identifier for the corrector, the
00078       //        length and the field (in Tesla).
00079       YCor (const G4String& id, G4double len, G4double B = 0);
00080 
00081 
00082       //        Virtual constructor.
00083   //      virtual ModelElement* Copy () const;
00084 
00085       //        Returns the unique index for this class of accelerator
00086       //        components.
00087 
00088   //      virtual IndexType GetIndex () const;
00089 
00090       //        Returns the type G4String for this component.
00091       virtual const G4String& GetType () const;
00092 
00093       //        Primary tracking interface. Prepares the specified
00094       //        Tracker object for tracking this component.
00095   //      virtual void PrepareTracker (Tracker& aTracker);
00096 
00097     // Data Members for Class Attributes
00098 
00099   //      static const IndexType ID;
00100 
00101   protected:
00102   private:
00103   private:
00104 };
00105 
00106 // Class XCor 
00107 
00108 inline XCor::XCor (const G4String& id, G4double len, G4double B)
00109   : myRectMultipole(id,len,0,B){}
00110 
00111 
00112 // Class YCor 
00113 
00114 inline YCor::YCor (const G4String& id, G4double len, G4double B)
00115   : myRectMultipole(id,len,0,B,true)
00116 {}
00117 
00118 #endif

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