aboutsummaryrefslogtreecommitdiff
path: root/src/beam-parameters.c
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2011-11-15 12:05:55 +0100
committerThomas White <taw@physics.org>2012-02-22 15:27:40 +0100
commit38089071300b8e04ed42236dd08d9055094fb3b8 (patch)
tree91e1487ac820eb549e7652750867cd4fec039097 /src/beam-parameters.c
parent404c612223dbfa0210902ebc5c9226927335aa65 (diff)
Introduce "libcrystfel"
Diffstat (limited to 'src/beam-parameters.c')
-rw-r--r--src/beam-parameters.c133
1 files changed, 0 insertions, 133 deletions
diff --git a/src/beam-parameters.c b/src/beam-parameters.c
deleted file mode 100644
index ac30ad04..00000000
--- a/src/beam-parameters.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * beam-parameters.c
- *
- * Beam parameters
- *
- * (c) 2006-2010 Thomas White <taw@physics.org>
- *
- * Part of CrystFEL - crystallography with a FEL
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "beam-parameters.h"
-#include "utils.h"
-
-
-struct beam_params *get_beam_parameters(const char *filename)
-{
- FILE *fh;
- struct beam_params *b;
- char *rval;
- int reject;
-
- fh = fopen(filename, "r");
- if ( fh == NULL ) return NULL;
-
- b = calloc(1, sizeof(struct beam_params));
- if ( b == NULL ) return NULL;
-
- b->fluence = -1.0;
- b->beam_radius = -1.0;
- b->photon_energy = -1.0;
- b->bandwidth = -1.0;
- b->divergence = -1.0;
- b->dqe = -1.0;
- b->adu_per_photon = -1.0;
-
- do {
-
- int n1;
- char line[1024];
- int i;
- char **bits;
-
- rval = fgets(line, 1023, fh);
- if ( rval == NULL ) break;
- chomp(line);
-
- n1 = assplode(line, " \t", &bits, ASSPLODE_NONE);
- if ( n1 < 3 ) {
- for ( i=0; i<n1; i++ ) free(bits[i]);
- free(bits);
- continue;
- }
-
- if ( bits[1][0] != '=' ) {
- for ( i=0; i<n1; i++ ) free(bits[i]);
- free(bits);
- continue;
- }
-
- if ( strcmp(bits[0], "beam/fluence") == 0 ) {
- b->fluence = atof(bits[2]);
- } else if ( strcmp(bits[0], "beam/radius") == 0 ) {
- b->beam_radius = atof(bits[2]);
- } else if ( strcmp(bits[0], "beam/photon_energy") == 0 ) {
- b->photon_energy = atof(bits[2]);
- } else if ( strcmp(bits[0], "beam/bandwidth") == 0 ) {
- b->bandwidth = atof(bits[2]);
- } else if ( strcmp(bits[0], "beam/divergence") == 0 ) {
- b->divergence = atof(bits[2]);
- } else if ( strcmp(bits[0], "detector/dqe") == 0 ) {
- b->dqe = atof(bits[2]);
- } else if ( strcmp(bits[0], "detector/adu_per_photon") == 0 ) {
- b->adu_per_photon = atof(bits[2]);
- } else {
- ERROR("Unrecognised field '%s'\n", bits[0]);
- }
-
- for ( i=0; i<n1; i++ ) free(bits[i]);
- free(bits);
-
- } while ( rval != NULL );
- fclose(fh);
-
- reject = 0;
-
- if ( b->fluence < 0.0 ) {
- ERROR("Invalid or unspecified value for 'beam/fluence'.\n");
- reject = 1;
- }
- if ( b->beam_radius < 0.0 ) {
- ERROR("Invalid or unspecified value for 'beam/radius'.\n");
- reject = 1;
- }
- if ( b->photon_energy < 0.0 ) {
- ERROR("Invalid or unspecified value for"
- " 'beam/photon_energy'.\n");
- reject = 1;
- }
- if ( b->bandwidth < 0.0 ) {
- ERROR("Invalid or unspecified value for 'beam/bandwidth'.\n");
- reject = 1;
- }
- if ( b->divergence < 0.0 ) {
- ERROR("Invalid or unspecified value for 'beam/divergence'.\n");
- reject = 1;
- }
- if ( b->dqe < 0.0 ) {
- ERROR("Invalid or unspecified value for 'detector/dqe'.\n");
- reject = 1;
- }
- if ( b->adu_per_photon < 0.0 ) {
- ERROR("Invalid or unspecified value for"
- " 'detector/adu_per_photon'.\n");
- reject = 1;
- }
-
- if ( reject ) {
- ERROR("Please fix the above problems with the beam"
- " parameters file and try again.\n");
- return NULL;
- }
-
- return b;
-}