Commit 76e7f3c9 authored by Ruben Farinelli's avatar Ruben Farinelli
Browse files

Started to implement the Python workbench for the XSPEC model

parent 954fc6c9
Loading
Loading
Loading
Loading

Makefile

0 → 100644
+41 −0
Original line number Diff line number Diff line
# Nome dell'eseguibile
TARGET = bl_pol

ifndef HEADERS_CFITSIO
$(error ❌ Undefined enviroment variable HEADERS_CFITSIO)
endif

ifndef LIB_CFITSIO
$(error ❌ Undefined enviroment variable LIB_CFITSIO)
endif

ifndef HEADERS_GSL
$(error ❌ Undefined enviroment variable HEADERS_GSL)
endif

ifndef LIB_GSL
$(error ❌ Undefined enviroment variable LIB_GSL)
endif



# Sorgenti
SRC = main_program.c hcubature.c restframe_quantities.c polarization_angle.c \
      numpar.c stringpar.c strrev.c interpolate_functions.c trig_funct.c \
      read_file.c sum_values.c read_spectropolarimetry.c array_binning.c

# Opzioni compilazione
CC = gcc
CFLAGS = -O3
LDFLAGS = -L ${LIB_CFITSIO} -L ${LIB_GSL}  -lcfitsio   -lm   -lgsl   -lgslcblas
HEADERS= -I$(HEADERS_GSL) -I ${HEADERS_CFITSIO}

# Regola principale
all: $(TARGET)

$(TARGET): $(SRC)
	$(CC) $(CFLAGS) -o $(TARGET) $(SRC) $(HEADERS) $(LDFLAGS)

# Pulizia
clean:
	rm -f  bl_pol *.o

array_binning.c

0 → 100644
+40 −0
Original line number Diff line number Diff line

#include "headers.h"


void make_array_u(double array_u[], long nx, double start, double end) 
{
    if (nx < 2) {
        if (nx == 1) array_u[0] = start;
        return;
    }
    double step = (end - start) / (nx - 1);
    
    for (long i = 0; i < nx; i++) 
    {
        array_u[i] = start + i * step;
    }
}


void make_array_energy(double array_energy[], double delta_ene[], double emin, double emax, int nstep)
{
	
	double ymin = log(emin / 511.0);
    double ymax = log(emax / 511.0);
    double dy = (ymax - ymin) / nstep;

    // Bordi dei bin (nstep + 1 elementi)
    double edges[nstep + 1];

    for (int ii = 0; ii <= nstep; ii++) {
        double y_edge = ymin + ii * dy;
        edges[ii] = exp(y_edge) * 511.0;
    }

    // Centri dei bin e larghezza
    for (int ii = 0; ii < nstep; ii++) {
        array_energy[ii] = 0.5 * (edges[ii] + edges[ii + 1]);
        delta_ene[ii] = edges[ii + 1] - edges[ii];
    }
}
+6.43 KiB

File added.

No diff preview for this file type.

+1.93 MiB

File added.

Preview size limit exceeded, changes collapsed.

+1.93 MiB

File added.

Preview size limit exceeded, changes collapsed.

Loading