@Override
    public void step() {
        
        SIRAmountManager        amountManager = (SIRAmountManager)super.getProcess().getAmountManager();
        IndividualBasedModel    model         = amountManager.getModel();
        String                  sirModelState = model.modelStateString();
        double                  time          = super.getProcess().getCurrentTime();
        sirModelState =  "" + time + model.getDelim() + sirModelState;
        
        if (outFile != null) {
            outFile.write(sirModelState + eol);
        }
        
       
        if (printToLogInfo) {
            log.info("IndividualSIRObserver - after step "+tempCounter+" model state = "+sirModelState);
        }
        
        for (EventDone ev : amountManager.getEventsJustDone()) {
             ev.setTime(time);
             String evTxt = ev.toString();
             if (printToLogInfo) log.info("IndividualSIRObserver - event done = "+evTxt);
             
             if ( ( (ev.eventType == SIREventType.INFECTION) ||
                     (ev.eventType == SIREventType.EXPOSURE) )  && 
                             (transmissionFile != null) ) {
                 transmissionFile.write(evTxt + eol);
             }
             
             if (allEventsFile != null) {
                 allEventsFile.write(evTxt + eol);
             }
        }
        
    }