QwGeant4
Alinel_crsec_gen.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

G4double getAlinel_FF2 (G4double q)
 
G4double Alinel_crsec_gen (G4double E_in=1160, G4double th=8.0)
 

Function Documentation

G4double Alinel_crsec_gen ( G4double  E_in = 1160,
G4double  th = 8.0 
)

Definition at line 18 of file Alinel_crsec_gen.h.

References getAlinel_FF2().

Referenced by QweakSimEPEvent::AlNuclInel().

18  {
19 
20  ///
21  G4double M_p = 938.2796; // proton mass in MeV
22  G4double Z_Al = 13.0;
23  G4double A_Al = 27.0;
24  G4double M_Al = M_p*A_Al;
25 
26  th = th*3.14159/180.; // convert to radians
27  G4double CTH = cos(th/2.0);
28  G4double STH = sin(th/2.0);
29 
30  // now get qsq
31  G4double ETA = 1.0+2.0*E_in*STH*STH/M_Al;
32  G4double E_out = E_in/ETA;
33 
34  G4double Q2 = 4*E_in*E_out*STH*STH; //unit: MeV^2
35  G4double myhbarc = hbarc / MeV / fermi; // 197.3269631 MeV fm
36  G4double q2 = Q2/(myhbarc*myhbarc); //convert MeV^2 into fm^(-2)
37  G4double qq = sqrt(q2);
38 
39  G4double FF2 = getAlinel_FF2(qq);
40 
41  // get crsec mott, ub/sr
42  G4double sigma_mott = pow(Z_Al*0.719982/E_in*CTH/(STH*STH),2)/(1+2*E_in/M_Al*STH*STH)*10000;
43 
44  G4double sigma = sigma_mott * FF2;
45 
46  // G4cout <<"Q2(GeV^2):: "<< Q2*1e-6 << G4endl;
47  /* G4cout <<"q(1/fm):: " << qq << G4endl; */
48  /* G4cout <<"FF2_tot:: " << FF2 << G4endl; */
49  /* G4cout <<"crsec(ub/sr):: " << sigma << G4endl; */
50 
51  return sigma;
52 }
G4double getAlinel_FF2(G4double q)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double getAlinel_FF2 ( G4double  q)

Definition at line 54 of file Alinel_crsec_gen.h.

Referenced by Alinel_crsec_gen().

54  {
55 
56  TF1 *ff2[8];
57  ff2[0] = new TF1("844","0.000427*exp(-0.5*((x-0.958792)/0.341168)**2)",0.5,1.8);
58  ff2[1] = new TF1("1016","0.000706*exp(-0.5*((x-0.868077)/0.350506)**2)",0.5,1.8);
59  ff2[2] = new TF1("2211","0.002337*exp(-0.5*((x-0.857955)/0.290595)**2)",0.5,1.8);
60  ff2[3] = new TF1("2735","0.000306*exp(-0.5*((x-0.955732)/0.379688)**2)",0.5,1.8);
61  ff2[4] = new TF1("2735","0.001598*exp(-0.5*((x-0.948107)/0.330035)**2)",0.5,1.8);
62  ff2[5] = new TF1("3680","0.000042*exp(-0.5*((x-0.992771)/0.395955)**2)",0.5,1.8);
63  ff2[6] = new TF1("4510","0.000135*exp(-0.5*((x-1.340052)/0.302506)**2)",0.5,1.8);
64  ff2[7] = new TF1("4580","0.000162*exp(-0.5*((x-1.297271)/0.352787)**2)",0.5,1.8);
65 
66  G4double ffT=0;
67  for(G4int i=0;i<8;i++){
68  if((q>=0.5) && (q<=1.8))
69  ffT += ff2[i]->Eval(q);
70  else
71  ffT += 0;
72  delete ff2[i];
73  }
74 
75  // G4String printff2[] = {"844","1016","2211","2735"};
76  // for(G4int i=0;i<4;i++) G4cout << printff2[i] << ":: " << ff2[i]->Eval(q) << G4endl;
77 
78  return(ffT);
79 }

+ Here is the caller graph for this function: