def SimInt_ID4M(FITPAR):
    TPARs=np.zeros([Trapnumber+1,2])
    TPARs[:,0:2]=np.reshape(FITPAR[0:(Trapnumber+1)*2],(Trapnumber+1,2))
    SPAR=FITPAR[Trapnumber*2+2:Trapnumber*2+5]
    X1=FITPAR[Trapnumber*2+5]
    (Coord)= CD.ID4MCoordAssign(TPARs,SLD,Trapnumber,Pitch,X1)
    F1 = CD.FreeFormTrapezoid(Coord[:,:,0],Qx,Qz,Trapnumber) 
    F2 = CD.FreeFormTrapezoid(Coord[:,:,1],Qx,Qz,Trapnumber) 
    F3 = CD.FreeFormTrapezoid(Coord[:,:,2],Qx,Qz,Trapnumber) 
    M=np.power(np.exp(-1*(np.power(Qx,2)+np.power(Qz,2))*np.power(SPAR[0],2)),0.5)
    Formfactor=(F1+F2+F3)*M
    Formfactor=abs(Formfactor)
    SimInt = np.power(Formfactor,2)*SPAR[1]+SPAR[2]
    return (SimInt,Formfactor)
    X1=Pitch/4    
    
    W=Param[SampleNumber,0]
    H=Param[SampleNumber,1]
    WidthLoad='W'+str(int(W))+'.txt'
    HeightLoad='H'+str(int(H))+'.txt'
    Width=np.loadtxt(WidthLoad)
    Height=np.loadtxt(HeightLoad)
    TPAR[:,0]=Width
    TPAR[:,1]=Height
    SLD[0,0]=SLD1;
    SLD[1,0]=SLD1;
    SLD[2,0]=SLD1;
    SLD[3,0]=SLD1;

    Coord=CD.ID4MCoordAssign(TPAR,SLD,Trapnumber,Pitch,X1)
    #CDp.plotID1(Coord,Trapnumber,Pitch)
    (FITPAR,FITPARLB,FITPARUB)=CD.PBA_ID2(TPAR,SPAR,Trapnumber,X1) #Does not need to be changed

    R = np.random.normal(0, 0.225, [len(Qx[:,0]),len(Qx[0,:])])
    (Intensity,Amplitude)=SimInt_ID4M(FITPAR)
    
    N=(1/(np.power(Intensity,0.5)))*Intensity # Generates  noise
    N=N*R
    Intensity2=Intensity+R; # Applies Noise

    C=CD.Misfit(Intensity,Intensity2)
    Chi2=np.sum((C))

    MCPAR=np.zeros([7])
    MCPAR[0] = 1 # Chainnumber