#ifndef runinfostruct_h
#define runinfostruct_h

struct cSoftInfo {

  char trig_ver[8];
  char tof_ver[8];
  char ac_ver[8];
  char trk_ver[8];
  char cal_ver[8];
  char s4_ver[8];
  char nd_ver[8];
  char orb_ver[8];

/**
 * Fill the struct variables from a TString object
 */
    void FillTrigWith(TString s){
        int triglen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=triglen; i++) trig_ver[i] = *pc++;
    };

    void FillTofWith(TString s){
        int toflen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=toflen; i++) tof_ver[i] = *pc++;
    };

    void FillTrkWith(TString s){
        int trklen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=trklen; i++) trk_ver[i] = *pc++;
    };

    void FillAcWith(TString s){
        int aclen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=aclen; i++) ac_ver[i] = *pc++;
    };

    void FillCalWith(TString s){
        int callen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=callen; i++) cal_ver[i] = *pc++;
    };

    void FillS4With(TString s){
        int s4len = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=s4len; i++) s4_ver[i] = *pc++;
    };

    void FillNdWith(TString s){
        int ndlen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=ndlen; i++) nd_ver[i] = *pc++;
    };

    void FillOrbWith(TString s){
        int orblen = s.Length();
        const char *pc = s.Data();
        for(Int_t i=0; i<=orblen; i++) orb_ver[i] = *pc++;
    };
  
};

#endif
