Exemplo n.º 1
0
def HISTO_2D(ID, J, DO_MillSnap=False, Add=''):
    # THE DO_MILLSNAP IS NOT READY, IS TO MAKE CONSIDE THE SNAPSHOT TIMES TO THE ONES IN THE MILL. SIM.
    # NOTE, IT ACTUALLY WORKS, BUT HAVE NOT BEEN TESTED, USED UNDER YOUR OWN RISK
    if Add != '': Add = '_' + Add
    if DO_MillSnap:
        Snap01 = D.LSnap[-1] - D.End_Snap
        Snap02 = D.LSnap[-2] - D.End_Snap
        Snap03 = D.LSnap[-3] - D.End_Snap
    else:
        Snap01 = D.Init_Snap - D.End_Snap
        Snap02 = Snap01 - 1
        Snap03 = Snap02 - 1
    ID_to_Look = np.where(ID[Snap03] > -1)
    Angl1 = []  # THE CHANGE OF ANGLE OF J BETWEEN THE FIRST TWO SNAPSHOTS
    Angl2 = [
    ]  # THE CHANGE OF ANGLE OF J BETWEEN THE SECOND AND THIRD SNAPSHOT
    Angl3 = []  # THE CHANGE OF ANGLE OF J BETWEEN THE FIRST AND THIRD SNAPSHOT
    Angl4 = [
    ]  # THE CHANGE OF ANGLE BETWEEN THE FIRST AND THIRD SNAPSHOT IN CASE
    # OF A RANDOM ORIENTATION BETWEEN THE ANGELS
    CAngl = []  # NOT IN USE!
    IDs = 0
    ##
    for i in ID_to_Look[0]:
        Angl1.append(
            M.Angle(J[Snap02][i][0], J[Snap02][i][1], J[Snap02][i][2],
                    J[Snap01][i][0], J[Snap01][i][1], J[Snap01][i][2]))
        Angl2.append(
            M.Angle(J[Snap02][i][0], J[Snap02][i][1], J[Snap02][i][2],
                    J[Snap03][i][0], J[Snap03][i][1], J[Snap03][i][2]))
        Angl3.append(
            M.Angle(J[Snap01][i][0], J[Snap01][i][1], J[Snap01][i][2],
                    J[Snap03][i][0], J[Snap03][i][1], J[Snap03][i][2]))
        CAngl.append(
            CAngle(J[Snap01][i][0], J[Snap01][i][1], J[Snap01][i][2],
                   J[Snap02][i][0], J[Snap02][i][1], J[Snap02][i][2],
                   J[Snap03][i][0], J[Snap03][i][1], J[Snap03][i][2]))
        # I CALCULATE THE CHANGE OF ANGLE BETWEEN THE SNAPSHOT
        ########
        Rand_Jx1, Rand_Jy1, Rand_Jz1 = M.Ang_Rand(J[Snap01][i][0],
                                                  J[Snap01][i][1],
                                                  J[Snap01][i][2], Angl1[IDs])
        Rand_Jx2, Rand_Jy2, Rand_Jz2 = M.Ang_Rand(Rand_Jx1, Rand_Jy1, Rand_Jz1,
                                                  Angl2[IDs])
        Angl4.append(
            M.Angle(Rand_Jx2, Rand_Jy2, Rand_Jz2, J[Snap01][i][0],
                    J[Snap01][i][1], J[Snap01][i][2]))
        # I CALCULATE THE CHANGE OF ANGLE BETWEEN THE SNAPSHOT FOR RANDOM ORIENTATED ANGLES (SEE EXPLANATION OF RANDOM ANGLE IN THE NEXT CELL)
        #######
        IDs += 1
    if not DO_MillSnap:
        P.Print_Basic2([Angl1, Angl2, Angl3, Angl4, CAngl],
                       'Data_2DHisto/2D_Histo_Data' + Add + '.txt')
    else:
        P.Print_Basic2([Angl1, Angl2, Angl3, Angl4, CAngl],
                       'Data_2DHisto/2D_Histo_Data_MillTime' + Add + '.txt')