Alinel_crsec_gen.h
Go to the documentation of this file.00001 #ifndef __ALINEL_CRSEC_GEN_HH
00002 #define __ALINEL_CRSEC_GEN_HH
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 G4double getAlinel_FF2(G4double q);
00017
00018 G4double Alinel_crsec_gen(G4double E_in=1160, G4double th=8.0){
00019
00020
00021 G4double M_p = 938.2796;
00022 G4double Z_Al = 13.0;
00023 G4double A_Al = 27.0;
00024 G4double M_Al = M_p*A_Al;
00025
00026 th = th*3.14159/180.;
00027 G4double CTH = cos(th/2.0);
00028 G4double STH = sin(th/2.0);
00029
00030
00031 G4double ETA = 1.0+2.0*E_in*STH*STH/M_Al;
00032 G4double E_out = E_in/ETA;
00033
00034 G4double Q2 = 4*E_in*E_out*STH*STH;
00035 G4double myhbarc = hbarc / MeV / fermi;
00036 G4double q2 = Q2/(myhbarc*myhbarc);
00037 G4double qq = sqrt(q2);
00038
00039 G4double FF2 = getAlinel_FF2(qq);
00040
00041
00042 G4double sigma_mott = pow(Z_Al*0.719982/E_in*CTH/(STH*STH),2)/(1+2*E_in/M_Al*STH*STH)*10000;
00043
00044 G4double sigma = sigma_mott * FF2;
00045
00046
00047
00048
00049
00050
00051 return sigma;
00052 }
00053
00054 G4double getAlinel_FF2(G4double q){
00055
00056 TF1 *ff2[8];
00057 ff2[0] = new TF1("844","0.000427*exp(-0.5*((x-0.958792)/0.341168)**2)",0.5,1.8);
00058 ff2[1] = new TF1("1016","0.000706*exp(-0.5*((x-0.868077)/0.350506)**2)",0.5,1.8);
00059 ff2[2] = new TF1("2211","0.002337*exp(-0.5*((x-0.857955)/0.290595)**2)",0.5,1.8);
00060 ff2[3] = new TF1("2735","0.000306*exp(-0.5*((x-0.955732)/0.379688)**2)",0.5,1.8);
00061 ff2[4] = new TF1("2735","0.001598*exp(-0.5*((x-0.948107)/0.330035)**2)",0.5,1.8);
00062 ff2[5] = new TF1("3680","0.000042*exp(-0.5*((x-0.992771)/0.395955)**2)",0.5,1.8);
00063 ff2[6] = new TF1("4510","0.000135*exp(-0.5*((x-1.340052)/0.302506)**2)",0.5,1.8);
00064 ff2[7] = new TF1("4580","0.000162*exp(-0.5*((x-1.297271)/0.352787)**2)",0.5,1.8);
00065
00066 G4double ffT=0;
00067 for(G4int i=0;i<8;i++){
00068 if((q>=0.5) && (q<=1.8))
00069 ffT += ff2[i]->Eval(q);
00070 else
00071 ffT += 0;
00072 delete ff2[i];
00073 }
00074
00075
00076
00077
00078 return(ffT);
00079 }
00080
00081 #endif