class Lattice : public Element
{
  private:
    double Eref, Tref ;
    double NuBeta0 ;  
    double Eta ;
    double Je ;
    double U, U0, Uid;
    double Chrom0, Chrom1, FreqChrom1, PhaseChrom1 ; 
    double Beta, Alpha, Gamma ;
    double FreqRef, OmegaRef ;
    double de_rms_Natural, Emittance_Natural ; 
    int    LDamping ;
    int    LExcitation, TExcitation ;
  public:
    void InputData( LatticeInput LatticeIn ) ; 
    void SetData() ;

    void PassBunch( Bunch* bunch ) ;

    double get_Eref(){ return Eref ;}
    double get_Tref(){ return Tref ;}
    double get_NuBeta0(){ return NuBeta0 ;}
    double get_Eta(){ return Eta ;}
    double get_Je(){ return Je ;}
    double get_U(){ return U ; } 
    double get_U0(){ return U0 ; } 
    double get_Uid(){ return Uid ; } 
    double get_Beta(){ return Beta ;}
    double get_Alpha(){ return Alpha ;}
    double get_Gamma(){ return Gamma ;}
    double get_FreqRef(){ return FreqRef ;}
    double get_OmegaRef(){ return OmegaRef ;}
    double m11( double Time );
    double m12( double Time );
    double m21( double Time );
    double m22( double Time );
    double Chromaticity( double Time ) ;
} ;

