1
0
Fork 0
mirror of https://github.com/gwm17/Mask.git synced 2024-11-22 10:18:50 -05:00

Removed gsl dependence for compatibility with NRB machines. Added in homeade legendre polynomials. Updated README to reflect

This commit is contained in:
Gordon McCann 2021-06-08 09:58:24 -04:00
parent f90cc7e326
commit 87bde213ba
6 changed files with 22 additions and 5 deletions

View File

@ -33,4 +33,4 @@ To run MASK simply do the following from the MASK directory:
Input.txt can be replaced by any text file with the correct format.
## Requirements
MASK requires that ROOT is installed for data writting and visualization, as well as for random number generation. It also requires gsl to calculate Legendre Polynomials. Testing has been done only on ROOT 6. Mileage on all other ROOT versions will vary.
MASK requires that ROOT is installed for data writting and visualization, as well as for random number generation. Testing has been done only on ROOT 6. Mileage on all other ROOT versions will vary.

6
include/LegendrePoly.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef LEGENDREPOLY_H
#define LEGENDREPOLY_H
double P_l(int l, double x);
#endif

View File

@ -1,5 +1,5 @@
----------Data Information----------
OutputFile: /media/gordon/b6414c35-ec1f-4fc1-83bc-a6b68ca4325a/gwm17/12C3Hed_13N3546keV_ps_fixedThetaBins_test.root
OutputFile: /data1/gwm17/10B3He/Feb2021/12C3Hed_13N3546keV_ps_fixedThetaBins_test.root
SaveTree: yes
SavePlots: yes
----------Reaction Information----------

View File

@ -2,7 +2,7 @@ CC=g++
ROOTGEN=rootcint
CFLAGS=-g -Wall `root-config --cflags`
CPPFLAGS=-I ./include
LDFLAGS=`root-config --glibs` -lgsl
LDFLAGS=`root-config --glibs`
ROOTINCLDIR=./
INCLDIR=./include

11
src/LegendrePoly.cpp Normal file
View File

@ -0,0 +1,11 @@
#include "LegendrePoly.h"
double P_l(int l, double x) {
if(l == 0) {
return 1.0;
} else if (l == 1) {
return x;
} else {
return ((2.0*l + 1.0)*x*P_l(l-1, x) - (l-1.0)*P_l(l-2, x))/(double(l));
}
}

View File

@ -1,6 +1,6 @@
#include "ReactionSystem.h"
#include "KinematicsExceptions.h"
#include <gsl/gsl_sf_legendre.h>
#include "LegendrePoly.h"
namespace Mask {
@ -65,7 +65,7 @@ double ReactionSystem::GetDecayTheta(int L) {
do {
costheta = generator->Uniform(-1.0, 1.0);
check = generator->Uniform(0.0, 1.0);
probability = std::pow(gsl_sf_legendre_Pl(L, costheta), 2.0);
probability = std::pow(P_l(L, costheta), 2.0);
} while(check > probability);
return std::acos(costheta);