def plotAfterEval(self):
        plotEverything(self.multipart, self.twiss, self.resultmultipart, self.resultenvlist, self.multipartafterall)
        plot_x_before_and_after(self.multipart, self.resultmultipart)
        plot_x_after(self.resultmultipart)
        plot_z_before_and_after(self.multipart, self.resultmultipart)

        # plot mulpart and twiss
        realtwissin = np.array([self.twiss[1], self.twiss[0], (1+self.twiss[0]**2)/self.twiss[1], self.twiss[4], self.twiss[3], (1+self.twiss[3]**2)/self.twiss[4], self.twiss[7], self.twiss[6], (1+self.twiss[6]**2)/self.twiss[7]])
        emittance_x = self.twiss[2]
        plot_x_with_mulpart_and_twiss(self.multipart, realtwissin, self.resultmultipart, self.resultrealtwiss, emittance_x)
#
#compLattice.appendElement(fQ)
#compLattice.appendElement(compDrift)
#compLattice.appendElement(dQ)
#compLattice.appendElement(compDrift)
print compLattice.printLattice()


#saveLattice("../data/" + "savedlatticestringsextudipolecavity" + ".npy", compLattice)

## Calculate
partresInComp, envresInComp, twissresInComp = compLattice.evaluate(multipartfromold,envelopeInComp,twissfromold) # Does eval still change input? yes

#saveSummer2015Format("../data/" + "outpartFODSOspaceChargetesttest" + ".txt","../data/" + "outtwiss" + ".txt",partresInComp, twissfromold)

plotEverything(multipartfromold, twissfromold, partresInComp)

### Plotting
print "Plotting..."
#twissin = np.array([0.0, 10.3338028723, 1e-06, -3.331460652e-16, 8.85901414121, 1e-06, -3.331460652e-16, 8.85901414121, 1e-06])
#twissout = twissin
#envelopein = np.array([1, 0, 0, 1, 0, 0, 1, 0, 0])
#envelopeout = envelopein
#
#nbrOfParticlestest = 100
#
#multipartin = gaussianTwiss3D(nbrOfParticlestest, twissout)
#multipartout = multipartin
#
#multipartout, envelopeout = lattice.evaluate(multipartout, envelopeout)
#