class Input
{
  private:
 
    double Beta, Alpha ; 
    RingInput RingIn ;
    LatticeInput LatticeIn ;
    BunchInput BunchIn ;
    BeamInput BeamIn ;
    CurrentInput CurrentIn ;
    ResoInput LResoIn[NLResonatorMAX] ; 
    ResoInput TResoIn[NTResonatorMAX] ; 
    ResoInput AccResoIn[NAccelerationMAX] ; 
    AccInput AccIn[NAccelerationMAX] ; 

    LDeviceInput LDevIn[NLDeviceMAX] ; 
    TDeviceInput TDevIn[NTDeviceMAX] ; 

    GaussianDistInput GaussianIn ;

     int Harmonics[NAccelerationMAX] ;

  public:
    void ReadData() ;
    void PrintLine() ; 
    void FlushLine() ; 

    RingInput get_RingIn(){ return RingIn ; }; 
    CurrentInput get_CurrentIn(){ return CurrentIn ; } ;
    LatticeInput get_LatticeIn(){ return LatticeIn ; }; 
    BeamInput get_BeamIn(){ return BeamIn ; }; 
    BunchInput get_BunchIn(){ return BunchIn ; }; 
    ResoInput get_LResoIn(int i){ return LResoIn[i] ; } ;
    ResoInput get_TResoIn(int i){ return TResoIn[i] ; } ;
    ResoInput get_AccResoIn(int i){ return AccResoIn[i] ; } ;
    AccInput get_AccIn(int i){ return AccIn[i] ; } ;

    LDeviceInput get_LDevIn(int i){ return LDevIn[i] ; } ;
    TDeviceInput get_TDevIn(int i){ return TDevIn[i] ; } ;

    GaussianDistInput get_GaussianIn(){ return GaussianIn ; }  ;

    double get_Beta(){ return Beta ; } ;
    double get_Alpha(){ return Alpha ; } ;

} ;
